1

Ретрансляция в протоколе Wialon IPS

Тема: Ретрансляция в протоколе Wialon IPS

Здравствуйте.

Возникла проблема при ретрансляции данных в протоколе Wialon IPS.
Суть в следующем.
Наша компания (Эрма Софт) занимается предоставлением услуг и ПО для мониторинга и планирования грузоперевозок.
У нас есть клиент, который ретранслирует к нам на сервер gps-данные в протоколе Wialon IPS.
Клиент постоянно жаловался на то, что точек в мониторинге Гуртама намного больше, чем он видит через наше ПО,
т.е. ретранслируется не все. На стороне клиента включался debug-режим, который показал, что все данные отправляются.

Стали копаться на нашей стороне и выяснили следующее:
Вместе с пакетом авторизации могут приходить gps-данные

Получается такая картина, например нам приходит такой пакет:

#L#868204008517012;NA
#D#200516;125711;4329.6177;N;03959.5176;E;94;208;35.000000;15;NA;1;NA;0.000000,0.000000;NA;code_io:1:0,param0:1:3,param255:1:128,gsm:1:35,temp_ext:1:41,param29:1:28,param91:1:1,param93:1:25001,pwr_ext:2:13.680000,pwr_int:2:4.305000,param28:1:1160,param92:1:1105,voltage:2:13.680000,voltage1:2:4.305000,engine operation:2:1.000000,custom:2:140.577508,fuel level:2:22.492401,custom1:2:35.000000,digital:2:15.000000

Служба приема данных распознает его как пакет авторизации, вытаскивает из него IMEI, отправляет ответ успешной авторизации, а точка соответственно теряется. Я взял для примера одну точку, но порой приходит пакет авторизации с двухзначным количеством gps-точек, и все они теряются.

В связи с этим такой вопрос:
Где тут авторизация, если вместе с пакетом авторизации мы уже получаем gps-данные?

Разве протокол не должен работать по такой схеме:

client: Клиент отправляет пакет авторизации
server: Сервер отвечает на пакет авторизации, запоминает IMEI
client: Клиент получает ответ на пакет авторизации, если все нормально, начинает слать другие пакеты
client: Например, клиент отправляет обычный пакет с данными #D#
server:Сервер разбирает пакет, отправляет ответ клиенту
client: Если все нормально клиент отправляет следующий пакет

2

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Уже писалось где-то: при трансляции с Wialon транслятор не ждёт ответа: идёт отправка в куда-то, а разобрали ли там - это Ваши проблемы. Ждать от Вас ответа Wialon не будет, ибо в плохом случае это может привести к зависону.
И да, в одной посылке могут быть пакеты разных типов. Рапарсивайте принятое по-очереди не удаляя остаток буфера.

3

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

BoolAB пишет:

Уже писалось где-то: при трансляции с Wialon транслятор не ждёт ответа: идёт отправка в куда-то, а разобрали ли там - это Ваши проблемы. Ждать от Вас ответа Wialon не будет, ибо в плохом случае это может привести к зависону.
И да, в одной посылке могут быть пакеты разных типов. Рапарсивайте принятое по-очереди не удаляя остаток буфера.

Спасибо за ответ! Хотели сразу переделать, но решил уточнить, чтобы впустую не тратить время.
Странно, что эта информация не написана нигде крупными буквами, и менеджеры Гуртам не могут ее воспроизвести, а отправляют
на форум к разработчикам)

4

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

AlexanderO пишет:

Здравствуйте.

Возникла проблема при ретрансляции данных в протоколе Wialon IPS.
Суть в следующем.
Наша компания (Эрма Софт) занимается предоставлением услуг и ПО для мониторинга и планирования грузоперевозок.
У нас есть клиент, который ретранслирует к нам на сервер gps-данные в протоколе Wialon IPS.
Клиент постоянно жаловался на то, что точек в мониторинге Гуртама намного больше, чем он видит через наше ПО,
т.е. ретранслируется не все. На стороне клиента включался debug-режим, который показал, что все данные отправляются.

Стали копаться на нашей стороне и выяснили следующее:
Вместе с пакетом авторизации могут приходить gps-данные

Получается такая картина, например нам приходит такой пакет:

#L#868204008517012;NA
#D#200516;125711;4329.6177;N;03959.5176;E;94;208;35.000000;15;NA;1;NA;0.000000,0.000000;NA;code_io:1:0,param0:1:3,param255:1:128,gsm:1:35,temp_ext:1:41,param29:1:28,param91:1:1,param93:1:25001,pwr_ext:2:13.680000,pwr_int:2:4.305000,param28:1:1160,param92:1:1105,voltage:2:13.680000,voltage1:2:4.305000,engine operation:2:1.000000,custom:2:140.577508,fuel level:2:22.492401,custom1:2:35.000000,digital:2:15.000000

Служба приема данных распознает его как пакет авторизации, вытаскивает из него IMEI, отправляет ответ успешной авторизации, а точка соответственно теряется. Я взял для примера одну точку, но порой приходит пакет авторизации с двухзначным количеством gps-точек, и все они теряются.

В связи с этим такой вопрос:
Где тут авторизация, если вместе с пакетом авторизации мы уже получаем gps-данные?

Разве протокол не должен работать по такой схеме:

client: Клиент отправляет пакет авторизации
server: Сервер отвечает на пакет авторизации, запоминает IMEI
client: Клиент получает ответ на пакет авторизации, если все нормально, начинает слать другие пакеты
client: Например, клиент отправляет обычный пакет с данными #D#
server:Сервер разбирает пакет, отправляет ответ клиенту
client: Если все нормально клиент отправляет следующий пакет

AlexanderO, ретранслятор действительно может отправлять сообщение авторизации и gps одним пакетом, это не должно быть проблемой. Каждое сообщение имеет разделитель "\r\n" по нему вы можете определить границу сообщения, будь то Авторизация либо GPS точка, и дать соответствующий ответ клиенту. Всё это происходит поочерёдно удаляя из буфера уже разобранные сообщения.
Соответственно если вы отправите на сервер один большой пакет размером например в мегабайт, с большим количеством gps точек и логинским пакетов спереди, то сервер даст ответ на каждое сообщение в этом пакете. Скажу даже больше, таким образом работает достаточное кол-во поддержанных у нас протоколов и это нормально, при условии что есть чёткая граница полезных данных.

Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead
5

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

shev пишет:
AlexanderO пишет:

Здравствуйте.

Возникла проблема при ретрансляции данных в протоколе Wialon IPS.
Суть в следующем.
Наша компания (Эрма Софт) занимается предоставлением услуг и ПО для мониторинга и планирования грузоперевозок.
У нас есть клиент, который ретранслирует к нам на сервер gps-данные в протоколе Wialon IPS.
Клиент постоянно жаловался на то, что точек в мониторинге Гуртама намного больше, чем он видит через наше ПО,
т.е. ретранслируется не все. На стороне клиента включался debug-режим, который показал, что все данные отправляются.

Стали копаться на нашей стороне и выяснили следующее:
Вместе с пакетом авторизации могут приходить gps-данные

Получается такая картина, например нам приходит такой пакет:

#L#868204008517012;NA
#D#200516;125711;4329.6177;N;03959.5176;E;94;208;35.000000;15;NA;1;NA;0.000000,0.000000;NA;code_io:1:0,param0:1:3,param255:1:128,gsm:1:35,temp_ext:1:41,param29:1:28,param91:1:1,param93:1:25001,pwr_ext:2:13.680000,pwr_int:2:4.305000,param28:1:1160,param92:1:1105,voltage:2:13.680000,voltage1:2:4.305000,engine operation:2:1.000000,custom:2:140.577508,fuel level:2:22.492401,custom1:2:35.000000,digital:2:15.000000

Служба приема данных распознает его как пакет авторизации, вытаскивает из него IMEI, отправляет ответ успешной авторизации, а точка соответственно теряется. Я взял для примера одну точку, но порой приходит пакет авторизации с двухзначным количеством gps-точек, и все они теряются.

В связи с этим такой вопрос:
Где тут авторизация, если вместе с пакетом авторизации мы уже получаем gps-данные?

Разве протокол не должен работать по такой схеме:

client: Клиент отправляет пакет авторизации
server: Сервер отвечает на пакет авторизации, запоминает IMEI
client: Клиент получает ответ на пакет авторизации, если все нормально, начинает слать другие пакеты
client: Например, клиент отправляет обычный пакет с данными #D#
server:Сервер разбирает пакет, отправляет ответ клиенту
client: Если все нормально клиент отправляет следующий пакет

AlexanderO, ретранслятор действительно может отправлять сообщение авторизации и gps одним пакетом, это не должно быть проблемой. Каждое сообщение имеет разделитель "\r\n" по нему вы можете определить границу сообщения, будь то Авторизация либо GPS точка, и дать соответствующий ответ клиенту. Всё это происходит поочерёдно удаляя из буфера уже разобранные сообщения.
Соответственно если вы отправите на сервер один большой пакет размером например в мегабайт, с большим количеством gps точек и логинским пакетов спереди, то сервер даст ответ на каждое сообщение в этом пакете. Скажу даже больше, таким образом работает достаточное кол-во поддержанных у нас протоколов и это нормально, при условии что есть чёткая граница полезных данных.

Проблемой это конечно не будет, если знать об этом заранее, но так как на мой взгляд это откровенное несоблюдение протокола, то проблемой это как раз стало)) И искать ее пришлось вручную, потому что предположить что точки теряются при авторизации, я например не мог. Еще давно мы заметили приход сразу нескольких точек в пакетах с данными, что кстати тоже не логично, и устранили ее, и опять же это произошло по жалобе одного из клиентов. Ретранслировали бы все данные, как данные из черного ящика и слали бы отдельно пакет авторизации, и все соблюдалось бы, не пришлось бы выдумывать логику, удовлетворяющую принципам работы и ретранслятора, и клиентов, которые реализовали Wialon IPS сами.
Будь я вашим разработчиком, я не смог бы спать, зная, как оно работает))

6

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Авторизация имеет значение только для принимающей стороны, во избежания подлога устройства. Передающей стороне нет разницы куда слать данные.

At the dark side of telematics...
7

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Переписали парсер, стало намного лучше, но все равно кое-где остаются "прострелы".
В связи с этим еще вопрос по ретранслятору. Он ретранслирует только онлайн данные?
Т.е. если служба приема данных перезапускалась (останавливалась на пару минут) и в это время были попытки отправки данных,
по включению службы эти данные не будут отправлены повторно в режиме истории и к нам уже никогда не придут?

8

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

AlexanderO пишет:

Т.е. если служба приема данных перезапускалась (останавливалась на пару минут) и в это время были попытки отправки данных,
по включению службы эти данные не будут отправлены повторно в режиме истории и к нам уже никогда не придут?

Нет, выполняется буферизация и данные досылаются, но ограниченного количества сообщений. Примерно 10.000 на ретранслятор.

At the dark side of telematics...
9

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

shal пишет:
AlexanderO пишет:

Т.е. если служба приема данных перезапускалась (останавливалась на пару минут) и в это время были попытки отправки данных,
по включению службы эти данные не будут отправлены повторно в режиме истории и к нам уже никогда не придут?

Нет, выполняется буферизация и данные досылаются, но ограниченного количества сообщений. Примерно 10.000 на ретранслятор.

Ясно. Спасибо, будем значит дальше ковырять.

10

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

shal пишет:
AlexanderO пишет:

Т.е. если служба приема данных перезапускалась (останавливалась на пару минут) и в это время были попытки отправки данных,
по включению службы эти данные не будут отправлены повторно в режиме истории и к нам уже никогда не придут?

Нет, выполняется буферизация и данные досылаются, но ограниченного количества сообщений. Примерно 10.000 на ретранслятор.

А вот WialonRetranslator похоже досылает всего пару пакетов. чтоб получить полную историю стоит переходить на IPS?

11

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

eri пишет:
shal пишет:
AlexanderO пишет:

Т.е. если служба приема данных перезапускалась (останавливалась на пару минут) и в это время были попытки отправки данных,
по включению службы эти данные не будут отправлены повторно в режиме истории и к нам уже никогда не придут?

Нет, выполняется буферизация и данные досылаются, но ограниченного количества сообщений. Примерно 10.000 на ретранслятор.

А вот WialonRetranslator похоже досылает всего пару пакетов. чтоб получить полную историю стоит переходить на IPS?

По хорошему, чтобы иметь гарантированный набор всех данных, Вам лучше всего пустить поток через шлюз flespi, его пустить можно с Wialon по протоколу Wialon Retranslator или IPS (это не важно), а уже вычитывать можно каждое сообщение, с гарантированной доставкой, как описано тут: https://flespi.com/quick-start.

Вычитывать сообщения в свою программу с буфера можно самостоятельно либо использую Open Source библиотеку, например: https://github.com/janbartnitsky/flespi_receiver

И тогда Вам не важно будет какое интернет-соединение между Вам и Wialon, как долго недоступно Ваше приложение и сколько сообщений там накопилось.

At the dark side of telematics...
12

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Используй  Wialon IPS 2

13

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Здравствуйте. Новую тему создать не могу, поэтому пишу здесь.

Я разрабатываю собственное приложение мониторинга транспорта, на основании ретранслируемых мне геоданных. Возникла проблема с приёмом пакетов от ретранслятора. Гугл и форум не помогли.

Мне ретранслируют данные по протоколу  Wialon IPS от 40 объектов. Тестирую приём на полностью самодельном сервере и на Flespi.io.

Проблема в следующем: Сначала каждый объект присылает пакет логина, сервер подтверждает и шлёт в ответ #AL#1.
Но вот дальше пакеты с данными (D или SD) приходят только от нескольких объектов. Т.е. логинятся все 40, а данные шлют всего 5-10. Причём если перезагрузить сервер, то все объекты залогинятся снова, но данные могут приходить уже от других объектов, а не от тех, от  которых приходили в первый раз.

Потом, через какое-то время, объект может вообще зависнуть и соединение с ним закроется по таймауту. Ещё через несколько минут он может снова залогиниться и что-нибудь прислать. Естественно нормально работать с такими данными нельзя.

Если я сам отправляю на сервер данные с эмулятора, либо подключаю планшет в режиме трекера, то всё отрабатывает чётко, всё парсится как нужно.

И поскольку такая проблема возникает на двух совершенно разных серверах, то скорее всего вопрос именно в ретрансляторе.
Подскажите, в чём может быть косяк? Фирма, которая ретранслирует мне данные, ничего не может объяснить.

14

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Nomad_13 пишет:

Фирма, которая ретранслирует мне данные, ничего не может объяснить.

А какой софт используется на этой фирме для отправки данных?

At the dark side of telematics...
15

Ретрансляция в протоколе Wialon IPS

(01/06/2018 12:06:00 отредактировано yavi)

Re: Ретрансляция в протоколе Wialon IPS

Nomad_13 Без пояснения отправляющей стороны Вам вряд ли можно помочь, т.к. много нюансов  -- открывается ли отдельное соединение на каждый объект, ждет ли сервер подтверждения логин-пакета или не ждет, доходит ли ваш ответ на сервер отправителя (если он его ждет).

В целом для ретрансляции данных более уместно использовать протокол Wialon Retranslator -  в данном протоколе в одном соединении можно отправлять данные от группы объектов, в то время как IPS разработан для использования в приборах, где заложена логика необходимости наличия отдельного соединения для каждого объекта.

Viktor Yarovenko
Business Analyst
Wialon
16

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Может ли кто-нибудь помочь мне разобраться с обработкой ретранслированных данных?

Для этого, пожалуйста, создайте ретранслятор из нескольких любых объектов на мой канал 193.193.165.37:20897 Хотя бы на несколько часов. Протокол Wialon Retranslator.

Хочу проанализировать логи и разобраться в том, как будут приходить данные.

17

Ретрансляция в протоколе Wialon IPS

Re: Ретрансляция в протоколе Wialon IPS

Nomad_13 пишет:

Может ли кто-нибудь помочь мне разобраться с обработкой ретранслированных данных?

Для этого, пожалуйста, создайте ретранслятор из нескольких любых объектов на мой канал 193.193.165.37:20897 Хотя бы на несколько часов. Протокол Wialon Retranslator.

Хочу проанализировать логи и разобраться в том, как будут приходить данные.

Написал в ЛС.

18

Ретрансляция в протоколе Wialon IPS

(17/09/2018 17:52:27 отредактировано tdt66)

Re: Ретрансляция в протоколе Wialon IPS

shal пишет:
AlexanderO пишет:

Т.е. если служба приема данных перезапускалась (останавливалась на пару минут) и в это время были попытки отправки данных,
по включению службы эти данные не будут отправлены повторно в режиме истории и к нам уже никогда не придут?

Нет, выполняется буферизация и данные досылаются, но ограниченного количества сообщений. Примерно 10.000 на ретранслятор.

можно узнать на сколько по времени работает буфер ?

потому как ожидаешь сразу данные , а ретранслятор походу их копит , вопрос сколько по времени он ждет ?(можно ли как то уменьшить этот буфер ожидания ? потому как бы иногда необходимо транслировать данные сразу !)

и через какое время он рвет соединение ?

интерес по протоколу Wialon IPS

и действует ли этот буфер (периодичность разрывов и  буферности) на все ретрансляторы или на один ? , но по одинаковому

подпись сломали .. впрочем не удивительно