Aber die hast du doch.
Oder möchtest du etwa einen String mir der hexadezimalen Darstellung deiner Daten verarbeiten ?
Ist aber Unfug, weil die Rohdaten zu verarbeiten ist in der Regel besser/einfacher.
Bitte nutzt doch die PHP-Tags, das erleichtert das Lesen ungemein
Um aus einem String einzelne Teile in eine Zahl zu ‚konvertieren‘ (es ist eher eine Typenwandlung), kann man einfach ord nutzen. PHP: ord - Manual
$Data = "DE"; // Hier mal 'lesbare' Zeichen, damit es einfach verständlich ist
$Zeichen = $Data[0]; // Ein String kann wie ein Array genutzt werden um auf einzelne Zeichen zuzugreifen.
echo ord($Zeichen); // Gibt sie Zahl 68 aus.
Natürlich kannst du anstatt $Data[0] auch substr nutzen.
Wenn man jetzt zwei Zeichen als 16Bit Wert braucht, kann man unpack nutzen: PHP: unpack - Manual
$Data = chr(0x44).chr(0x45); // = "DE" = 17477
$Word= unpack ("n",$Data[0].$Data[1]); // unpack nimmt hier zwei Zeichen und macht daraus ein Word (16Bit, 2 Byte)
var_dump($Word[1]); // Gibt die Zahl 17477 aus. Achtung, unpack gibt ein Array zurück!
Und für ord und unpack gibt es natürlich auch Umkehrfunktionen chr und pack.
Michael
Man kann natürlich auch mit Strings arbeiten welche eine Hexadezimale Schreibweise der Daten darstellen.
Aber wie willst du zu einen String, welche z.B. „EF“ enthält mal eben +3 rechne
Oder eine Checksumme errechnen ? Du musst dann immer wieder hin und herwandeln.
Darum ist es häufig einfacher mit den eigentlichen Zahlenwerten zu arbeiten.
Ob da nun 0xFF oder 255 steht ist ja völlig egal, es ist beides eine Zahl.
Wobei „FF“ in einem String natürlich nicht eine Zahl ist, sondern die Zahlen der entsprechung des Buchstabens F hat.
Hier also ( 0x46, 0x46 oder dezimal 70, 70).
Michael
@ckerndl: kann dir leider nicht mehr folgen , es scheint sich um zwei verschieden Übertragungen zu handeln.
Lese doch nur einmal $_IPS[‚VALUE‘] in eine Variable ein und gebe diese Variable dann mit den beiden Funktionen aus.
@Nall chan: wie schon gesagt bin kein Programmierer oder Informatiker.
Wenn ich unbekannte Schnittstellen mit einem Logger analysier habe ich es gerne wenn ich die Daten in Hex dargestellt bekomme. Man sieht schnell gleiche Strukturen und bei mir ist gedanklich dann sofort „FF“ gleich 255 und nicht 127 , geschweige denn 70,70. Arbeitet die Schnittstelle teilweise mit Bytes setze ich die „FF“ gleich mit 15,15 . Stamme halt noch aus einer Generation wo Rechner noch in Maschinencode Bit für Bit programmiert wurden.
Hast natürlich recht mit 255 … irgendwie habe ich vorhin geschlafen
Ich arbeite ja auch häufig mit den Hex-Darstellungen im Code, gerade weil es entweder so dokumentiert ist oder wie du sagst das Debug es ja auch so darstellen kann.