Помогите с протоколом передачи данных

193
15 января 2019, 20:00

Имеется на руках teltonik FMB920. Настроил его на отправку TCP пакетов на сервер через GPRS. На сервере написан PHP скрипт на сокетах. Удаётся считать только IMEI код устройства, который приходит первым пакетом. Далее трекер не принимает команд и не отвечает больше никак.

Попытка прочитать несколько раз

$sock = socket_create(AF_INET,SOCK_STREAM, 0 );
if (!socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error($sock));
    exit;
}
socket_bind($sock, "0.0.0.0", 12345);
$res = socket_listen($sock);
while (1) {
        if ($res) {
                echo "start listening\n";
        }
        $client = socket_accept($sock);
        echo "get client\n";
        for ($i = 0; $i<10; $i++) {
                $responce = "";
                echo "start_reading\n";
                $response = socket_read($client, 100);
                echo "readed \n***\n$response\n***\n";
                sleep (1);
        }
}

А это попытка отправить команду после прочтения первого пакета

for ($i = 0; $i<10; $i++) {
                $responce = "";
                echo "start_reading\n";
                $response = socket_read($client, 100);
                echo "readed \n***\n$response\n***\n";
                sleep (1);
                socket_write($client, "getver");
                sleep (1);
                $response = socket_read($client, 100);
                echo "readed \n***\n$response\n***\n";
        }
Answer 1

В общем. Суть была в незнании протокола teltonika.

https://wiki.teltonika.lt/index.php?title=RUT955_Protocols

Ежели кому лень читать, На первый пакет трекера в виде IMEI кода нужно ответить бинарной строкой "01"

socket_write($client, hex2bin("01"));

и далее уже трекер спокойно отдал мне gps данные в виде AVL пакета.

READ ALSO
Обновление профиля если на это есть права

Обновление профиля если на это есть права

Как правильно реализовать данный функционал?

165
Как сделать НЕ наследуемый класс в PHP?

Как сделать НЕ наследуемый класс в PHP?

Судари и сударыни, помогите советомКак сделать класс НЕ наследуемым (PHP) ?? Гугление по ключевым словам "не наследуемый класс PHP", "какие бывают...

132
php -S localhost Segmentation fault: 11

php -S localhost Segmentation fault: 11

стоит версия php56 mac os, ставил через brew, при запуске php -S localhost:8000 заводится сервер, читает indexhtml, но как только доходит дело до чтения кода php сервер...

163
Разработка приложений для Windows XP в Visual Studio 2017 + Windows 10?

Разработка приложений для Windows XP в Visual Studio 2017 + Windows 10?

Есть потребность в том, чтобы моя программа имела полноценную поддержку Windows XP

159