Ralph Werner Geschrieben May 27, 2021 at 15:01 Geschrieben May 27, 2021 at 15:01 Hallo Tinkerforge-Experten. Ich arbeite schon länger mit dem Tinkerforge-System, habe aber das erste Mal mit einem RS485 Bricklet, bez. digitaler Kommunikation allgemein zu tun. Das Bricklet funktioniert, das Loop-Callback-Programm welches in der Doku aufgeführt wird, habe ich hierfür getestet. Nun sollte ich einen Sensor via rs485 auffordern, mir seine Messdaten zurückzugeben. Dies funktioniert im Brick Viewer unter der Eingabe der "rohen" Hexadezimalzahlen. Den Haxadezimalen Code im Brickviever einzugeben und abzusenden funktioniert, ich erhalte auch eine Antwort. Aber dies in PHP umzusetzen ist kniffliger. Wie muss ich die Funktion "write()" füllen, damit ich dies im korrekten Format ankommt? Ich habe es bereits Versucht indem ich alle hexadecimalzahlen zu binären Zahlen, oder auch zu einer grossen Dezimalzahl umformatiert hatte, ohne Erfolg. rs485.php Der Hexadezimale "Befehl" welcher in Brick-Viewer funktioniert ist zum Beispiel: F1 00 05 29 1E oder F1 00 08 2E 0C 02 61 26 Bei beiden kommen (wiederum hexadezimale) Antworten zurück, welche ich allerdings entschlüsseln kann. Liebe Grüsse Ralph Zitieren
photron Geschrieben May 27, 2021 at 16:05 Geschrieben May 27, 2021 at 16:05 Das RS485 Bricklet arbeitet auf Arrays von 1-Zeichen Strings. Du kannst die \x Escapesequenz oder die chr Funktion verwenden, um beliebig Bytes zu übergeben. Die Hex-Folge F1 00 05 29 1E kannst du mit \x Escapesequenz so schicken: $rs485->write(array("\xF1", "\x00", "\x05", "\x29", "\x1E")); Oder mit chr Funktion so: $rs485->write(array(chr(0xF1), chr(0x00), chr(0x05), chr(0x29), chr(0x1E))); Die Antwort im Callback kommt auch als Array von 1-Zeichen Strings. Diesen kannst du dann mit der ord Funktion so in Bytes umwandeln: foreach ($message as $char) { $byte = ord($char); echo dechex($byte) . "\n"; } Zitieren
Ralph Werner Geschrieben May 31, 2021 at 11:21 Autor Geschrieben May 31, 2021 at 11:21 Hallo Photron Vielen Dank für deine Antwort, jetzt funktioniert alles wie gewünscht, auch die Rücktransformierung. Liebe Grüsse Ralph Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.