1

Wialon Combine

Topic: Wialon Combine

Бинарный протокол Wialon Combine.

Представляем вашему вниманию бинарный протокол Wialon Combine.

Особенности:

  • Работа по UDP
  • Работа по TCP
  • Возможность передачи произвольных параметров
  • Возможность передачи файлов
  • Возможность передачи фотографий

Ознакомиться с протоколом можно: здесь

Протокол находится в стадии тестирования. Текущая версия: 1.0.4

В перспективе:

  • Будет добавлен эмулятор протокола.
  • Отправка команд на устройство.


Если у вас есть пожелания, вы хотите что-то добавить или наоборот убрать, пишите в этой теме.
Best regards,
Evgeny Shatilo
Gurtam HW Developer
26

Wialon Combine

Re: Wialon Combine

Шлем такой вариант как наиболее просто реализуемый:
head type seq len data crc16 head type seq1 len1 data1 crc16 head type seq2 len2 data2 crc16

Чтоб избавится от возможных проблем на моей стороне проверяю уже не устройством, а терминалом на ПК.
Отправляю:

{24}{24}{01}{03}{35}{00}{2B}{5A}{9F}{D1}{28}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4C}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{48}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{4A}{00}{00}{04}{BC}{24}{24}{01}{03}{36}{00}{2B}{5A}{9F}{D1}{46}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4E}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{48}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{49}{00}{00}{28}{09}{24}{24}{01}{03}{37}{00}{2B}{5A}{9F}{D1}{64}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4D}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{47}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{4A}{00}{00}{9F}{FE}{24}{24}{01}{03}{38}{00}{2B}{5A}{9F}{D1}{82}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4E}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{43}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{45}{00}{00}{94}{BE}{24}{24}{01}{03}{39}{00}{34}{5A}{9F}{D1}{88}{02}{04}{03}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{02}{00}{00}{00}{00}{00}{00}{00}{00}{8E}{23}{24}{24}{01}{03}{3A}{00}{34}{5A}{9F}{D2}{AF}{02}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{50}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{45}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{46}{00}{00}{02}{00}{00}{00}{00}{00}{00}{00}{00}{5D}{CD}

Ответ:

{40}{40}{00}{03}{35}

Жду минут 5... Тишина.

Отправляю еще раз:

{24}{24}{01}{03}{35}{00}{2B}{5A}{9F}{D1}{28}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4C}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{48}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{4A}{00}{00}{04}{BC}{24}{24}{01}{03}{36}{00}{2B}{5A}{9F}{D1}{46}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4E}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{48}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{49}{00}{00}{28}{09}{24}{24}{01}{03}{37}{00}{2B}{5A}{9F}{D1}{64}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4D}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{47}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{4A}{00}{00}{9F}{FE}{24}{24}{01}{03}{38}{00}{2B}{5A}{9F}{D1}{82}{01}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{4E}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{43}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{45}{00}{00}{94}{BE}{24}{24}{01}{03}{39}{00}{34}{5A}{9F}{D1}{88}{02}{04}{03}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{00}{02}{00}{00}{00}{00}{00}{00}{00}{00}{8E}{23}{24}{24}{01}{03}{3A}{00}{34}{5A}{9F}{D2}{AF}{02}{04}{03}{00}{FF}{00}{03}{E6}{78}{46}{AC}{00}{50}{00}{FF}{00}{FF}{00}{03}{E6}{78}{27}{6C}{00}{45}{00}{00}{00}{FF}{00}{03}{E6}{78}{27}{6D}{00}{46}{00}{00}{02}{00}{00}{00}{00}{00}{00}{00}{00}{5D}{CD}

Ответ:

{40}{40}{00}{03}{36}

И тишина...
Если еще раз отправить, то придет {40}{40}{00}{03}{37} и т.д.

Хорошо бы было от сервера обратно получить пачку {40}{40}{00}{03}{35} - {40}{40}{00}{03}{3A}
Проверяю я это все на бесплатном orange. Может в этом проблема?

27

Wialon Combine

(edited by bost 07/03/2018 17:06:55)

Re: Wialon Combine

alex2103 wrote:

Хорошо бы было от сервера обратно получить пачку {40}{40}{00}{03}{35} - {40}{40}{00}{03}{3A}
Проверяю я это все на бесплатном orange. Может в этом проблема?

Напишите нам на hw@gurtam.com. Проработаем этот вопрос более детально.

28

Wialon Combine

Re: Wialon Combine

Здравствуйте. Интересует передача через UDP и более подробное описание поля Login. В пакетах какого типа (Login, Data, Keep-Alive) должно содержаться поле Login? Эквивалентно ли поле Login полю ID пакета типа Login?

29

Wialon Combine

Re: Wialon Combine

_vau_ wrote:

Здравствуйте. Интересует передача через UDP и более подробное описание поля Login. В пакетах какого типа (Login, Data, Keep-Alive) должно содержаться поле Login? Эквивалентно ли поле Login полю ID пакета типа Login?

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

При использовании UDP у нас нет соединения как такового. Поэтому нет смысла в отдельном пакете Login.
Вместо этого вся информация (Proto ver, flags, ID, pwd) должна содержаться в каждом UDP пакете с данными.

30

Wialon Combine

Re: Wialon Combine

Добрый день, помогите разобраться Wialon Combine, точнее разобрать пакет в формате Wialon Combine.
входной пакет после авторизации устройства:
24240101c700485c0108bc04010295a6ec07e124100000004000230e00460200000000000000000902016000026000000801020010004002000a03000408612f6009610ffc100103e41104f11204aef6ec

я разбираю так:
0048  5c0108bc  04       01   0295a6ec 07e12410 0000 0040   0023  0e  0046     02 00000000 00000000    09  02       01   60   00026000000801 02
   len     time      count    №         lat          lon          sp      cour   high    st  hdop      №    in                out          №  count  №  type

0010004002000a03000408612f6009610ffc100103e41104f11204aef6ec

Вопрос собственно на 09 типе поля получается 2 параметра ADC, далее type 60 это 96 в десятичной или 01100000, в документации не написано но я так понимаю используем обратный порядок бит  (00000110 для простоты понимания) т.е. для полей >= 8  первых 3 бита 000, всё точно, далее 00110 это тип 6 т.е длина искомого поля будет singned int (4 байта). Пытаюсь применить полученные данные к выше указанному пакету и как то не складывается "2+2". Подскажите на каком этапе допускаю логическую ошибку.

31

Wialon Combine

Re: Wialon Combine

Ещё актуально!!!

32

Wialon Combine

Re: Wialon Combine

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

Ошбка заключается в том, что порядок бит всегда прямой.

0x60=0b01100000, где 011 - степень, 00000 - тип

В Вашем примере тип датчика равен 0 (unsigned byte), но значение должно быть разделено на 10^3 (011)

33

Wialon Combine

Re: Wialon Combine

Здравствуйте!
Подскажите пожалуйста, есть ли возможность отправки файлов на устройство. Например для перепрошивки? Или для таких задач необходимо использовать Wialon IPS?

34

Wialon Combine

Re: Wialon Combine

GrixaYrev wrote:

Здравствуйте!
Подскажите пожалуйста, есть ли возможность отправки файлов на устройство. Например для перепрошивки? Или для таких задач необходимо использовать Wialon IPS?

Добрый день.

В протоколе заложена возможность расширения команд (в том числе и команд с файлами прошивки и конфигурации), но на данный момент это не описано. Если у Вас есть такая необходимость, то вы можете написать на hw@gurtam.com, и мы расширим протокол необходимыми командами и выпустим новую версию.

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

Wialon Combine

(edited by alfinikov 16/11/2020 17:22:30)

Re: Wialon Combine

bost wrote:

Для значений более 127, необходимо использовать 2 байта.
Для Вашего примера необходимо передавать 33024 (0x8100). Мы, в свою очередь, определяем по первому (старшему) байту из потока наличие дополнительного байта. Этот дополнительный байт будет младшим для двухбайтового числа.

Данные необходимо передавать в Big-Endian.

Доброго времени суток, т.е. в поле Len, аналогичным образом если значение более 32767, тогда нужно использовать 4 байта, иначе 2 байта. Например для значения 65535 необходимо передавать 8000FFFF, я верно понимаю?

Upd 1. Подскажите пожалуйста в качестве ID, в пакете "LOGIN", какой идентификатор можно использовать(или как вы его формируете)?
Upd 2. Уточните пожалуйста про поле CRC16, оно как я понимаю двухбайтное, верно?

36

Wialon Combine

Re: Wialon Combine

Добрый день,

1) Всё верно, старший бит указывает на расширение значения в расширяемом поле. 0x80000000 так выглядит поле длинны в 4 байта. Для значения 65535 необходимо передать 0x8000FFFF.
2) В качестве идентификатора вы можете передавать любое значение согласно протоколу, будь то целочисленное или тип string. Если это string то в бинарном представлении должен быть 0x00 в конце. То что будет передано в качестве идентификатора будет зарегистрировано как уникальный ID устройства в Wialon
3) CRC двухбайтовое, всё верно.

Best regards,
Evgeny Shatilo
Gurtam HW Developer
37

Wialon Combine

Re: Wialon Combine

Спасибо, еще подскажите пожалуйста про пакет "LOGIN", в каком случае он должен передаваться(при первом включении устройства, или с какой-то периодичностью)?

38

Wialon Combine

Re: Wialon Combine

alfinikov wrote:

Спасибо, еще подскажите пожалуйста про пакет "LOGIN", в каком случае он должен передаваться(при первом включении устройства, или с какой-то периодичностью)?

Пакет LOGIN достаточно передать 1 раз в самом начале соединения. Периодически отправлять на протяжении подключения не нужно, а если такой пакет и будет получен, то он будет проигнорирован.
Имейте ввиду, что таймаут у Виалона 5 минут. То есть если в течении 5 минут от устройства не будет передано ни одного сообщения, то сервер закроет соединение.

Best regards,
Evgeny Shatilo
Gurtam HW Developer
39

Wialon Combine

Re: Wialon Combine

Спасибо за помощь

40

Wialon Combine

Re: Wialon Combine

Добрый день, хотелось бы уточнить про пакет Keep-Alive, он посылается в том случае, если отслеживаемый объект не двигается, т.е. в целях экономии трафика, я верно понимаю?

41

Wialon Combine

Re: Wialon Combine

alfinikov  Таймаут TCP соединения на стороне сервера Wialon = 300 секунд.
Если интервал между посылками от трекера на сервер более чем 300 секунд, соединение будет разорвано, а перед отправкой следующего полезного сообщения необходимо отправить login пакет.
keep alive пакеты нужны для удержания соединения между сервером и трекером, если в этом есть необходимость (т.к. далеко не всегда такая необходимость есть). Например, для отправки TCP команд в любой момент времени

Viktor Yarovenko
Hardware department Specialist
42

Wialon Combine

Re: Wialon Combine

понял, спасибо

43

Wialon Combine

(edited by alfinikov 15/12/2020 14:16:01)

Re: Wialon Combine

Добрый день, нашел опечатку в документации(не существунную, но все же решил вам сообщить)

44

Wialon Combine

Re: Wialon Combine

alfinikov спасибо, исправили.

Viktor Yarovenko
Hardware department Specialist