1

Некорректный ответ Wialon IPS

Тема: Некорректный ответ Wialon IPS

Добрый день!

Сейчас проверяем возможность общения трекеров с Wialon Pro по протоколу Wialon IPS v.1.1. Возникла странная ситуация - сообщение логина проходит нормально, Wialon корректно отвечает, но на сообщения с данными Wialon всегда отвечает, что принял 0 сообщений:

Посылка
#L#IMEI трекера;код доступа к объекту\r\n
Ответ
#AL#1\r\n

Посылка
#B#NA;NA;5036.3900;N;03634.7227;E;0;191;154;14;0.7;NA;NA;NA;NA;pwr_ext:2:0.0,aux:3:20000001|NA;NA;5036.3900;N;03634.7227;E;0;191;153;14;0.7;NA;NA;NA;NA;pwr_ext:2:0.0,aux:3:20000002|NA;NA;5036.3900;N;03634.7227;E;0;191;153;14;0.7;NA;NA;NA;NA;pwr_ext:2:0.0,aux:3:20000003|NA;NA;5036.3900;N;03634.7227;E;0;191;153;15;0.6;NA;NA;NA;NA;pwr_ext:2:0.0,aux:3:20000004\r\n
Ответ
#AB#0\r\n


А должен быть
#AB#4\r\n

В логе WialonIPS.log при этом пишется следующее:

2016/05/30 14:01:54:326: avl_hw_driver_plugin::on_tcp_begin('Wialon IPS', 'Наш IP')
2016/05/30 14:01:54:771: avl_hw_driver_plugin::on_tcp_end('Wialon IPS', 'Наш IP')

При этом до недавнего времени все сообщения Wialon корректно принимал и обрабатывал. Выдержка из логов успешно принятых сообщений:

2016/05/26 05:04:56:840: avl_hw_driver_plugin::on_tcp_begin('Wialon IPS', 'Наш IP')
2016/05/26 05:04:57:216: GPRS MSG(Wialon IPS): ID: IMEI трекера, IP: Наш IP, MSG: TIME: 05:04:40, LAT: 50.6061066667, LON: 36.578975, SPEED: 0, COURSE: 112
2016/05/26 05:04:57:414: avl_hw_driver_plugin::on_tcp_end('Wialon IPS', 'Наш IP') 

Единственное важное отличие в сообщениях, которое нашли - NA в позициях даты и времени сообщения, но в документации к протоколу Wialon IPS для данной ситуации описано, что в этом случае просто подставляются текущие дата и время сервера.

Подскажите, в чем может быть проблема?

2

Некорректный ответ Wialon IPS

(31/05/2016 09:59:46 отредактировано shev)

Re: Некорректный ответ Wialon IPS

Добрый день,

Всё верно, такой пакет сервер будет воспринимать как одно сообщение, т.к разделитель сообщений только один, я имею ввиду "\r\n".
Каждое сообщение в отдельности должно быть обрамлено "\r\n"

Вот пример корректного набора сообщений:

#D#301215;150258;5400.9892;N;08649.6257;E;30;156;320.000000;17;NA;4;0;NA;0;vs0:1:0,vs1:1:0,vs2:1:0,vs3:1:0,gsm_status:1:3,nav_status:1:3,ms:1:1,sim_n:1:0,sim_p:1:1,ss0:1:0,ss1:1:0,ss2:1:0,pwr_in:1:3,pwr_ext:1:28000,din0:1:0,din2:1:899,din3:1:0,im1:3:315\r\n
#D#301215;150322;5400.8876;N;08649.6944;E;30;158;330.000000;17;NA;4;0;NA;0;vs0:1:0,vs1:1:0,vs2:1:0,vs3:1:0,gsm_status:1:3,nav_status:1:3,ms:1:1,sim_n:1:0,sim_p:1:1,ss0:1:0,ss1:1:0,ss2:1:0,pwr_in:1:3,pwr_ext:1:28000,din0:1:0,din2:1:894,din3:1:0,im1:3:314\r\n
#D#301215;150327;5400.8668;N;08649.7076;E;30;160;330.000000;17;NA;4;0;NA;0;vs0:1:0,vs1:1:0,vs2:1:0,vs3:1:0,gsm_status:1:3,nav_status:1:3,ms:1:1,sim_n:1:0,sim_p:1:1,ss0:1:0,ss1:1:0,ss2:1:0,pwr_in:1:3,pwr_ext:1:28000,din0:1:0,din2:1:895,din3:1:0,im1:3:315\r\n
#D#301215;150350;5400.7688;N;08649.7603;E;30;164;350.000000;16;NA;4;0;NA;0;vs0:1:0,vs1:1:0,vs2:1:0,vs3:1:0,gsm_status:1:3,nav_status:1:3,ms:1:1,sim_n:1:0,sim_p:1:1,ss0:1:0,ss1:1:0,ss2:1:0,pwr_in:1:3,pwr_ext:1:28000,din0:1:0,din2:1:894,din3:1:0,im1:3:315\r\n
Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead
3

Некорректный ответ Wialon IPS

Re: Некорректный ответ Wialon IPS

shev пишет:

Добрый день,

Всё верно, такой пакет сервер будет воспринимать как одно сообщение, т.к разделитель сообщений только один, я имею ввиду "\r\n".
Каждое сообщение в отдельности должно быть обрамлено "\r\n"

Вот пример корректного набора сообщений:]

Приведенный вами пример справедлив для пакетов типа "D" - пакетов с данными. В данном случае отсылается пакет "B" - "черный ящик".

Согласно документации:

#B#msgmsg \r\n

Пакет с черным ящиком предназначен для передачи нескольких сообщений одновременно.

"msg" представляет собой несколько тел сокращенных или полных пакетов (без указания типа), разделенных между собой символом '|'.

Пример:

#B#date;time;lat1;lat2;lon1;lon2;speed;course;height;sats|date;time;lat1;lat2;lon1;lon2;speed;course;height;sats|date;time;lat1;lat2;lon1;lon2;
speed;course;height;sats\r\n

В ответ на пакет с черным ящиком сервер посылает команду AB, где указывается количество зафиксированных сообщений:

Пример:
#AB#3\r\n

То есть сервер все таки должен разбирать этот пакет как несколько сообщений и возвращать в ответе количество разобранных сообщений. И даже если предположить, что возвращает сервер 0 - сообщения должны корректно разбираться и сохраняться, чего не наблюдается - сообщения отсутствуют в Wialon.

4

Некорректный ответ Wialon IPS

Re: Некорректный ответ Wialon IPS

ceib пишет:

Единственное важное отличие в сообщениях, которое нашли - NA в позициях даты и времени сообщения, но в документации к протоколу Wialon IPS для данной ситуации описано, что в этом случае просто подставляются текущие дата и время сервера.

Это справедливо для всех сообщений, кроме сообщений из черного ящика.

Виталий Дмитренко
Gurtam
5

Некорректный ответ Wialon IPS

Re: Некорректный ответ Wialon IPS

dzvi пишет:

Это справедливо для всех сообщений, кроме сообщений из черного ящика.

Действительно - для нескольких сообщений (соответственно для "черного ящика") некорректно устанавливать одинаковые дату и время, упустили этот момент.

Спасибо за ответ!