Lonestar78:
Kennung haben die Pakete schon durch den wifibroadcast -p parameter. Wenn man Angst hat, dass jemand mit Wifibroadcast auf genau der gleichen Frequenz fliegt und damit die Steuerung übernehmen könnte, kann man "-p 73" oder irgendwas anstatt des defaults nehmen. Sollte man dann aber auch mit dem Video- und Telemetrie Stream machen
Update-Rate, Pakete mehrfach verschicken, Senden und Empfangen über mehr als eine Karte und auf zwei Frequenzen etc. ist alles möglich und frei konfigurierbar. Muss halt noch ein wenig getestet werden was da am "besten" ist bezüglich der Einstellungen.
Das Multiwii Serial Protocol verschickt Pakete mit Checksumme, zusätzlich sind die Wifi-Pakete auch noch mit einer Checksumme gesichert, d.h. es ist völlig unmöglich, dass auf der Luftstrecke oder auch auf der seriellen Strecke vom Pi zur Flightcontrol Daten verfälscht werden. Entweder es kommen gültige Pakete mit genau den Stick-Positionen die an der Funke eingegeben wurden, oder gar nichts.
Failsafe wird der Flightcontrol überlassen weil es allg. mehr Sinn macht das am Ende der Steuerungskette zu machen und weil es die Logik auf dem Air-Pi minimal hält. So leitet der einfach nur auf die serielle Schnittstelle weiter. Das stellt sicher, dass bei einem Software-Absturz oder Bug egal welcher Art auf dem Air-Pi niemals falsche Daten gesendet werden und auch nicht die letzte Stick-Position "einfrieren" kann (was zu einem Fly-Away führen könnte).
Bei der MSP_RC Implementation in Cleanflight werden mindestens 5 Pakete pro Sekunde erwartet, ansonsten greifen die Failsafe-Settings. Habe ich ausgiebig getestest (auch alles "wild aus- und eingeschaltet", Antennen abgeschraubt um den Empfang zu stören etc., Steuerung kam immer wieder).
Was noch nicht ganz optimal ist, ist die Ground-Seite. Die SDL1 Joystick library ist hinsichtlich der Joystick-Erkennung etwas limitiert, es ist nicht möglich festzustellen, wenn der Joystick getrennt wird. In dem Falle wird dann dummerweise einfach immer weiter die letzte Stickposition gesendet. Im Moment ist das mit einer bash funktion in der .profile gelöst, die immer wieder prüft ob der Jostick noch da ist und ggf. den RC TX schnell killt wenn er nicht mehr da ist. Das führt aber dazu, dasss ca. 1-2s die letzte Stick-Position gesendet wird, bevor das Failsafe greifen kann.
Also sicherstellen, dass die USB Verbindung nicht aus versehen getrennt werden kann im Flug.
Zwiebacksäge:
Wifibroadcast auf einem Notebook sollte kein grosser Aufwand sein solange Du nicht 2.3Ghz nutzen willst (dann müsstest Du Kernel- bzw. Treiber-Module patchen und bauen ...).