Ich habe ein GPS-Gerät, Pakete an meinen Server (Linux mit PHP-Listener) über TCP, ich habe alle Parameter außer einem, E/A-Status.Format N_STRING Parameter von TCP-Daten
Das tk207 Protokoll legt fest, dass Parameter wie folgt aus:
IO State
Length: 8 bits
Type: N_STRING
1:Main power, '0' means on power, '1' means off power。
2:ACC, '0' ACC close, '1' ACC open
3: blender, '0' Did not.start, '1' Just turning, '2' reverse turning。
4:Empty/heavy vehicles, '0' Did not.start, '1' Empty, '2' Heavy
5:Front door, '0' Did not start, ’1’ open, '2' close。
6: off the oil state, '1' '0' recovery oil
7: arm/disarm state, '1' '0' from the 8 fortification: there is no vibration
N_STRING Definition: die Ziffer Zeichenfolge von 0,9 enthalten. Wenn Sie die Ziffern korrigieren, geben Sie den ASCII-Code 0 (Ox30H) links für fehlende Ziffern ein, außer für spezielle Anweisungen.
Ich erhalte Werte wie diese EDITED *
01000000
01000001
11000000
11000001
Aber ich bin nicht in der Lage, herauszufinden, wie die 7 Parameter aus dieser Zeichenfolge zu erhalten.
Jede Hilfe wird geschätzt.
EDIT: Bevor ich die Definition über das Feld hatte, war ich an einigen Beispielen, wie Blick auf den Ein/Aus-Wert aus diesem Feld
$gpioInput = 0;
for ($i = 0; $i <= 7; $i++) {
$b = substr($gpioStr, 7 - $i, 1);
if ($b != "0") {
$gpioInput |= (1 << $i);
}
}
Können Sie teilen, was Sie versucht haben? –
Bevor ich diese Definition gefunden habe, versuchte ich, den Ein/Aus-Parameter wie folgt zu erhalten $ gpioInput = 0; für ($ i = 0; $ i <= 7; $ i ++) { $ b = Teilstr ($ gpioStr, 7 - $ i, 1); if ($ b! = "0") { $ gpioInput | = (1 << $ i); } } – RonEskinder
Bitte bearbeiten Sie Ihren ursprünglichen Beitrag, um Code und/oder neue Informationen hinzuzufügen. http://stackoverflow.com/help/mcve –