1

Wialon Combine

Тема: Wialon Combine

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

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

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

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

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

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

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

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


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

Wialon Combine

Re: Wialon Combine

Пока в протоколе не предусмотрена возможность передачи сообщений от сервера к прибору. Будет что то меняться в этом направлении или останется только односторонний обмен?

2

Wialon Combine

Re: Wialon Combine

Обязательно будет. Возможно у вас уже есть предпочтения по формату команд?

Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead
3

Wialon Combine

Re: Wialon Combine

По сути нужен контейнер произвольного размера, В IPS, аналог сообщения для водителя. Дальше разбор на уровне железа. Для отдельных форматов слишком много вариантов  сообщений. Это и настройки оборудования и передача настроек, управляющих команд, и сообщений внешним устройствам... и много чего еще не придумали но кому нибудь очень нужно smile

4

Wialon Combine

Re: Wialon Combine

Внесены поправки и доработки в протокол:
-Изменен формат ответа на сообщения
-Добавлены команды

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

Wialon Combine

Re: Wialon Combine

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

6

Wialon Combine

Re: Wialon Combine

BITREK пишет:

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

Верно, все подпакеты для пакета Data равноправны и могут содержаться в любой комбинации.
Время в пакете Data - это обязательное поле, которое является общим для всех подпакетов.
Сервер привязывает значение датчиков ко времени, а не к координатам. Передавать подпакет GPS не обязательно, так же как и другие подпакеты.

7

Wialon Combine

Re: Wialon Combine

beal пишет:

Время в пакете Data - это обязательное поле, которое является общим для всех подпакетов.
Сервер привязывает значение датчиков ко времени, а не к координатам.

На сколько понимаю, у Вас в протоколе время является уникальным идентификатором события?
И в протоколе не указано как время из 4 байт вычислять, видимо точность регистрации событий 1 сек, считая от ???, но не суть.

Думаю что это не самая лучшая идея, учитывая тот факт, что часы в терминалах имеют свойство иногда сбиваться, скачкообразно подстраиваться по внешним источникам, что усложнит последующую обработку событий.

8

Wialon Combine

Re: Wialon Combine

terminator пишет:
beal пишет:

Время в пакете Data - это обязательное поле, которое является общим для всех подпакетов.
Сервер привязывает значение датчиков ко времени, а не к координатам.

На сколько понимаю, у Вас в протоколе время является уникальным идентификатором события?
И в протоколе не указано как время из 4 байт вычислять, видимо точность регистрации событий 1 сек, считая от ???, но не суть.

Думаю что это не самая лучшая идея, учитывая тот факт, что часы в терминалах имеют свойство иногда сбиваться, скачкообразно подстраиваться по внешним источникам, что усложнит последующую обработку событий.

В Виалоне время не совсем является уникальным идентификатором события. Если на сервер придёт сообщение с другими координатами но, с тем же временем, оно будет зарегистрировано. Проще говоря, если хотя бы один параметр отличается от предыдущего сообщения с таким же временем, то оно будет зарегистрировано. То есть, прибору ничего не мешает отправлять несколько сообщений в секунду.
Минимальный шаг событий 1 секунда, всё верно. Формат времени UTC, следовательно отсчёт с 01.01.1970. (этот момент будет добавлен в протокол).

Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead
9

Wialon Combine

Re: Wialon Combine

shev пишет:

В Виалоне время не совсем является уникальным идентификатором события. Если на сервер придёт сообщение с другими координатами но, с тем же временем, оно будет зарегистрировано. Проще говоря, если хотя бы один параметр отличается от предыдущего сообщения с таким же временем, то оно будет зарегистрировано. То есть, прибору ничего не мешает отправлять несколько сообщений в секунду.
Минимальный шаг событий 1 секунда, всё верно. Формат времени UTC, следовательно отсчёт с 01.01.1970. (этот момент будет добавлен в протокол).

Давайте рассмотрим две реальные ситуации, одна из них совсем жизненная.

1.

shev пишет:

Если на сервер придёт сообщение с другими координатами но, с тем же временем, оно будет зарегистрировано.

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

2.

shev пишет:

То есть, прибору ничего не мешает отправлять несколько сообщений в секунду.

работает терминал, выключили у него питание, села батарейка часов, часы сбились, после включения время ушло в далёкое или не очень прошлое. Что будет с такими данными? две разные точки в одно и то же время, как будет строиться такой трек? что увидит пользователь?
Имея же уникальный, нарастающий идентификатор, у пользователя будет возможность восстановить порядок событий, даже не имея точного времени.

10

Wialon Combine

Re: Wialon Combine

terminator пишет:
shev пишет:

В Виалоне время не совсем является уникальным идентификатором события. Если на сервер придёт сообщение с другими координатами но, с тем же временем, оно будет зарегистрировано. Проще говоря, если хотя бы один параметр отличается от предыдущего сообщения с таким же временем, то оно будет зарегистрировано. То есть, прибору ничего не мешает отправлять несколько сообщений в секунду.
Минимальный шаг событий 1 секунда, всё верно. Формат времени UTC, следовательно отсчёт с 01.01.1970. (этот момент будет добавлен в протокол).

Давайте рассмотрим две реальные ситуации, одна из них совсем жизненная.

1.

shev пишет:

Если на сервер придёт сообщение с другими координатами но, с тем же временем, оно будет зарегистрировано.

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

2.

shev пишет:

То есть, прибору ничего не мешает отправлять несколько сообщений в секунду.

работает терминал, выключили у него питание, села батарейка часов, часы сбились, после включения время ушло в далёкое или не очень прошлое. Что будет с такими данными? две разные точки в одно и то же время, как будет строиться такой трек? что увидит пользователь?
Имея же уникальный, нарастающий идентификатор, у пользователя будет возможность восстановить порядок событий, даже не имея точного времени.

Уважаемый, terminator.

Описанная вами ситуация действительно может иметь место.

Единственно верный способ, который позволит построить все сообщения в хронологическом порядке, это если устройство будет хранить номер уникального сообщения у себя в памяти. Соответственно после перезагрузки трекера, либо отключения батареи этот порядок сообщений не должен сбиваться. На уровне протокола, возможность передачи порядкового номера сообщения уже реализована: Seq — Порядковый номер (циклический 0 — 65535). Зарегистрировать этот параметр на Виалоне не составит труда, вопрос лишь в устройстве.

Любой другой способ нумерации сообщений не будет успешен.

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

Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead
11

Wialon Combine

Re: Wialon Combine

Новый протокол бинарный уже поддерживается в предыдущих сборках локальных? С чем связан вопрос - устройство для работы с Wialon, сейчас занимаемся ним, можно ли в устройстве реализовывать один бинарный протокол? Ну, чтобы завтра устройство вышло на связь на сборку например 1401 Pro?

1-wire, RS485 RFID считыватели, идентификация прицепов и водительского персонала. Разработка и производство.
www.montel-rek.com
Документация и ПО считывателей MR-91T
МОНТЕЛ-РЕК Google + , подписываемся Twitter https://twitter.com/Montel_rek_Ltd
12

Wialon Combine

Re: Wialon Combine

Fagot73
Протокол у нас реализован и готов к использованию. Но т.к. реальных устройств до сих пор  никто  еще не  изготовил, полная проверка не проведена, и, следовательно, его нет в списке устройств в Wialon.
Если Вы хотите внедрить протокол в свое устройство,  для тестирования в процессе разработки мы сообщим доступ в специальную учетку.
При появлении  готовых  устройств  -- оборудование сразу станет доступным на хостинг/локал.
Технически на Wialon PRO 1401 новый протокол также может быть доступен. Но т.к. Wialon PRO больше не поддерживается, об условиях предоставления скрипта Вам необходимо связаться с отделом продаж Gurtam (или своим дилером решений Wialon).

Viktor Yarovenko
Business Analyst
Wialon
13

Wialon Combine

Re: Wialon Combine

yavi
only IPS v2.0 )
спасибо.

1-wire, RS485 RFID считыватели, идентификация прицепов и водительского персонала. Разработка и производство.
www.montel-rek.com
Документация и ПО считывателей MR-91T
МОНТЕЛ-РЕК Google + , подписываемся Twitter https://twitter.com/Montel_rek_Ltd
14

Wialon Combine

(06/04/2016 17:06:40 отредактировано was71)

Re: Wialon Combine

Возможно ли подключиться к какому то тестовому серверу  Wialon - протестировать протокол ?. Какой тип устройства для данного протокола?

15

Wialon Combine

Re: Wialon Combine

Описание протокола по ссылке не доступно - https://docs.gurtam.net/index.php/s/MYUbNnL497vg0m1

16

Wialon Combine

Re: Wialon Combine

Изменили ссылку в шапке на http://gurtam.com/files/Wialon_Combine_v1.0.3.pdf

Viktor Yarovenko
Business Analyst
Wialon
17

Wialon Combine

Re: Wialon Combine

Хочу в свое устройство добавить бинарный протокол для Wialon. Куда можно подключиться для тестов?
Текстовый протокол пытался отлаживать на orange - получалось.

18

Wialon Combine

Re: Wialon Combine

alex2103 пишет:

Хочу в свое устройство добавить бинарный протокол для Wialon. Куда можно подключиться для тестов?
Текстовый протокол пытался отлаживать на orange - получалось.

Бинарный протокол интегрирован как Wialon IPS. Новый протокол можно так же тестировать на orange. По любым возникающим в процессе вопросам обращайтесь на hw@gurtam.com.

Вы так же можете направить данные на наш тестовый сервер, с которого мы имеем возможность предоставить исходные данные и оказать помощь в интеграции. Для этого нужно отправить запрос на указанный выше адрес.

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

Wialon Combine

Re: Wialon Combine

Здравствуйте, коллеги. В процессе просмотра спецификации на протокол, появился вопрос по расширяемым полям. Указано, что поля могут расширяться с 1 до 2х байт и с 2х до 4х. При этом, указателем на необходимость дочитать нужное количество данных, является старший бит. Но старший бит уже будет выставлен для значений байта, больших 127. В таком случае, как выравнивать биты для значений, не требующих установленного старшего бита?
Возьмем для примера поле Type (расширяемое, 1 - 2 байта).  Допустим мне необходимо записать в него значение 256 (0x100). Как будет выглядеть правильно выравненное значение в бинарном представлении?

20

Wialon Combine

Re: Wialon Combine

armit пишет:

Здравствуйте, коллеги. В процессе просмотра спецификации на протокол, появился вопрос по расширяемым полям. Указано, что поля могут расширяться с 1 до 2х байт и с 2х до 4х. При этом, указателем на необходимость дочитать нужное количество данных, является старший бит. Но старший бит уже будет выставлен для значений байта, больших 127. В таком случае, как выравнивать биты для значений, не требующих установленного старшего бита?
Возьмем для примера поле Type (расширяемое, 1 - 2 байта).  Допустим мне необходимо записать в него значение 256 (0x100). Как будет выглядеть правильно выравненное значение в бинарном представлении?

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

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

21

Wialon Combine

Re: Wialon Combine

Как правильно передать на сервер накопившиеся данные при отсутствии связи?
Если передавать по одному пакету и ожидать подтверждение его регистрации, то все работает, но получается достаточно долго т.к. по GPRS пакет из 50 байт идет столько же времени что и 500 байт.
Если в одном TCP пакете отослать пачку сообщений, то сервер подтверждает только первое из них. Если отослать еще одну пачку, то подтверждает второе сообщение из первой пачки и т.д.

22

Wialon Combine

Re: Wialon Combine

alex2103 пишет:

Как правильно передать на сервер накопившиеся данные при отсутствии связи?
Если передавать по одному пакету и ожидать подтверждение его регистрации, то все работает, но получается достаточно долго т.к. по GPRS пакет из 50 байт идет столько же времени что и 500 байт.
Если в одном TCP пакете отослать пачку сообщений, то сервер подтверждает только первое из них. Если отослать еще одну пачку, то подтверждает второе сообщение из первой пачки и т.д.

Вы можете передавать несколько сообщений в одном пакете с данными (тип Data). Например:
head type seq len data crc16, где в data может быть несколько сообщений со своими временами и подзаписями.

23

Wialon Combine

(07/03/2018 14:13:30 отредактировано alex2103)

Re: Wialon Combine

Обычная регулярная передача выглядит так:
head type seq len data crc16 , где в data в минимальном варианте есть время и подзапись POSITION_DATA
seq - инкрементируется при создании каждого нового сообщения. Seq уникальна и сохраняется между сессиями и/или выключениями питания.
Т.е. внутри устройства (да и сервера думаю тоже) уникальный ключ это seq + time.
Если передавать пачку сообщений, то получается последовательность:
head type seq len data_1 data_2 data_3 data_n crc16
Получается к одному seq привязана уже кучка сообщений что противоречит самой задумке уникальной seq.
Или я неправильно понял и надо так:
head type seq_1 len_1 data_1 seq_2 len_2 data_2 seq_n len_n data_n crc16

Я передавал так:
head type seq len data crc16 head type seq1 len1 data1 crc16 head type seq2 len2 data2 crc16

24

Wialon Combine

Re: Wialon Combine

alex2103 пишет:

Обычная регулярная передача выглядит так:
head type seq len data crc16 , где в data в минимальном варианте есть время и подзапись POSITION_DATA
seq - инкрементируется при создании каждого нового сообщения. Seq уникальна и сохраняется между сессиями и/или выключениями питания.
Т.е. внутри устройства (да и сервера думаю тоже) уникальный ключ это seq + time.
Если передавать пачку сообщений, то получается последовательность:
head type seq len data_1 data_2 data_3 data_n crc16
Получается к одному seq привязана уже кучка сообщений что противоречит самой задумке уникальной seq.
Или я неправильно понял и надо так:
head type seq_1 len_1 data_1 seq_2 len_2 data_2 seq_n len_n data_n crc16

Я передавал так:
head type seq len data crc16 head type seq1 len1 data1 crc16 head type seq2 len2 data2 crc16

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

alex2103 пишет:

Если в одном TCP пакете отослать пачку сообщений, то сервер подтверждает только первое из них. Если отослать еще одну пачку, то подтверждает второе сообщение из первой пачки и т.д.

Вы вычитываете из буфера не всю информацию после первой пачки сообщений, а лишь один ответ. После второй пачки - вычитываете второй ответ, остальные в это время накапливаются в буфере.

По протоколу Виалон отвечает на каждый пакет.

25

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. Может в этом проблема?

26

Wialon Combine

(07/03/2018 17:06:55 отредактировано bost)

Re: Wialon Combine

alex2103 пишет:

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

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

27

Wialon Combine

Re: Wialon Combine

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

28

Wialon Combine

Re: Wialon Combine

_vau_ пишет:

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

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

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

29

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". Подскажите на каком этапе допускаю логическую ошибку.

30

Wialon Combine

Re: Wialon Combine

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

31

Wialon Combine

Re: Wialon Combine

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

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

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

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

32

Wialon Combine

Re: Wialon Combine

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

33

Wialon Combine

Re: Wialon Combine

GrixaYrev пишет:

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

Добрый день.

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

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

Wialon Combine

(16/11/2020 17:22:30 отредактировано alfinikov)

Re: Wialon Combine

bost пишет:

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

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

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

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

35

Wialon Combine

Re: Wialon Combine

Добрый день,

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

Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead
36

Wialon Combine

Re: Wialon Combine

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

37

Wialon Combine

Re: Wialon Combine

alfinikov пишет:

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

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

Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead
38

Wialon Combine

Re: Wialon Combine

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

39

Wialon Combine

Re: Wialon Combine

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

40

Wialon Combine

Re: Wialon Combine

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

Viktor Yarovenko
Business Analyst
Wialon
41

Wialon Combine

Re: Wialon Combine

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

42

Wialon Combine

(15/12/2020 14:16:01 отредактировано alfinikov)

Re: Wialon Combine

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

  • Wialon Combine
43

Wialon Combine

Re: Wialon Combine

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

Viktor Yarovenko
Business Analyst
Wialon
44

Wialon Combine

(27/01/2021 11:37:48 отредактировано kalaschnikow)

Re: Wialon Combine

Один из моих клиентов захотел использовать протокол Wialon Combine с моим трекером и поэтому у меня возник следующий вопрос: существует ли возможность получить реализацию протокола (клиентской части) в виде библиотеки или даже исходников(!) на Яве?

45

Wialon Combine

Re: Wialon Combine

kalaschnikow у Gurtam таких нет, мы не разрабатываем ПО для трекеров.
Но если в процессе внедрения у вас возникнут сложности мы готовы ответить на любые вопросы и посодействовать в тестировании.

Viktor Yarovenko
Business Analyst
Wialon
46

Wialon Combine

Re: Wialon Combine

yavi пишет:

kalaschnikow у Gurtam таких нет, мы не разрабатываем ПО для трекеров.

Ну, не совсем так. WiaTag это трекер. И если я не ошибаюсь, он как раз использует Wialon Combine.

yavi пишет:

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

Спасибо, Виктор. Обязательно воспользуюсь вашим предложением, если возникнет необходимость.

47

Wialon Combine

Re: Wialon Combine

kalaschnikow Хорошо. Любые вопросы по протоколу можно задавать на hw@gurtam.com

P.S. wiatag все же не совсем трекер, а приложение. Но замечание уместное.
В wiatag используется уникальный протокол, не похожий на combine, и разработанный для использования только в своих приложениях.

Viktor Yarovenko
Business Analyst
Wialon
48

Wialon Combine

Re: Wialon Combine

А можете подсказать а в какой кодировке записывать данные? Например имей как записывается не могу понять

Дмитрий, +7 983 250 2097, https://trekberry.ru
urbannova(собака)yandex.ru
YOUTUBE канал, где много всего полезного https://www.youtube.com/channel/UCTYLLm … CKb2GYq0eA
Teltonika. GalileoSky, ADM, Mielta, GPSMatker, Starline, и другие которые вообще могут хоть как то работать
49

Wialon Combine

Re: Wialon Combine

dennica пишет:

А можете подсказать а в какой кодировке записывать данные? Например имей как записывается не могу понять

Если под IMEI вы подразумеваете, что он будет передавать в качестве поля ID, то тут 2 варианта.
По протоколу необходимо задать тип данных и значение.

1) Обычно IMEI это просто набор цифр. Тогда выбираете числовой тип данных (15 значный imei влезет в 8 байт, unsigned long)
2) Если вам все же надо передавать не только цифры, а некие буквы, то выбираете тип данных string и передаете ID как текст в ASCII кодировке.

Viktor Yarovenko
Business Analyst
Wialon