Änderungen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

SpaceInLasers

350 Byte hinzugefügt, 22:00, 12. Mär. 2017
/* Serielle Kommandos */
*** Broadcast: "Schuß" - State machine beginnt:
**** State 0: Licht-Aus-Phase. Alle schnellen Lichter werden dunkel geschaltet.
**** State 10.5: Schuß - Einmeßphase. Der Dunkelwert der Sensoren wird nun gemessen.**** State 21..108: Schuß - Bit0 - Bit7. Die Pistolen aktivieren den Laser mit bestimmten Code für jedes Bit. Pro Bit fragen die Zielcontroller mit etwas Verzögerung analog alle Kanäle ab und entscheiden ob das Bit 0 oder 1 ist.**** State 119: Schuß beendet. Lichter wieder an, Zeitintensive Aufgaben werden weitergeführt.
*** Unicast: Die Zielcontroller werden reihum abgefragt.
*** Unicast: Ggf. werden Aktionen in den Zielcontrollern und den Pistolen getriggert, die einen Treffer anzeigen.
* Empfänger liefern analoges Signal, das wird auch analog eingelesen. Je mehr Licht empfangen wird, desto geringer wird der gelesene Analog-Wert
* Bei Umgebungslicht den Wert für Sensor-Dunkel langsam nachführen
** Problem ggf mit dauer leuchtenden Strahlern
* Ab unterschreiten eines Thresholds kann vom ersten Bit ausgegangen werden (das ist immer 1 = Licht an)
* Irgendwie (TM) die Länge dieses Bits bestimmen - wenn lang genug, bei Flankenwechsel auf Bit-Empfangsmodus gehen
Broadcast Kommandos:
* sABC scduv Bereit machen für Schuß, Licht-Aus + Schusswaffenselektion, Parameter wählt Waffen aus die schießen werden. Bei Empfang dieses Befehls werden Zeitintensive Tasks angehalten und ggf. Lichter aus gemacht. a,b = Boden Luft Abwehrtürme, u,b = UFO Schüsse.
* S Schuss abfeuern. Die Waffen senden den Schuss, die Empfänger empfangen den Schuss. Nach 9 Bitzeiten ist alles vorbei, Zeitintensive Tasks dürfen weiterlaufen und Lichter wieder aktiviert werden.
* I fragt ID des Arduinos ab, an dem Pin 13 mit A0 gebrückt war nach Reset
|}
Analog Animationen können über den Funktionspointer .pAnalogSet auch an andere Dinge gebunden werden - bei der Waffe wird damit die Laser-Sichtbarkeit gesteuert.
Analog Animationen aus AnalogDAnim.cpp _AONNAABBCCDD:
|| Blink || 21 || On PWM value (Off is 0) || On time in 100ms steps || Off time in 100ms steps || Repeat count (0=forever)
|}
 
Schuss-Synchronisation:
* Slaves senden was zurück beim t und S Kommando, Senden wird dabei Zeitversetzt gestartet
** Senden beim S Kommando blockt - falscher Zeitpunkt wäre sehr kontraproduktiv. Per Radio wird das "S" aber erst nach Ablauf der Rx-Sequenz im Radiomaster gesendet.
== Game Code ==
913
Bearbeitungen