Hi
Ich brauche Euch mal als Ideenschmiede
Hintergrund:
Ich habe mir vor einiger Zeit ein Modell der Bismarck (1:200) gebaut und dieses im Laufe der Zeit mit einer sehr aufwendigen Elektronik ausgestattet, welche es gestattet, fast alle beweglichen Teile des Schiffes zu steuern. Zusätzlich gibt es eine erhebliche Geräuschesammlung, welche programmgesteuert ertönen. Etwa Schlachtengeräusche, Kanonendonner etc. Alles wird grundsätzlich über einen Raspberry angesteuert, an welchem erhebliche Peripherie hängt, die über I2C angesteuert wird. Im Hintergrund verwaltet die MySQL-DB die Kanonenpositionen, Munitionsmenge,Ladezeiten usw.
Was hat das mit B4A zu tun?
Ds Schiff wird komplett über eine B4A-App gesteuert (siehe Fotos)
Nun meine Frage:
Die App schreibt die Befehle, Parameter etc über Wlan oder falls vorhanden über Internet in eine MySQL-DB in eine spezielle Übergabetabelle. Der verbaute Raspberry pollt auf diese tabelle und verarbeitet jeden gefunden Befehl. Dann schreibt er im Handshake eine OK-Antwort zurück.
Das klappt soweit wunderbar.
Nun mein Anliegen:
Ich wünsche mir eine Event-gesteuerte Antwort vom Raspberry direkt zurück auf die App.
Also ohne Umweg über die Datenbank.
Das besondere Problem liegt für mich nicht an der eigentlichen Übertragung. Das kann ohne Probleme über eine TCP-Client-Server Geschichte gemacht werden. Aber ich kann nicht alles Pollen. Das bremst vor Allem den Raspberry zu sehr aus. Ausserdem möchte ich die SD-Karte im Raspberry nicht unbedingt ausreizen. Ewig halten die auch nicht. Aber auch auf dem Handy ist Pollen nicht unbedingt die Ideallösung. Das soll ja noch was anderes machen, als meine App bearbeiten
Problem:
Aber wie sorge ich nun dafür, dass die Meldungen (wie auch immer sie ankommen) ein Event hervorrufen?
Das heisst, eine definierte Sub auf einer bestimmten Seite aufruft.
Beispiel:
Event: "Ruder im Endstand!" Reaktion: Setzen der Ruderbewegung in diese Richtung verweigern.
Möglicherweise kenne ich ja noch nicht alle Möglichkeiten, die B4A bietet.
Ich wäre für Ideen sehr dankbar.
Ich brauche Euch mal als Ideenschmiede
Hintergrund:
Ich habe mir vor einiger Zeit ein Modell der Bismarck (1:200) gebaut und dieses im Laufe der Zeit mit einer sehr aufwendigen Elektronik ausgestattet, welche es gestattet, fast alle beweglichen Teile des Schiffes zu steuern. Zusätzlich gibt es eine erhebliche Geräuschesammlung, welche programmgesteuert ertönen. Etwa Schlachtengeräusche, Kanonendonner etc. Alles wird grundsätzlich über einen Raspberry angesteuert, an welchem erhebliche Peripherie hängt, die über I2C angesteuert wird. Im Hintergrund verwaltet die MySQL-DB die Kanonenpositionen, Munitionsmenge,Ladezeiten usw.
Was hat das mit B4A zu tun?
Ds Schiff wird komplett über eine B4A-App gesteuert (siehe Fotos)
Nun meine Frage:
Die App schreibt die Befehle, Parameter etc über Wlan oder falls vorhanden über Internet in eine MySQL-DB in eine spezielle Übergabetabelle. Der verbaute Raspberry pollt auf diese tabelle und verarbeitet jeden gefunden Befehl. Dann schreibt er im Handshake eine OK-Antwort zurück.
Das klappt soweit wunderbar.
Nun mein Anliegen:
Ich wünsche mir eine Event-gesteuerte Antwort vom Raspberry direkt zurück auf die App.
Also ohne Umweg über die Datenbank.
Das besondere Problem liegt für mich nicht an der eigentlichen Übertragung. Das kann ohne Probleme über eine TCP-Client-Server Geschichte gemacht werden. Aber ich kann nicht alles Pollen. Das bremst vor Allem den Raspberry zu sehr aus. Ausserdem möchte ich die SD-Karte im Raspberry nicht unbedingt ausreizen. Ewig halten die auch nicht. Aber auch auf dem Handy ist Pollen nicht unbedingt die Ideallösung. Das soll ja noch was anderes machen, als meine App bearbeiten
Problem:
Aber wie sorge ich nun dafür, dass die Meldungen (wie auch immer sie ankommen) ein Event hervorrufen?
Das heisst, eine definierte Sub auf einer bestimmten Seite aufruft.
Beispiel:
Event: "Ruder im Endstand!" Reaktion: Setzen der Ruderbewegung in diese Richtung verweigern.
Möglicherweise kenne ich ja noch nicht alle Möglichkeiten, die B4A bietet.
Ich wäre für Ideen sehr dankbar.