COMPort_SendText - Wie HEX daten senden?

Ich hab nun schon ne menge experimentiert, aber momantan ein Problem mit COM Port. Ich muss meinem Gerät (Russound CAA66) einen Hex Code schicken, damit es reagiert (sieht ca. so aus F0 00 07 00 00 00 02 02 usw.) wenn ich das über eine Com Port Viewer sende als Hex reagiert das gerät auch, aber über IPS nicht, ich denke mal, weil die Buchstaben die ich eingebe nich als Hex interpretiert werden. Habs folgendermaßen versucht:

COMPort_SendText (62660,"F0000700000202...");

Danke für eure Hilfe

Hallo,


$data = 0xF0 . 0x00;  // usw...
COMPort_SendText (62660, $data);

Das sind Hexzahlen.
Die muss man auch als solche übergeben.
also z.B.

$str=chr(0xF0).chr(0x00).chr(0x07); //usw
COMPort_SendText (62600,$str);

Tommi

OK, Torro war schneller

Hallo Uwe (Torro),

da hat sich bei Dir ein Fehler eingeschlichen.

So, wie Tommi es geschrieben hat ist es richtig.

Als Alternative ist auch diese Schreibweise möglich:

$str = "\xF0\x00\x07\x00\x00\x02\x02";

Bei der Verwendung der chr(…)-Funktion darf man selbstverständlich auch dezimale Zahlen übergeben. Von entscheidender Bedeutung ist der Wert, nicht die Schreibweise.

Folgende Schreibweisen sind also absolut gleichwertig:

$str = chr(0xf0);
$str = chr(240);

In beiden Fällen wird der variablen $str exakt der selbe Wert zugewiesen.

PHP wandelt alle Werte eines Strings in Zeichen (Buchstaben) um. Damit dieses unterbleibt, sorgt man mit der chr(…)-Funktion dafür, dass ein Wert unverändert beibehalten und keinesfalls umcodiert wird.

gruß
HJH

Vielen Dank HJH,

dein Tip hat funktioniert! Jetz reagiert mein Gerät auch;-) Die Programmierung kann weitergehen