HSC2011/Software: Unterschied zwischen den Versionen

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
(added VM)
(cleaned up)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
 
The EduBuzzer has software run in three parts:
 
The EduBuzzer has software run in three parts:
  
* [[HSC2011/Firmware|Firmware]] run on the ATMega controllers (for hardware control and radio communication)
+
* [[HSC2011/Software/Firmware|Firmware]] running on the ATMega controllers (for hardware control and radio communication)
** The firmware can run additional code inside a [[HSC2011/Virtual machine|virtual machine]] for tasks like LED fading, meldoy beeping or even autonomous games.
+
** The firmware can run additional code inside a [[HSC2011/Software/embedVM|virtual machine]] for tasks like LED fading, meldoy beeping or even autonomous games.
* [[HSC2011/Middleware|Middleware]] running natively on the computer (for serving the firmware, managing communication and for persistence)
+
* [[HSC2011/Software/ygor|Middleware]] running natively on the computer (for serving the firmware, managing communication and for persistence)
* A [[HSC2011/Frontend|Frontend]] running in a web browser (containing the game logic itself)
+
* A [[HSC2011/Software/Frontend|Frontend]] running in a web browser (containing the game logic itself)
  
 
The communication through the whole software is described in the [[HSC2011/Communication|communication documentation]].
 
The communication through the whole software is described in the [[HSC2011/Communication|communication documentation]].
 
------------------
 
 
there will be different software components involved
 
 
there is a '''firmware''' on each device
 
 
there will be a '''hostsoftware (webserver)''' that runs on the pc/laptop
 
 
this webserver will provide a webinterface to the '''javascript application'''
 
 
there are ''positions open'' for
 
 
*<strike> the webserver/serialcom (python)</strike> '''amir''' implements this job with java
 
* the webfrontend application logic (javascript)
 
* the webfrontent design (CSS)
 
* firmware and protocoldesign (AVR)
 
 
== firmware ==
 
 
The current firmware is written by clifford and chrysn and is currently capable of both being a buzzer and being a base station; the base station can control all the hardware in the buzzers and receive events. It can be checked out from [http://github.com/Metalab/hsc2011/tree/master/firmware the firmware part of the project repository].
 
 
During firmware development, a serial protocol was developed, which is documented [http://github.com/Metalab/hsc2011/blob/master/firmware/README.serialprotocol alongside the firmware].
 
 
Open issues are in descending priority:
 
 
* separate timeout arrays for login and event
 
* redirect messages for controlling the base station itself
 
* fine-tuning timing for re-sends and responses (may only need validation)
 
* melody api
 
* read/write commands for VM
 
* enhanced get/set status packages for VM
 
* reading battery status using new firmware
 
* reading RSSI state
 
* multicasts
 
* <del>removing arduino specific stuff to reduce resource usage</del> (not a priority unless resources become a real problem)
 
 
== PC server ==
 
 
There is a proof-of-concept implementation of a serial controller and a simple voting game for debugging purposes [http://github.com/Metalab/hsc2011/blob/master/firmware/demohost.py in the repository]. It demonstrates that the firmware can also do logins, handle disconnected clients and respond to events.
 
  
 
[[Kategorie:HSC2011]]
 
[[Kategorie:HSC2011]]
 +
[[Kategorie:English]]

Aktuelle Version vom 2. Mai 2011, 19:54 Uhr

< HSC2011

The EduBuzzer has software run in three parts:

  • Firmware running on the ATMega controllers (for hardware control and radio communication)
    • The firmware can run additional code inside a virtual machine for tasks like LED fading, meldoy beeping or even autonomous games.
  • Middleware running natively on the computer (for serving the firmware, managing communication and for persistence)
  • A Frontend running in a web browser (containing the game logic itself)

The communication through the whole software is described in the communication documentation.