Гео-отслеживание

1. Способы отслеживания

Движение транспорта можно отслеживать двумя способами:

  • через мобильное приложение водителя;
  • с помощью датчиков мониторинга (ГЛОНАСС/GPS), установленных на транспорте.

Оба способа:

  • передают на карту данные о местоположении;
  • фиксируют прибытие в точки погрузки/разгрузки;
  • отмечают, выполнено действие вовремя или с опозданием.

2. Мобильное приложение

Особенности

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

Подробнее о функциональности мобильного приложения


3. Датчики мониторинга

Особенности

  • датчики ГЛОНАСС/GPS устанавливаются на транспорт поставщиками специализированных услуг;
  • поставщик ретранслирует данные в "Магистрали" - на платформе появляются сведения о движении транспорта.

Подробнее о настройке ретрансляции данных


4. Интерфейс и данные гео-отслеживания

В столбце "гео-отслеживание" вкладки "В рейсе" доступны:

  • кнопка перехода в детализацию - при нажатии открывается карта с гео-отслеживанием;
  • квадраты статуса посещения точки - с указанием источника отслеживания (тягач, фургон, полуприцеп, мобильное приложение). Если источников несколько - отображаются все.

При наведении курсора на квадрат статуса отображаются:

  • адрес точки прибытия (погрузка/разгрузка);
  • статус посещения точки;
  • время прибытия/убытия из геозоны.

При клике на квадрат статуса открывается детализация, где видны все въезды и выезды в геозону точки.

Цвета квадратов статуса:

  • зелёный - прибыл вовремя;
  • красный - опоздал;
  • серый - статус неизвестен (до начала рейса или при разрыве связи).

5. Карта и детализация гео-отслеживания

При нажатии кнопки перехода в детализацию открывается карта, на которой:

  • показан подробный маршрут движения транспорта;
  • отмечены точки погрузки/разгрузки.

На карте можно:

  • посмотреть, в какое время транспорт находился в конкретной точке;
  • кликнуть на точку - увидеть координаты и время присутствия, скопировать координаты.

Левая часть окна детализации:

  • номер открытого рейса;
  • детализация посещения точек:
    • список точек погрузки/разгрузки (по времени от ранней к поздней);
    • текущий статус посещения точки («посещено вовремя», «посещено с опозданием», «не начато/статус неизвестен»);
    • плановое и фактическое время посещения (источник: водитель, прицеп, машина).

Правая часть окна детализации (вверху):

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

Дополнительные элементы:

  • значок - открывает детализацию по водителю и транспорту, переход к текущей точке местоположения;
  • правый нижний угол - информация по источникам данных отслеживания, переход к последней точке присутствия, копирование координат.

6. Статусы рейса и груза

Статус рейса (общий для всего рейса):

  • «Не начат» - по грузам нет статусов, работа не начата;
  • «В пути» - по одному из грузов проставлен статус;
  • «Завершён» - по всем грузам проставлен завершающий статус;
  • «Отменён до начала» - рейс отменён до исполнения;
  • «Отказ» - рейс начат, но заказ отменён исполнителем/заказчиком.

Статус груза в рейсе:

  • каждый груз имеет уникальный статус;
  • при проставлении статуса исполнителем меняется текущий статус груза;
  • чтобы посмотреть статус груза:
    • раскройте детализацию груза в таблице;
    • в столбце «Статус груза рейса» будет виден статус по каждому грузу;
    • в свёрнутом виде в этом столбце отображаются все уникальные статусы, актуальные на текущий момент.

7. Настройка передачи телеметрических данных через ретрансляцию

Для того, чтобы платформа начала получать данные о местоположении транспортных средств:

  1. Обратитесь к оператору вашей системы мониторинга с запросом на настройку ретрансляции данных на адрес платформы и передайте ему следующие параметры:
Параметр Значение
Адрес 84.201.147.74
Порт 3062
Протоколы Wialon IPS (v1.1; v2.0), Wialon Retranslator, EGTS

Примечание

Подробные спецификации протоколов приведены в соответствующих разделах ниже.

  1. После настройки ретрансляции со стороны оператора впишите IMEI-номера устройств (ID) в карточки транспортных средств.
Как внести IMEI в карточку ТС?
  1. Кликните на раздел «Моя организация» в левом меню, затем на раздел «Транспорт»
  2. Найдите нужное транспортное средство и нажмите на кнопку редактирования, либо создайте новое по кнопке «Создать», если его еще нет в справочнике.
  3. В открывшемся окне укажите информацию о ТС и в поле «IMEI» введите IMEI-номер GPS-устройства, установленного на данном ТС.
  4. Обязательно сохраните изменения.
  1. В течение часа при правильных настройках на платформу прогрузятся данные по местоположению.
Как проверить, получает ли платформа данные после настройки?
  1. Перейдите в справочник Транспорта.
  2. Нажмите на регистрационный номер ТС, для которой настроена ретрансляция (первый столбец таблицы).
  3. Откроется карта. Если платформа получает данные по местоположению данного ТС, на карте будет отображена геометка машины. Данные появляются на карте в течение часа после настройки ретрансляции и внесения IMEI-номера (ID).

Если после настройки данные не появились на платформе, обратитесь к нам в поддержку. В обращении укажите IMEI-номера устройств и приложите логи отправки данных — их можно запросить у вашего оператора.

Важно

Если IMEI-номер (ID) был внесён после назначения ТС на рейс, геоданные в уже существующие рейсы не прогрузятся — только в новые.

Чтобы отслеживание появилось в текущем рейсе, переназначьте ТС: откройте рейс, перевыберите транспортное средство и сохраните.


7.1 Описание протокола Wialon IPS v1.1

Все пакеты передаются в текстовом формате.

Структура пакета

Каждый пакет имеет следующий формат:

#TP#msg\r\n
Элемент Описание
# Стартовый байт
TP Тип пакета (см. таблицу типов)
# Разделитель
msg Содержимое сообщения
\r\n Концевик пакета

Типы пакетов

Тип Описание Отправитель
L Пакет логина Оборудование
AL Ответ на пакет логина Сервер
D Пакет с данными Оборудование
AD Ответ на пакет с данными Сервер
P Пинговый пакет Оборудование
AP Ответ на пинговый пакет Сервер
SD Сокращённый пакет с данными Оборудование
ASD Ответ на сокращённый пакет Сервер

Описание пакетов

Пакет логина (L)

#L#imei;password\r\n
Поле Описание
imei Уникальный ID контроллера: IMEI или серийный номер
; Разделитель
password Пароль устройства; если отсутствует — передаётся NA

Ответы сервера (AL):

Код Значение
1 Авторизация прошла успешно
0 Сервер отверг подключение
01 Ошибка проверки пароля

Примеры:

#AL#1\r\n
#AL#0\r\n

Сокращённый пакет с данными (SD)

#SD#date;time;lat1;lat2;lon1;lon2;speed;course;height;sats\r\n
Поле Описание
date Дата в формате DDMMYY, UTC; если отсутствует — NA
time Время в формате HHMMSS, UTC; если отсутствует — NA
lat1;lat2 Широта, например 5544.6025;N; если отсутствует — NA;NA
lon1;lon2 Долгота, например 03739.6834;E; если отсутствует — NA;NA
speed Скорость, км/ч, целое число; если отсутствует — NA
course Курс, градусы, целое число; если отсутствует — NA
height Высота, метры, целое число; если отсутствует — NA
sats Количество спутников, целое число; если отсутствует — NA

Если date и time содержат NA — используется текущее время сервера.

Ответы сервера (ASD):

Код Значение
1 Пакет успешно зафиксирован
-1 Ошибка структуры пакета
0 Некорректное время
10 Ошибка получения координат
11 Ошибка получения скорости, курса или высоты
12 Ошибка получения количества спутников

Примеры:

#ASD#1\r\n
#ASD#0\r\n
#ASD#10\r\n

Полный пакет с данными (D)

#D#date;time;lat1;lat2;lon1;lon2;speed;course;height;sats;hdop;inputs;outputs;adc;ibutton;params\r\n
Поле Описание
date Дата в формате DDMMYY, UTC; если отсутствует — NA
time Время в формате HHMMSS, UTC; если отсутствует — NA
lat1;lat2 Широта, например 5544.6025;N; если отсутствует — NA;NA
lon1;lon2 Долгота, например 03739.6834;E; если отсутствует — NA;NA
speed Скорость, км/ч, целое число; если отсутствует — NA
course Курс, градусы, целое число; если отсутствует — NA
height Высота, метры, целое число; если отсутствует — NA
sats Количество спутников, целое число; если отсутствует — NA
hdop Снижение точности (HDOP), дробное число; если отсутствует — NA
inputs Цифровые входы: каждый бит числа соответствует одному входу (с младшего); если отсутствует — NA
outputs Цифровые выходы: каждый бит числа соответствует одному выходу (с младшего); если отсутствует — NA
adc Аналоговые входы, дробные числа через запятую (нумерация с 1); пустая строка, если аналоговых входов нет. Пример: 14.77,0.02,3.6
ibutton Код ключа водителя (iButton); если ключ отсутствует — NA
params Дополнительные параметры через запятую в формате NAME:TYPE:VALUE (см. ниже)

Формат дополнительных параметров (params)

Каждый параметр имеет формат NAME:TYPE:VALUE:

Поле Описание
NAME Имя параметра, строка до 15 байт
TYPE Тип: 1 — int, 2 — double, 3 — string
VALUE Значение в соответствии с типом

Зарезервированные параметры:

  • SOS:1:1 — нажатие тревожной кнопки (тип int, значение 1)
  • text:3:<сообщение> — текстовое сообщение от водителя

Примеры:

count1:1:564,fuel:2:45.8,hw:3:V4.5
SOS:1:1

Ответы сервера (AD):

Код Значение
1 Пакет успешно зафиксирован
-1 Ошибка структуры пакета
0 Некорректное время
10 Ошибка получения координат
11 Ошибка получения скорости, курса или высоты
12 Ошибка получения количества спутников или HDOP
13 Ошибка получения inputs или outputs
14 Ошибка получения ADC
15 Ошибка получения дополнительных параметров

Примеры:

#AD#1\r\n
#AD#0\r\n
#AD#10\r\n
#AD#11\r\n

Пинговый пакет (P)

#P#\r\n

Служит для поддержания активного TCP-соединения и проверки работоспособности канала.

Ответ сервера (AP):

#AP#\r\n

7.2 Описание протокола Wialon IPS v2.0

Все пакеты передаются в текстовом формате.

Структура пакета

Каждый пакет имеет следующий формат:

#TP#msg\r\n
Поле Описание
# Стартовый байт
TP Тип пакета (см. таблицу типов)
# Разделитель
msg Непосредственно сообщение
\r\n Концевик пакета

Типы пакетов

Тип Описание Кто отправляет
L Пакет логина Оборудование
AL Ответ на пакет логина Сервер
D Пакет с данными Оборудование
AD Ответ на пакет с данными Сервер
P Пинговый пакет Оборудование
AP Ответ на пинговый пакет Сервер
SD Сокращённый пакет с данными Оборудование
ASD Ответ на сокращённый пакет Сервер

Описание пакетов

L — Пакет логина

Отправляется оборудованием при установке соединения с сервером.

#L#protocol_version;imei;password;crc16\r\n

Пример:

#L#2.0;imei;N/A;BB2B\r\n
Поле Описание
protocol_version Версия протокола. Должна содержать значение 2.0
imei Уникальный ID контроллера, IMEI или серийный номер
password Пароль для доступа к устройству. Если отсутствует — передаётся NA
crc16 Контрольная сумма (см. Вычисление CRC16 ниже)

Ответ сервера (AL):

Код Описание
1 Авторизация прошла успешно
0 Сервер отверг подключение
01 Ошибка проверки пароля
10 Ошибка проверки контрольной суммы
#AL#1\r\n
#AL#0\r\n

SD — Сокращённый пакет с данными

#SD#date;time;lat1;lat2;lon1;lon2;speed;course;height;sats;crc16\r\n
Поле Описание
date Дата в формате DDMMYY, UTC. Если отсутствует — NA
time Время в формате HHMMSS, UTC. Если отсутствует — NA
lat1;lat2 Широта, например 5544.6025;N. Если отсутствует — NA;NA
lon1;lon2 Долгота, например 03739.6834;E. Если отсутствует — NA;NA
speed Скорость, целое число, км/ч. Если отсутствует — NA
course Курс, целое число, градусы. Если отсутствует — NA
height Высота, целое число, метры. Если отсутствует — NA
sats Количество спутников, целое число. Если отсутствует — NA
crc16 Контрольная сумма (см. Вычисление CRC16 ниже)

Если поля date и time содержат значение NA — берётся текущее время сервера.

Ответ сервера (ASD):

Код Описание
-1 Ошибка структуры пакета
0 Некорректное время
1 Пакет успешно зафиксирован
10 Ошибка получения координат
11 Ошибка получения скорости, курса или высоты
12 Ошибка получения количества спутников
13 Ошибка проверки контрольной суммы
#ASD#1\r\n
#ASD#0\r\n
#ASD#10\r\n

D — Пакет с данными

#D#date;time;lat1;lat2;lon1;lon2;speed;course;height;sats;hdop;inputs;outputs;adc;ibutton;params;crc16\r\n
Поле Описание
date Дата в формате DDMMYY, UTC. Если отсутствует — NA
time Время в формате HHMMSS, UTC. Если отсутствует — NA
lat1;lat2 Широта, например 5544.6025;N. Если отсутствует — NA;NA
lon1;lon2 Долгота, например 03739.6834;E. Если отсутствует — NA;NA
speed Скорость, целое число, км/ч. Если отсутствует — NA
course Курс, целое число, градусы. Если отсутствует — NA
height Высота, целое число, метры. Если отсутствует — NA
sats Количество спутников, целое число. Если отсутствует — NA
hdop Снижение точности (HDOP), дробное число. Если отсутствует — NA
inputs Цифровые входы. Каждый бит числа соответствует одному входу, начиная с младшего. Целое число. Если отсутствует — NA
outputs Цифровые выходы. Каждый бит числа соответствует одному выходу, начиная с младшего. Целое число. Если отсутствует — NA
adc Аналоговые входы — дробные числа через запятую. Нумерация с единицы. Если нет — пустая строка. Пример: 14.77,0.02,3.6
ibutton Код ключа водителя, строка произвольной длины. Если отсутствует — NA
params Дополнительные параметры через запятую в формате NAME:TYPE:VALUE (см. ниже)
crc16 Контрольная сумма (см. Вычисление CRC16 ниже)

Формат поля params:

Каждый параметр имеет вид NAME:TYPE:VALUE, где:

Поле Описание
NAME Произвольная строка, не более 15 байт
TYPE Тип: 1 — int/long long, 2 — double, 3 — string
VALUE Значение в зависимости от типа

Специальные параметры:

  • Тревожная кнопка SOS: параметр типа 1 с именем SOS, значение 1 означает нажатие.
  • Текстовое сообщение от водителя: параметр типа 3 с именем text.

Примеры params:

count1:1:564,fuel:2:45.8,hw:3:V4.5
SOS:1:1

Если поля date и time содержат значение NA — берётся текущее время сервера.

Ответ сервера (AD):

Код Описание
-1 Ошибка структуры пакета
0 Некорректное время
1 Пакет успешно зафиксирован
10 Ошибка получения координат
11 Ошибка получения скорости, курса или высоты
12 Ошибка получения количества спутников или HDOP
13 Ошибка получения inputs или outputs
14 Ошибка получения adc
15 Ошибка получения дополнительных параметров
16 Ошибка проверки контрольной суммы
#AD#1\r\n
#AD#0\r\n
#AD#10\r\n

P — Пинговый пакет

Служит для поддержания активного TCP-соединения с сервером, а также для проверки работоспособности канала.

#P#\r\n

Ответ сервера (AP):

#AP#\r\n

Вычисление CRC16

Поле crc16 содержит контрольную сумму в шестнадцатеричном формате, big-endian, без ведущих нулей.

Пример: AA13BB (десятичное: 11146171)

Что входит в расчёт

Тип пакета Данные для расчёта CRC16
L, SD, D, B, M Часть пакета между #TP# и полем crc16
I, US, UC, T Поле BIN

Пример для #SD#:

#SD#date;time;lat1;lat2;lon1;lon2;speed;course;height;sats;crc16\r\n

CRC16 рассчитывается для:

date;time;lat1;lat2;lon1;lon2;speed;course;height;sats;

7.3 Описание протокола Wialon Retranslator v1.0

Все данные передаются в бинарном формате по протоколу TCP.

Входящие данные

Cтруктура пакета

Каждый входящий пакет имеет следующую структуру:

Размер (байт) Тип поля Описание
4 Integer Размер пакета
- Text Идентификатор контроллера (IMEI или серийный номер). Размер не фиксирован. Конец строки — байт 0x00
4 Integer Время в секундах (UTC)
4 Integer Битовые флаги сообщения (см. таблицу флагов)
- - Набор блоков данных в пакете. Следуют последовательно

Битовые флаги сообщения

Флаг Описание
0×1 Информация о местоположении
0×2 Информация о цифровых входах
0×4 Информация о цифровых выходах
0×10 Бит тревоги (alert)
0×20 Информация об идентификаторе водителя

Остальные биты зарезервированы или предназначены для внутреннего использования Wialon.


Структура блока данных

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

Размер (байт) Тип поля Описание
2 Integer Тип блока
4 Integer Размер блока
1 Integer Атрибут безопасности: 1 — параметр скрыт, 0 — параметр отображается
1 Integer Тип данных блока (см. таблицу типов)
- Text Имя блока (строка, конец — байт 0x00)
- - Значение блока

Типы данных блока

Код Описание
0x1 Текст (string)
0x2 Бинарные данные
0x3 Целое число (int, 4 байта)
0x4 Дробное число (double)
0x5 Целое число (long, 8 байт)

Стандартные имена блоков

Имя блока Описание
posinfo Блок с координатами (бинарный, см. структуру ниже)
pwr_ext Напряжение питания
avl_inputs Значение цифровых входов
avl_outputs Значение цифровых выходов
adc1, adc2, ... Значения аналоговых датчиков
gsm Уровень GSM-сигнала
ign Зажигание
can1, can2, ... Значения с CAN-шины

Если значения первых трёх параметров блока posinfo (lon, lat, altitude) отсутствуют — весь блок не включается в пакет.


Структура блока posinfo

Блок posinfo передаётся в бинарном формате как значение поля «Block value»:

Размер (байт) Тип поля Описание
8 Fractional (double) lon — долгота
8 Fractional (double) lat — широта
8 Fractional (double) altitude — высота
2 Integer speed — скорость
2 Integer course — курс
1 Integer sats — количество спутников

Исходящие данные

После приёма каждого входящего пакета оборудование должно отправить на сервер байт подтверждения 0x11.


Пример разбора пакета

Исходный пакет (HEX)

74000000333533393736303133343435343835004B0BFB70000000030BBB00000027
0102706F73696E666F00A027AFDF5D9848403AC7253383DD4B400000000000805A40
003601460B0BBB000000120004707772 5F657874002B8716D9CE973B400BBB000000
11010361766C5F696E707574730000000001

Разбор заголовка

Поле HEX Расшифровка
74000000 Размер пакета: 116 байт
33353339373630313334343534383500 Идентификатор контроллера: 353976013445485
4B0BFB70 Время UTC: 1259076464 → 2009/11/24 17:27:44
00000003 Флаги: 3 (местоположение + цифровые входы)

Блок 1 — posinfo

Поле HEX Расшифровка
0BBB Тип блока: 3003
00000027 Размер блока: 39 байт
01 Атрибут безопасности: скрыт
02 Тип данных: бинарный
706F73696E666F00 Имя блока: posinfo
A027AFDF5D984840 Долгота: 49.1903648
3AC7253383DD4B40 Широта: 55.7305664
0000000000805A40 Высота: 106.0
0036 Скорость: 54
0146 Курс: 326
0B Количество спутников: 11

Блок 2 — pwr_ext

Поле HEX Расшифровка
0BBB Тип блока: 3003
00000012 Размер блока: 18 байт
00 Атрибут безопасности: отображается
04 Тип данных: дробное число (double)
7077725F65787400 Имя блока: pwr_ext
2B8716D9CE973B40 Значение: 27.593 В

Блок 3 — avl_inputs

Поле HEX Расшифровка
0BBB Тип блока: 3003
00000011 Размер блока: 17 байт
01 Атрибут безопасности: скрыт
03 Тип данных: целое число (int)
61766C5F696E70757473 00 Имя блока: avl_inputs
00000001 Значение: 1

7.4 Описание протокола EGTS

Общие принципы

  • Все числовые типы (USHORT, UINT, ULONG, FLOAT, DOUBLE) передаются в порядке little-endian (младший байт вперед).
  • Строки (STRING) — в кодировке CP-1251, оканчиваются байтом 0x00.
  • Тип BINARY — массив байт без фиксированной длины.
  • Поля помечены как M (Mandatory — обязательное) или O (Optional — необязательное).
  • Контрольная сумма заголовка — CRC-8, тела пакета — CRC-16 CCITT.

Используемые типы данных

Тип Размер (байт) Диапазон значений
BOOLEAN 1 TRUE (1) / FALSE (0)
BYTE 1 0...255
USHORT 2 0...65535
UINT 4 0...4 294 967 295
ULONG 8 0...18 446 744 073 709 551 615
SHORT 2 −32 768...32 767
INT 4 −2 147 483 648...2 147 483 647
FLOAT 4 −1.2E-38...3.4E+38
DOUBLE 8 −2.2E-308...1.7E+308
STRING переменный Строка CP-1251, конец — байт 0x00
BINARY переменный Массив байт

Структура пакета транспортного уровня

Каждый пакет состоит из заголовка и опциональной области данных (SFRD).

Поле Аббр. Обяз. Тип Размер (байт) Описание
Версия протокола PRV M BYTE 1 Версия протокола. Значение: 0x01
Идентификатор ключа SKID M BYTE 1 Идентификатор ключа шифрования
Флаги PRF/RTE/ENA/CMP/PR M BYTE 1 Флаги (битовое поле, см. ниже)
Длина заголовка HL M BYTE 1 Длина заголовка до поля HCS включительно
Кодировка заголовка HE M BYTE 1 Способ кодирования заголовка
Длина данных FDL M USHORT 2 Длина поля SFRD в байтах
Идентификатор пакета PID M USHORT 2 Уникальный номер пакета. Начинается с 1, при достижении 65535 обнуляется
Тип пакета PT M BYTE 1 Тип пакета (см. таблицу типов)
Адрес отправителя PRA O USHORT 2 Используется только при маршрутизации (RTE=1)
Адрес получателя RCA O USHORT 2 Используется только при маршрутизации (RTE=1)
Время жизни TTL O BYTE 1 Максимальное число узлов маршрутизации. При TTL=0 пакет уничтожается
Контрольная сумма заголовка HCS M BYTE 1 CRC-8 от PRV до TTL
Область данных SFRD O BINARY 0...65517 Данные сервисов
Контрольная сумма данных SFRCS O USHORT 0 или 2 CRC-16 от SFRD; присутствует только если SFRD не пустое

Битовые флаги заголовка (PRF-байт)

Биты Флаг Описание
7–6 PRF Префикс. Всегда 00
5 RTE Route — маршрутизация. При 1 в заголовке присутствуют PRA, RCA, TTL
4–3 ENA Encryption Algorithm — алгоритм шифрования SFRD. 00 — нет шифрования
2 CMP Compressed — признак сжатия SFRD
1–0 PR Priority — приоритет: 00 — наивысший, 01 — высокий, 10 — средний, 11 — низший

Типы пакетов (PT)

Код Тип Описание
0 EGTS_PT_RESPONSE Ответ на пакет
1 EGTS_PT_APPDATA Пакет с данными приложения
2 EGTS_PT_SIGNED_APPDATA Пакет с подписанными данными приложения

Структура области данных (SFRD)

EGTS_PT_APPDATA

SFRD для пакетов типа EGTS_PT_APPDATA содержит один или несколько записей сервисного уровня (SDR):

Поле Размер (байт) Описание
SDR 1 9...65517 Запись сервисного уровня №1
SDR 2 9...65517 Запись сервисного уровня №2
... ... ...
SDR n 9...65517 Запись сервисного уровня №n

EGTS_PT_RESPONSE

SFRD для ответных пакетов содержит:

Поле Аббр. Обяз. Тип Размер (байт) Описание
ID пакета-источника RPID M USHORT 2 PID пакета, на который формируется ответ
Результат обработки PR M BYTE 1 Код результата (см. таблицу кодов ответа)
SDR 1...n — O BINARY 9...65517 Записи сервисного уровня (опционально)

EGTS_PT_SIGNED_APPDATA

Поле Аббр. Обяз. Тип Размер (байт) Описание
Длина подписи SIGL M SHORT 2 Длина поля SIGD
Данные подписи SIGD O BINARY 0...512 Цифровая подпись
SDR 1...n — O BINARY 9...65515 Записи сервисного уровня

Структура записи сервисного уровня (SDR)

Каждая запись (SDR) имеет фиксированный заголовок и поле данных:

Поле Аббр. Обяз. Тип Размер (байт) Описание
Длина записи RL M USHORT 2 Длина поля RD в байтах
Номер записи RN M USHORT 2 Уникальный номер. Начинается с 0, при 65535 обнуляется
Флаги записи RFL M BYTE 1 Битовые флаги (SSOD, RSOD, GRP, RPP, TMFE, EVFE, OBFE)
ID объекта OID O UINT 4 Идентификатор объекта (при OBFE=1)
ID события EVID O UINT 4 Идентификатор события (при EVFE=1)
Время TM O UINT 4 Время UTC (при TMFE=1); отсчёт от 00:00:00 01.01.2010
Тип исходного сервиса SST M BYTE 1 Тип сервиса-отправителя
Тип сервиса-получателя RST M BYTE 1 Тип сервиса-получателя
Данные записи RD M BINARY 3...65498 Набор подзаписей

Флаги записи (RFL)

Флаг Описание
SSOD Source Service On Device: 1 — исходный сервис на устройстве
RSOD Recipient Service On Device: 1 — сервис-получатель на устройстве
GRP Group: 1 — запись адресована группе (OID = ID группы)
RPP Record Processing Priority: 00 — наивысший, 01 — высокий, 10 — средний, 11 — низший
TMFE Time Field Exists: 1 — поле TM присутствует
EVFE Event ID Field Exists: 1 — поле EVID присутствует
OBFE Object ID Field Exists: 1 — поле OID присутствует

Структура подзаписи (Subrecord)

Поле Аббр. Обяз. Тип Размер (байт) Описание
Тип подзаписи SRT M BYTE 1 Тип подзаписи (0 — зарезервирован)
Длина подзаписи SRL M USHORT 2 Длина поля SRD
Данные подзаписи SRD O BINARY 0...65495 Данные

Сервисы протокола

Перечень сервисов

Тип Название Описание
EGTS_AUTH_SERVICE Сервис авторизации Идентификация и аутентификация терминала
EGTS_TELEDATA_SERVICE Телематический сервис Передача навигационных и телеметрических данных
EGTS_COMMANDS_SERVICE Сервис команд Управление терминалом по GPRS
EGTS_FIRMWARE_SERVICE Сервис прошивки Обновление ПО терминала
EGTS_ECALL_SERVICE Сервис экстренного вызова Поддержка ЭРА-ГЛОНАСС

EGTS_AUTH_SERVICE — Сервис авторизации

Типы подзаписей

Код Название Описание
1 EGTS_SR_TERM_IDENTITY Идентификация терминала
2 EGTS_SR_MODULE_DATA Данные о модуле
3 EGTS_SR_VEHICLE_DATA Данные о транспортном средстве
5 EGTS_SR_DISPATCHER_IDENTITY Идентификация диспетчера
6 EGTS_SR_AUTH_PARAMS Параметры аутентификации
7 EGTS_SR_AUTH_INFO Данные аутентификации
8 EGTS_SR_SERVICE_INFO Информация о сервисе
9 EGTS_SR_RESULT_CODE Код результата авторизации

EGTS_SR_TERM_IDENTITY — Идентификация терминала

Поле Аббр. Обяз. Тип Размер (байт) Описание
ID терминала TID M UINT 4 Уникальный идентификатор терминала
Флаги — M BYTE 1 HDIDE, IMEIE, IMSIE, LNGCE, SSRA, BSE, NIDE, MNE
ID диспетчера HDID O USHORT 2 (при HDIDE=1)
IMEI IMEI O STRING 15 (при IMEIE=1)
IMSI IMSI O STRING 16 (при IMSIE=1)
Код языка LNGC O STRING 3 Например: rus (при LNGCE=1)
ID сети NID O BINARY 3 MCC + MNC (при NIDE=1)
Размер буфера BS O USHORT 2 Рекомендуемые значения: 800, 1000, 1024, 2048, 4096 (при BSE=1)
Номер MSISDN MSISDN O STRING 15 (при MNE=1)

EGTS_SR_MODULE_DATA — Данные о модуле

Поле Аббр. Обяз. Тип Размер (байт) Описание
Тип модуля MT M BYTE 1 1 — трекер, 2 — блок навигации, 3 — коммуникационный, 4 — другое
ID производителя VID M UINT 4
Версия прошивки FWV M USHORT 2 Major.Minor, например 2.34 = 0x0222
Версия ПО SWV M USHORT 2
Модификация MD M BYTE 1
Состояние ST M BYTE 1 1 — активен, 0 — неактивен, 127 — неопределён
Серийный номер SRN O STRING 0...32 Конец строки — 0x00
Описание DSCR O STRING 0...32

EGTS_SR_AUTH_INFO — Данные аутентификации

Поле Аббр. Обяз. Тип Размер (байт) Описание
Имя пользователя UNM M STRING 0...32
Разделитель D M BYTE 1 0x00
Пароль UPSW M STRING 0...32
Разделитель D M BYTE 1 0x00
Серверная последовательность SS O STRING 0...255

EGTS_SR_RESULT_CODE — Код результата

Единственное поле: RCD (BYTE) — код результата авторизации (см. таблицу кодов ответа).

EGTS_SR_DISPATCHER_IDENTITY — Идентификация диспетчера

Поле Аббр. Обяз. Тип Размер (байт) Описание
Тип диспетчера DT M BYTE 1
ID диспетчера DID M UINT 4
Описание DSCR O STRING 0...255

EGTS_SR_SERVICE_INFO — Информация о сервисе

Поле Аббр. Обяз. Тип Размер (байт) Описание
Тип сервиса ST M BYTE 1
Состояние сервиса SST M BYTE 1
Параметры SRVP M BYTE 1 SRVA (0 — виртуальный, 1 — реальный), SRVRP (приоритет маршрутизации)

EGTS_TELEDATA_SERVICE — Телематический сервис

Типы подзаписей

Код Название Описание
0 EGTS_SR_RECORD_RESPONSE Подтверждение записи
16 EGTS_SR_POS_DATA Основные навигационные данные
17 EGTS_SR_EXT_POS_DATA Расширенные навигационные данные
18 EGTS_SR_AD_SENSORS_DATA Данные аналоговых и цифровых датчиков
19 EGTS_SR_COUNTERS_DATA Данные счётчиков
20 EGTS_SR_STATE_DATA Данные о состоянии устройства
22 EGTS_SR_LOOPIN_DATA Данные шлейфов
23 EGTS_SR_ABS_DIG_SENS_DATA Данные абсолютного цифрового датчика
24 EGTS_SR_ABS_AN_SENS_DATA Данные абсолютного аналогового датчика
25 EGTS_SR_ABS_CNTR_DATA Данные абсолютного счётчика
26 EGTS_SR_ABS_LOOPIN_DATA Данные абсолютного шлейфа
27 EGTS_SR_LIQUID_LEVEL_SENSOR Данные датчика уровня жидкости
28 EGTS_SR_PASSENGERS_COUNTERS Данные счётчиков пассажиров

EGTS_SR_RECORD_RESPONSE — Подтверждение записи

Поле Аббр. Обяз. Тип Размер (байт) Описание
Номер подтверждаемой записи CRN M USHORT 2 Значение поля RN из подтверждаемой записи
Статус записи RST M BYTE 1 Код результата обработки

EGTS_SR_POS_DATA — Основные навигационные данные

Поле Аббр. Обяз. Тип Размер (байт) Описание
Навигационное время NTM M UINT 4 Секунды UTC от 00:00:00 01.01.2010
Широта LAT M UINT 4 Значение × (90 / 0xFFFFFFFF) в градусах
Долгота LONG M UINT 4 Значение × (180 / 0xFFFFFFFF) в градусах
Флаги FLG M BYTE 1 ALTE, LOHS, LAHS, MV, BB, CS, FIX, VLD
Скорость SPD M USHORT 2 0,1 км/ч; биты 14–0 — значение, бит 15 — ALTS
Направление DIR M BYTE 1 Направление 0–255 (расширяется DIRH из SPD)
Пробег ODM M BINARY 3 0,1 км
Цифровые входы DIN M BYTE 1 Биты 0–7 соответствуют входам 1–8
Источник данных SRC M BYTE 1 Тип источника навигационных данных
Высота ALT O BINARY 3 В метрах (при ALTE=1)
Данные источника SRCD O SHORT 2 Дополнительные данные источника (при SRC≠0)

Флаги FLG:

Флаг Описание
VLD Данные валидны: 1 — достоверные
FIX Тип фиксации: 0 — 2D fix, 1 — 3D fix
CS Система координат: 0 — WGS-84, 1 — ПЗ-90.02
BB Из чёрного ящика: 0 — реальное время, 1 — из архива
MV Движение: 1 — объект движется
LAHS Знак широты: 0 — северная, 1 — южная
LOHS Знак долготы: 0 — восточная, 1 — западная
ALTE Наличие поля ALT: 1 — поле присутствует

EGTS_SR_EXT_POS_DATA — Расширенные навигационные данные

Поле Аббр. Обяз. Тип Размер (байт) Описание
Флаги — M BYTE 1 NSFE, SFE, PFE, HFE, VFE
VDOP VDOP O USHORT 2 Вертикальный DOP × 100 (при VFE=1)
HDOP HDOP O USHORT 2 Горизонтальный DOP × 100 (при HFE=1)
PDOP PDOP O USHORT 2 Позиционный DOP × 100 (при PFE=1)
Спутники SAT O BYTE 1 Количество спутников (при SFE=1)
Навигационная система NS O USHORT 2 Битовое поле: 0 — неизвестно, 1 — ГЛОНАСС, 2 — GPS, 4 — Galileo, 8 — Compass, 16 — Beidou, 32 — DORIS, 64 — IRNSS, 128 — QZSS (при NSFE=1)

EGTS_SR_AD_SENSORS_DATA — Аналоговые и цифровые датчики

Поле Аббр. Обяз. Тип Размер (байт) Описание
Цифровые входы (маска) DIOE1–DIOE8 M BYTE 1 По одному биту на каждый октет цифровых входов
Цифровые выходы DOUT M BYTE 1 Биты 0–7 — выходы 1–8
Аналоговые датчики (маска) ASFE1–ASFE8 M BYTE 1 1 — поле ANSn присутствует
Доп. цифровые входы ADIO1–ADIO8 O BYTE 1 каждый Октеты 1–8 (при DIOE=1)
Аналоговые датчики ANS1–ANS8 O BINARY 3 каждый Значения датчиков 1–8 (при ASFEn=1)

EGTS_SR_COUNTERS_DATA — Данные счётчиков

Поле Аббр. Обяз. Тип Размер (байт) Описание
Маска счётчиков CFE1–CFE8 M BYTE 1 1 — поле CNn присутствует
Счётчики CN1–CN8 O BINARY 3 каждый Значения счётчиков 1–8

EGTS_SR_ACCEL_DATA — Данные акселерометра

Поле Аббр. Обяз. Тип Размер (байт) Описание
Количество структур SA M BYTE 1 Число структур ADS
Абсолютное время ATM M UINT 4 Секунды UTC от 00:00:00 01.01.2010
Структуры ADS1...ADS255 — M/O BINARY 8 каждая Данные ускорений

Каждая структура ADS:

Поле Аббр. Тип Размер (байт) Описание
Относительное время RTM USHORT 2 Смещение от ATM в 10 мс
Ускорение по X XAAV SHORT 2 × 0,1 (единица 0,01G)
Ускорение по Y YAAV SHORT 2 × 0,1 (единица 0,01G)
Ускорение по Z ZAAV SHORT 2 × 0,1 (единица 0,01G)

EGTS_SR_STATE_DATA — Состояние устройства

Поле Аббр. Обяз. Тип Размер (байт) Описание
Состояние ST M BYTE 1 Битовое поле состояния
Напряжение основного питания MPSV M BYTE 1 В × 0,1
Напряжение резервной батареи BBV M BYTE 1 В × 0,1
Напряжение внутренней батареи IBV M BYTE 1 В × 0,1
Флаги — M BYTE 1 NMS (навигационный модуль), IBU (внутр. батарея исп.), BBU (резерв. батарея исп.)

EGTS_SR_LOOPIN_DATA — Данные шлейфов

Поле Аббр. Обяз. Тип Размер (байт) Описание
Маска шлейфов LIFE1–LIFE8 M BYTE 1 1 — данные шлейфа n присутствуют
Состояния шлейфов LIS n O BYTE 0,5 По 4 бита на шлейф: 0000 — нормально, 0001 — обрыв, 0010 — КЗ, 0100 — тест, 1000 — неизвестно

EGTS_SR_ABS_DIG_SENS_DATA — Абсолютный цифровой датчик

Поле Аббр. Тип Размер (байт) Описание
DSN + DSST — SHORT 2 Биты 15–6: номер датчика (DSN), биты 5–0: состояние (DSST)

EGTS_SR_ABS_AN_SENS_DATA — Абсолютный аналоговый датчик

Поле Аббр. Обяз. Тип Размер (байт) Описание
Номер датчика ASN M BYTE 1
Значение ASV M BINARY 3

EGTS_SR_ABS_CNTR_DATA — Абсолютный счётчик

Поле Аббр. Обяз. Тип Размер (байт) Описание
Номер счётчика CN M BYTE 1
Значение CNV M BINARY 3

EGTS_SR_LIQUID_LEVEL_SENSOR — Датчик уровня жидкости

Поле Аббр. Обяз. Тип Размер (байт) Описание
Флаги — M BYTE 1 LLSEF, LLSVU (единицы: 00 — мм, 01 — литры, 10 — 0,1%), RDF, LLSN
Адрес модуля MADDR M USHORT 2
Данные датчика LLSD M BINARY 4...512 Сырые данные (при RDF=1) или нормализованное значение (при RDF=0)

EGTS_SR_PASSENGERS_COUNTERS — Счётчики пассажиров

Поле Аббр. Обяз. Тип Размер (байт) Описание
Флаги — M BYTE 1 RDF, DPR
Двери (открытые) DPR M BYTE 1 Битовое поле: бит = 1 — дверь открыта
Двери (разрешённые) DRL M BYTE 1 Битовое поле разрешённых дверей
Адрес модуля MADDR M USHORT 2
Данные счётчиков PCD M BINARY 2...512

EGTS_COMMANDS_SERVICE — Сервис команд

EGTS_SR_COMMAND_DATA — Данные команды

Поле Аббр. Обяз. Тип Размер (байт) Описание
Адрес ADR M USHORT 2 Адрес источника команды
Размер SZ — — — Зависит от значения ACT
Действие ACT M BYTE 1 Тип действия команды (см. ниже)
Код команды CCD M USHORT 2
Данные DT O BINARY 0...65200 Данные команды

Значения ACT:

Код Описание
0 Запрос — наличие CCD
1 Запуск — наличие CCD
2 Останов — наличие CCD
3 Установка — наличие CCD + SZ + DT
4 Получение — наличие CCD + SZ + DT

Параметры соединения

Параметр Тип Значение по умолчанию Описание
TL_RESPONSE_TO BYTE 5 с Таймаут ожидания ответа
TL_RESEND_ATTEMPTS BYTE 3 Число попыток повторной отправки
TL_RECONNECT_TO BYTE 30 с Таймаут переподключения

Коды результата обработки

Код Константа Описание
0 EGTS_PC_OK Успешно
1 EGTS_PC_IN_PROGRESS Обработка
128 EGTS_PC_UNS_PROTOCOL Неподдерживаемый протокол
129 EGTS_PC_DECRYPT_ERROR Ошибка расшифрования
130 EGTS_PC_PROC_DENIED Обработка запрещена
131 EGTS_PC_INC_HEADERFORM Некорректный заголовок
132 EGTS_PC_INC_DATAFORM Некорректные данные
133 EGTS_PC_UNS_TYPE Неподдерживаемый тип
134 EGTS_PC_NOTEN_PARAMS Недостаточно параметров
135 EGTS_PC_DBL_PROC Дублирующая обработка
136 EGTS_PC_PROC_SRC_DENIED Источник запрещён
137 EGTS_PC_HEADER_CRC_ERROR Ошибка CRC заголовка
138 EGTS_PC_DATA_CRC_ERROR Ошибка CRC данных
139 EGTS_PC_INV_DATALEN Некорректная длина данных
140 EGTS_PC_ROUTE_NFOUND Маршрут не найден
141 EGTS_PC_ROUTE_CLOSED Маршрут закрыт
142 EGTS_PC_ROUTE_DENIED Маршрут запрещён
143 EGTS_PC_INV_ADDR Некорректный адрес
144 EGTS_PC_TTL_EXPIRED TTL истёк
145 EGTS_PC_NO_ACK Нет подтверждения
146 EGTS_PC_OBJ_NFOUND Объект не найден
147 EGTS_PC_EVNT_NFOUND Событие не найдено
148 EGTS_PC_SRVC_NFOUND Сервис не найден
149 EGTS_PC_SRVC_DENIED Сервис запрещён
150 EGTS_PC_SRVC_UNKN Неизвестный сервис
151 EGTS_PC_AUTH_DENIED Авторизация запрещена
152 EGTS_PC_ALREADY_EXISTS Уже существует
153 EGTS_PC_ID_NFOUND ID не найден
154 EGTS_PC_INC_DATETIME Некорректная дата/время
155 EGTS_PC_IO_ERROR Ошибка ввода/вывода
156 EGTS_PC_NO_RES_AVAIL Ресурсы недоступны
157 EGTS_PC_MODULE_FAULT Неисправность модуля
158 EGTS_PC_MODULE_PWR_FLT Ошибка питания модуля
159 EGTS_PC_MODULE_PROC_FLT Ошибка процессора модуля
160 EGTS_PC_MODULE_SW_FLT Ошибка ПО модуля
161 EGTS_PC_MODULE_FW_FLT Ошибка прошивки модуля
162 EGTS_PC_MODULE_IO_FLT Ошибка ввода/вывода модуля
163 EGTS_PC_MODULE_MEM_FLT Ошибка памяти модуля
164 EGTS_PC_TEST_FAILED Тест не пройден

Вычисление CRC-8 и CRC-16

CRC-8 (заголовок пакета)

  • Полином: 0x31 (x⁸ + x⁵ + x⁴ + 1)
  • Init: 0xFF, Revert: false, XorOut: 0x00
  • Контрольное значение для 123456789: 0xF7
unsigned char CRC8(unsigned char *lpBlock, unsigned char len) {
    unsigned char crc = 0xFF;
    while (len--)
        crc = CRC8Table[crc ^ *lpBlock++];
    return crc;
}

CRC-16 CCITT (данные пакета — SFRD)

  • Полином: 0x1021 (x¹⁶ + x¹² + x⁵ + 1)
  • Init: 0xFFFF, Revert: false, XorOut: 0x0000
  • Контрольное значение для 123456789: 0x29B1
unsigned short Crc16(unsigned char *pcBlock, unsigned short len) {
    unsigned short crc = 0xFFFF;
    while (len--)
        crc = (crc << 8) ^ Crc16Table[(crc >> 8) ^ *pcBlock++];
    return crc;
}