-
Notifications
You must be signed in to change notification settings - Fork 0
API watchdog
Der ftPwrDrive ist ein eigenständiger Controller, der die gesendeten Verfahrkommandos selbständig ausführt. Wird das Programm auf dem Hauptcontroller (TXT/ftDuino/Arduino) beendet, so erfährt der ftPwrDrive nichts davon. Die Motoren arbeiten die Kommandos weiter ab. Mit dem Watchdog-Kommando kann das Programmende des Hauptcontrollers erkannt werden.
Der Watchdog auf dem ftPwrDrive erwartet eine regelmäßig ein Keepalive-Signal vom Hauptkontroller. Wird kein Keepalive-Signal mehr gesendet, stoppt der ftPwrDrive alle Motoren.
Diese Funktion wird mit dem ersten Watchdog-Kommando aktviert. Übergeben wird die Zeit in Millisekunden, bis zu der das nächste Watchdog-Kommando als erwartet wird.
In ROBOPro können mehrere Threads verarbeitet werden. Deshalb stehen hier zwei weitere Kommandos für ein einfaches Handling der Watchdog-Funktion zur Verfügung:
Der zweite Thread initialisiert den Watchdog und sendet regelmäßig ein keepalive-Signal vom TXT an den ftPwrDrive. Entfällt das keepalive-Signal, da der TXT hart beendet wurde, stoppt der ftPwrDrive nach spätestens 0,5 Sekunden alle Motoren.
Um den Watchdog-Thread bei einem regulären Programmende des Hauptthreads mit zu beenden, muss dort vor dem Programmende das Kommando endWatchdog aufgerufen werden. Dieses Kommando beendet im zweiten Thread die Dauerschleife.
Im Nebeneffekt werden regelmäßig Kommandos über den I²C-Bus an den ftPwrDrive gesendet. Damit wird auch der I²C-Bug des TXT umgangen.
The ftPwrDrive is a independend controller, which runs all motor commands on its own. If you stop the main program on your main controller (TXT/ftDuino/Arduino), ftPwrDrive won't recognize this. All motors will keep on running. The Watchdog command could handle this issue: after recognizing the end of the main program ftPwrDrive will stop all motors.
The build in watchdog of the ftPwrDrive expects regulary keep alive signals from your main controller. If the main controller doesn't send the keep alives signals any more, ftPwrDrive stops all motors.
This function is activated with the first Watchog command. The parameter is the time in milliseconds, until the watchdog will stop the motors. With subsequent Watchdog commands you could send the needed keepalive signals.
ROBOPro could handle several threads. Therefore we integrated two additional commands for a very simple watchdog handling at the TXT:
The second thread initializes the watchdog. checkWatchdog sends the keepalive signals on its own. After your program breaks, ftPwrDrive will stop the motors within 0.5 seconds.
To step the watchdog thread regulary, you need to call endWatchdog. It will stop the continuous loop of checkWatchdog.
As a side effect, you will send I²C commands on a regular basis. So the TXT 4 second I²C bus bug won't harm your program.
1. Einleitung
1.1 Schrittmotoren
1.2 Servos
1.3 Endlagenschalter & Notaus
1.4 I²C-Bus
1.5 Stromversorgung
1.6 Anschlüsse
2. Inbetriebnahme der Hardware
2.1 Maintenance Mode
2.2 Firmware update
3. Arduino & ftDuino
3.1 Installation der Bibliothek
3.2 Programmieren mit dem Arduino/ftDuino
3.3 Beispielprogramme
4. ROBOPro
4.1 Installation der Bibliothek
4.2 Programmieren unter ROBOPro