Согласно протоколу, всякий раз, когда вы получаете пакет входа (например, «78 78 11 01 03 55 46 85 91 24 52 79 28 01 21 2a 00 01 04 5f 0d 0a»), вы должны ответить:
7878 + длина сообщения (05) + 01 (протокол входа) + 0001 (порядковый номер, найденный в пакете) + d9dc (вычисление CRC ITU длины сообщения + символы входа + порядковый номер, в данном случае это d9dc) + 0d0a (стоповые биты)
На данный момент мне удалось получить значения в соответствии с тем, что они показывают в протоколе, и мне удалось заставить GPS отправлять мне информацию через сокет, но проблема в том, что всякий раз, когда я пытаюсь отправить ответ обратно на GPS, он получает ответ, но не отправляет обратно данные о местоположении.
Код: Выделить всё
$responseArray = str_split(strtoupper("787805$protocol$sequenceId$crc" . "0d0a"), 2);
for ($i = 0; $i < count($responseArray); $i++) {
$response .= chr(hexdec(trim($responseArray[$i])));
}
if ($socket) {
fwrite($socket, $response);
}
Значения CRC верны, а остальные значения такие же, как в протоколе. Кто-нибудь раньше работал с этой привязкой GPS? Если да, то в каком формате вы отправили ему информацию, чтобы он начал сообщать о местоположении GPS?
Подробнее здесь: https://stackoverflow.com/questions/783 ... ps-in-orde
Мобильная версия