Подписаться

Протоколы RUT955

RUT955 ПРОТОКОЛ ДАННЫХ GPS
Массив данных AVL


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

 
Codec ID Number of Data Data Number of Data
1 Byte 1 Byte ... 1 byte

Количество данных - количество закодированных данных (количество записей). В кодексе RUT955 код 08

Данные


 
AVL Data ... AVL Data

AVL data – закодированный элемент данных.

AVL Data


 
Timestamp Priority GPS Element IO Element
8 Bytes 1 Byte 15 Bytes ...

Timestamp – разница в миллисекундах между текущим временем и полуночью 1 января 1970 года по Гринвичу.

Приоритет


 
0 low
1 High
2 Panic
3 Security

GPS Элемент


 
Долгота Широта Высота Угол Спутники Скорость
4 Bytes 4 Bytes 2 Bytes 2 Bytes 1 Byte 2 Bytes
X            Долгота
Y            Широта
Altitude     В метрах над уровнем моря
Angle	      В градусах 0 - север, увеличиваясь по часовой стрелке
Satellites   Количество видимых спутников
Speed	      В км / ч 0x0000, если данные GPS недействительны

Долгота и широта - это целые значения, построенные из градусов, минут, секунд и миллисекунд по формуле:

Gps element formula.PNG

d	      Градусы
m	      Минуты
s 	      Секунды
ms	      Миллисекунды
p 	      Точность(10000000)

Если долгота на западе или широта на юге, умножьте результат на –1. Чтобы определить, является ли координата отрицательной, преобразуйте ее в двоичный формат и проверьте самый первый бит. Если это 0, координата положительна, если это 1, координата отрицательна. Пример:

Полученное значение: 20 9c ок. 80

Преобразовано в BIN: 00100000 10011100 11001010 Первый бит 10000000 равен 0, что означает положительную координату

Передан в DEC: 547146368

Для получения дополнительной информации см. Комплиментартная арифметика.

I/O Элемент


 
I/O элементы (отсылаются на сервер только если включены)
 ID параметра Имя параметра Байты IO элемент
1 Статус цифрового входа 1 1 логический: 0/1
2 Статус цифрового входа 2 1 логический: 0/1
9 Аналоговый вход 1 2 напряжение: mV, 0 - 30 V
21 GSM уровень 1 уровень gsm сигнала в пределах 1 - 5

Пример


полученные данные: 
08040000015C1A473FC0000E3BD4A520B53DC300570167070000000403020101001504010
9158500000000015C1A475348000E3BD4AE20B53DC0005701670800000004030201010015
040109158500000000015C1A4766D0000E3BD4AE20B53DBF0057016708000000040302010
10015040109158500000000015C1A477A58000E3BD4B120B53DBD00570167080000000403
02010100150401091585000004
08 – Codec ID
           04 - Number of Data (4 records)
                       1st record data
                           0000015C1A473FC0 – Timestamp in milliseconds (1495089496000 → 1495089496,000 in Unix Timestamp = 18 May 2017 06:38:16 UTC)
                           00 – Priority
                           GPS Element
                           0E3BD4A5 – Longitude 23.8802085 = 23.8802085 º N
                           20B53DC3 – Latitude 54.8748739 = 54.8748739 º E
                           0057 – Altitude 87 meters
                           0167 – Angle 359º
                           07 – 7 Visible satellites
                           0000 – 0 km/h speed
                           I/O Element
                           00 – IO element ID of Event generated (in this case when 00 – data generated not on event)
                           04 – 4 IO elements in record
                           03 – 3 IO elements, which length is 1 Byte
                           02 – IO element ID = 02
                           01 – 2’nd IO element’s value = 1
                           01 – IO element ID = 01
                           00 – 1’st IO element’s value = 0 
                           15 – IO element ID = 21
                           04 – 21’nd IO element’s value = 4
                           01 – 1 IO element, which value length is 2 Bytes
                           09 – 1 IO element ID = 09
                           1585 – 9’th IO element’s value = 5509
                           00 – 0 IO elements, which value length is 4 Bytes
                           00 – 0 IO elements, which value length is 8 Bytes
                           2’nd запись данных
0000015C1A475348000E3BD4AE20B53DC000570167080000000403020101001504010915850000
                           3’d запись данных
0000015C1A4766D0000E3BD4AE20B53DBF00570167080000000403020101001504010915850000
                           4’th запись данных
0000015C1A477A58000E3BD4B120B53DBD00570167080000000403020101001504010915850000
           04 – Number of Data (4 records)

Отправка данных по TCP / IP
Пакет данных AVL
Пакет AVL используется для инкапсуляции данных AVL и отправки их на сервер.

 
Four zeros Data length Data CRC
Four zeros	 4 нулевых байта (0x00)
Data length	 Количество байт (Integer)
Data		 Любая дата в AVL диапазоне
CRC		 16-битное значение CRC данных (целое число). Полином 0xA001.

Связь с сервером


First when module connects to server, module sends its IMEI. IMEI is sent the same way as encoding

штрих-код. Сначала идет короткое определение количества записанных байтов, а затем идет IMEI как текст (байты).

Например, IMEI 123456789012345 будет отправлен как 000F313233343536373839303132333435.

После получения IMEI сервер должен определить, будет ли он принимать данные из этого модуля. Если да, сервер ответит на модуль 01, если не 00. Обратите внимание, что подтверждение должно быть отправлено в виде двоичного пакета.

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

Если номер отправленных данных и сообщенный сервером не совпадают, модуль повторно отправляет отправленные данные.

Пример:

Модуль подключается к серверу и отправляет IMEI:

000F313233343536373839303132333435

Сервер принимает модуль:

01

Модуль отправляет пакет данных:

 
Заголовок пакета данных AVL Массив данных AVL CRC
Четыре нулевых байта, длина массива данных AVL - 254 CodecId - 08, NumberOfData - 2. (Кодируется с использованием непрерывного потока битов. Последний байт дополняется для выравнивания по границе байта) CRC из "массива данных AVL"
00000000000000FE 0802...(элементы данных)...02 00008612

Сервер подтверждает прием данных (2 элемента данных): 00000002

ОТПРАВКА ДАННЫХ НА UDP / IP

Протокол канала UDP


Канал UDP - это протокол транспортного уровня над UDP / IP для повышения надежности простого UDP / IP с использованием пакетов подтверждения. Структура пакета выглядит следующим образом:

 
UDP датаграмма
Пакет канала UDP x N
Длина пакета 2 bytes Длина пакета (исключая это поле) в порядке байтов с прямым порядком байтов
Id пакета 2 bytes Идентификатор пакета, уникальный для этого канала
Тип пакета 1 byte Тип этого пакета
Пакет полезной нагрузки m bytes Пакет полезной нагрузки
 
Тип пакета
1 Пакет данных, требующий подтверждения

Пакет подтверждения должен иметь тот же идентификатор пакета, что и подтвержденный пакет данных, и пустые данные. Подтверждение должно быть отправлено в двоичном формате.

 
Пакет подтверждения
Длина пакета 2 байта 0x0003
id пакета 2 Байта Так же, как в подтвержденном пакете
Тип пакета 1 байт 0x01

Отправка данных AVL по каналу UDP


Данные AVL отправляются инкапсулированными в пакеты канала UDP (поле данных).

 
Данные AVL, инкапсулированные в пакет канала UDP
AVL  id (1 byte) Module IMEI AVL data array
AVL packet id (1 byte)    идентификатор, идентифицирующий этот пакет AVL
Module IMEI               IMEI отправляющего модуля закодирован так же, как с TCP
AVL data array            массив кодированных данных AVL
 
Ответ сервера на пакет данных AVL
AVL packet id (1 byte) Number of accepted AVL elements (1 byte)
AVL packet id (1 byte) – идентификатор полученного пакета данных AVL

Number of AVL data elements accepted (1 byte) – количество записей массива данных AVL от начала массива, которые были приняты сервером.

Сценарий:

Модуль отправляет пакет канала UDP с инкапсулированным пакетом данных AVL (Тип пакета = 1).

Сервер отправляет пакет канала UDP с инкапсулированным ответом (Тип пакета = 1).

Модуль проверяет идентификатор пакета AVL и количество принятых элементов AVL. Если ответ сервера с действительным идентификатором пакета AVL не получен в течение установленного времени ожидания, модуль может повторить отправку.

Пример:

Модуль отправляет данные:

 
Заголовок канала UDP Заголовок пакета AVL Массив данных AVL
Len – 253,

Id – 0xCAFE,

Packet type – 01

AVL packet id – 0xDD,

IMEI – 1234567890123456

CodecId – 08,

NumberOfData – 2. (Кодируется с использованием непрерывного потока битов)

00FDCAFE01 DD000F3133343536373839303132333435 0802…(data elements)…02

Сервер должен ответить с подтверждением:

 
Заголовок канала UDP Подтверждение пакета AVL
Len – 5,

Id – 0xCAFE,

Packet type – 01

AVL packet id – 0xDD,

NumberOfAcceptedData – 2

0005CAFE01 DD02

0 Комментарии

Войдите в службу, чтобы оставить комментарий.
На базе технологии Zendesk