ich bin gerade auch an einer seriellen Kommunikation (im ersten Schritt ohne PHP-Modul sondern klassisch ;-)), Senderichtung funktioniert auch gut, beim Empfang habe ich aber das Problem keine Steuerzeichen sondern nur - wie bei Deinem letzten Beitrag - eine Checksumme.
Hast Du denn für den Fall „Ankommende serielle Daten auf Checksumme prüfen“ einen Ansatz oder gar eine Lösung?
Wie man eine Checksumme berechnet, suche ich mir auch immer zusammen
Hier kann man mal eben gegenprüfen welche Variante bei dem Protokoll überhaupt zum Einsatz kommt, entsprechend muss du die dann berechnen.
ich bin jetzt also wesentlich weiter - es funken alle wesentlichen Funktionen. Sind nur noch 2 Baustellen übrig.
Baustelle2: PHP-Modul - da habt ihr noch ein paar Tage bis ich mit Fragen nerve ;-)))
Baustelle1: Ich würde gern ein RAW-Image über die serielle Schnittstelle laden. Wie kann ich denn den HEX-Strom am besten in ein Image für IPS wandeln?
ich bin nun an der Modulentwicklung, ist ja mächtig gewaltig ;-)))
Irritiert bin ich momentan am Punkt „Daten empfangen“ - auch bei meinem „Original“ verzichte ich auf einen Splitter (es kommt eh immer was anderes :-()) - nun wird hier aber im anderen Thread davon berichtet, die Registervariablen werden „umgebaut“- auch finde ich im SDK gar keinen Befehl zum Anlegen einer Registervariablen.
Hat jemand einen Tipp für mich?
Ich habe jetzt bestimmt schon 15 Stunden mich durch die diversen Anleitungen zur Objektorientierten Programmierung gequält und versucht mein Problem zu lösen - scheinbar habe ich ein Brett vorm Kopf.
Wenn ich mit $this->Eigenschaft=„kompliziert“ aus "irgendwelchen Funktionen meiner Klasse einen Wert zuweise funktioniert dies.
Wenn ich aber innerhalb der „IPS-Funktion (innerhalb der gleichen Klasse) ReceiveData($JSONString)“ auch $this->Eigenschaft=„Müll“ tue, wird scheinbar eine andere Eigenschaft gesetzt. Nach meinem Laienhaftenverständnis, wahrscheinlich das Problem, dass ReceiveData($JSONString) von IPS anders aufgerufen wird und somit $this ein anderes ist?
Wir kann ich denn innerhalb von ReceiveData($JSONString) eine Eigenschaft/Variable ändern aus der ich aus dem Rest der Klasse (der IPS-Instanz) zugreifen kann?
Mit einer richtigen IPS-Variable (12345) könnte ich mir natürlich helfen, ich benötige den Wert aber eigentlich nur zur Laufzeit.
Was du brauchst sind die Buffer. ($this->SetBuffer und GetBuffer).
Auch wenn es jetzt eine PHP-Klasse ist, so bleibt es doch eine Scriptsprache. Das PHP-Objekt welches IPS aus deiner Klasse erzeugt ist nicht persistent und wird nach dem Ausführen der jeweiligen Aktion zerstört und der PHP-Interpreter beendet.
ich komme gut voran - habe aber nochmal zwei Fragen (und wollte kein neues Thema erstellen):
Wenn ich im Formular eine Checkbox anlege:
{ "type": "CheckBox", "name": "dername", "caption": "Beschreibung im Formular" },
wie komme ich denn an diese Variable/Eigenschaft heran?
Wahrscheinlich etwas schwieriger ? ??? Im Status kann ich ja nur die Zustände der Instanz abbilden. Ich würde aber gern einen Text, analog einem LOG aktualisieren lassen? Geht dies überhaupt? Ist das eine blöde Frage oder ein Featurewunsch ?
Ich würde halt gern im Fenster(Formular) Rückmeldungen (z.B. von Funktionen ausgeben z.B. Bei einer Ablaufsteuerung: Jetzt in Schritt1 … Jetzt in Schritt2 …) - hat mit Stati der Instanz nix zu tun.