- •Содержание
- •1 Общие положения 4
- •2 Описание протокола 5
- •3 Реализация 16
- •Сообщение “00”. Отчет о местоположении v2
- •Сообщение “01”. Установка выходов
- •Сообщение “02”. Переход на временный сервер в протоколе “Интернет канал”
- •Сообщение “03”. Отчет о местоположенииV3
- •Сообщение “04”. Установка пареметров apn
- •Сообщение “05”. Установка параметров соединения
- •Сообщение “06”. Установка параметров записи отчетов при движении
- •Сообщение “07”. Установка параметров аналоговых входов
- •Сообщение “08”. Установка параметров цифровых входов
- •Сообщение “10”. Текстовое сообщение для устройства отображения (индикатор)
- •Сообщение “11”. Массив событий от устройства отображения (индикатора)
- •Сообщение “ff”. Подтверждение.
- •Реализация
- •Текстовые команды
- •Приложение 1. Типы событий для сообщения “00”
- •Приложение 2. Типы событий для сообщения “03”
Сообщение “01”. Установка выходов
Формат сообщения имеет следующую структуру: !ID, 01, F0 * MSG_CRC
Поле |
Значение |
F0 |
HASF8. Значение 5 цифровых выходов Out1 Out 2 Out 3 Out 4 Out 5. Первые 3 цифры должны быть установлены в 0. Остальные 5 кодируются следующими значениями: ‘0’ – установить в уровень 0; ‘1’ – установить в уровень 1; ‘2’ – не изменять значение. |
Пример: |
!1234,01,00022210*CRC Выходы Out1 Out 2 Out 3 не изменять. Выход Out4 установить в 1 Выход Out5 установить в 0
|
Примечание: на данную команду контроллер должен ответить подтверждением (сообщение 0xFF)
Сообщение “02”. Переход на временный сервер в протоколе “Интернет канал”
Формат сообщения имеет следующую структуру:!ID, 02, F0,F1,F2 * MSG_CRC
Поле |
Значение |
F0 |
IP адрес временного сервера в формате HASF8. IP адрес кодируется в соответствии со следующим примером: 123.45.1.220 в шестнадцатеричном виде выглядит как 7B.2D.01.DC следовательно, поле F0 равно 7B2D01DC. |
F1 |
IP порт временного сервера в формате HASF4 Порт кодируется в соответствии со следующим примером: 10005 в шестнадцатеричном виде выглядит как 2715 следовательно, поле F1 равно 2715. |
F2 |
Признак передачи отчетов на временный сервер. 2 цифры в формате HASF. Значение 00 означает не передавать отчеты после соединения с сервером, значение 01 – передавать
|
Пример: |
!1234,02,7B2D01DC,2715,00*CRC
|
Примечание: на данную команду контроллер должен ответить подтверждением (сообщение 0xFF).
При получении команды 02, контроллер переходит на временный сервер в протоколе “интернет канал”. После завершения сеанса связи с данным сервером, контроллер возвращается на сервер, прописанный в профиле режима работы.
Сообщение “03”. Отчет о местоположенииV3
Формат сообщения о местоположении имеет следующую структуру:
!ID,03,BAL,F0,F1,F2,F3,F4
[aF5][bF6] [cF7][dF8][eF9] [fF10][gF11][hF12] [kF13][mF14][nF15] [oF16]
[pF17][sF18][tF19][xF20][yF21][zF22];/* MSG_CRC
(пробелы и перенос строки вставлены для наглядности),
где,
BAL – баланс абонента.HASF8. Кодируется какSSBBBBBBгде,
SS – байт состояния
0x00– запрос выполнен успешно, “BBBBBB” содержит текущий баланс;
0x01– старый запрос или ошибка в текущем запросе, “BBBBBB” содержит значение предыдущего запроса баланса;
0x02– ошибка при разборе ответа на запрос. Возникает в случае невозможности контроллером расшифровать строку ответа на запрос баланса.“BBBBBB” имеет не достоверную величину и не должна отображаться
BBBBBB – значение баланса
Знаковое 24 битно число. Кодируется в виде R*100 +K. Где ‘R’ рубли, $ и т.д., ‘K’ – копейки, центы и т.д (R=BBBBBB/ 100,K=abs(BBBBBB%100))
Пример:
00FFB5B1. Состояние 0x00. Баланс 0xFFB5B1 или -19023 или -190.23
01000063. Состояние 0x01. Баланс 0x63 или 99 или 00info.99 (старый запрос)
02xxxxxx. Состояние 0x02. Ошибка при разборе ответа
F0…F4– обязательные поля отчета, следуют через запятую и описаны в следующей таблице
Поле |
Значение |
F0 |
Биты флагов состояний. HASF8. Бит 31 Бит 30 Бит 29 Бит 28 – тип события(4) Бит 27 – тип события(3) Бит 26 – тип события(2) Бит 25 – тип события(1) Бит 24 – тип события(0). Тип события 4..0 определен в “Приложении 2” ---------------------------------------- Бит 23 Бит 22 Бит 21 Бит 20 Бит 19 Бит 18 – IN3. Значение цифрового входа In3 Бит 17 – IN2. Значение цифрового входа In2 Бит 16 – IN1. Значение цифрового входа In1 ---------------------------------------- Бит 15 – OUT3. Значение цифрового выхода Out3 Бит 14 – OUT2. Значение цифрового выхода Out2 Бит 13 – OUT1. Значение цифрового выхода Out1 Бит 12 – датчик движения (1 – движение есть, 0 – движения нет) Бит 11 – зажигание не подключено (IgnitionError) Бит 10 – статус зажигания (Ignition) - 0 –подключено на “0”, 1 –подключено на ”1” Бит 9 – навигационное решение1 Бит 8 – навигационное решение0 ---------------------------------------- Бит 7 – заряд аккумулятора acc1 Бит 6 – заряд аккумулятора acc0 (градации 11,10,01,00) Бит 5 – статус антенна1 Бит 4 – статус антенна0 Бит 3 – статус времени ( 0 - внутренний таймер / 1 - по GPS) Бит 2 – наличие SIM карты Бит 1 – наличие GSM регистрации Бит 0 – наличие внешнего питания ---------------------------------------- Навигационное решение 1…0: 00 – старое, 2D 01 – старое, 3D 10 – новое, 2D 11 – новое, 3D
Статус антенна 1…0 00 – антенна подключена (antenna ok) 01 – антенна не подключена (antenna open) 10 – короткое замыкание антенны (antenna short)
|
F1 |
Широта (latitude). HASF8. Старший бит определяет знак. Широта упакована в виде dd°mm.mmmmm |
Пример: |
число “2122710F” соответствует десятичному 555905295 таким образом, Широта равна “55°59.05295“ |
F2 |
Долгота (longitude). HASF8. Старший бит определяет знак. Долгота упакована в виде ddd°mm.mmmmm |
Пример: |
1) число “16216121” без старшего бита соответствует десятичному 0371286305 таким образом, долгота равна “037°12.86305“ 2) число “96216121” без старшего бита соответствует десятичному 0371286305 таким образом, долгота равна “037°12.86305“, а т.к. старший бит равен 1, то долгота равна “-037°12.86305“ |
F3 |
Время/дата отчета. HASF8. Декодирование осуществляется аналогично декодированию времени в сообщении о местоположении V2 (сообщение “00”) |
F4 |
Cкорость в милях/ч, HASF3. Кодируется в виде A*10+B. Где A целая часть скорости, B – 1 знак после запятой скорости. |
Пример: |
197 ( в десятичном виде 407, что соответствует 40,7 мил/ч) 064 ( в десятичном виде 100, что соответствует 10 мил/ч) в общем случае, для перевода в км/час параметр необходимо умножить на 1.853 и разделить на 10. Пример: 3DA, в десятичном виде 986. Скорость в км/ч равна (986 * 1.853)/10 = 182,7 км/ч |
Далее следуют поля наличие которых зависит от конфигурации состава отчета в регистраторе. Каждому полю предшествует латинский символ в нижнем регистре. Поля следуют без запятых и пробелов. Признак конца текущего отчета служит символ “;” в случае обнаружения символа “*”, следует прекратить разбор отчетов и перейти к подсчету контрольной суммы всего сообщения
aF5 |
Высота в метрах. HASF4. Старший бит определяет знак. |
Пример: |
00С8 (200 метров) или 800A (-10 метров) |
bF6 |
Текущий курс в градусах деленный на 2. HASF2. |
Пример: |
01 (2 градуса), AF (350 градусов) и т.д |
сF7 |
Значение аналогового входов An0. HASF3 в виде 12 битного знакового числа. |
dF8 |
Значение аналогового входов An1. HASF3 в виде 12 битного знакового числа. |
eF9 |
Значение аналогового входов An2. HASF3 в виде 12 битного знакового числа.
|
Пример: |
с459. Значение An0 – 459 или 1113 едениц в десятичной системе d013. Значение An1 – 013 или 19 едениц в десятичной системе eFF0. Значение An2 – FF0 или -16 едениц в десятичной системе |
fF10 |
Значение 12 битного датчика топлива LLC Fuel0, HASF3. |
gF11 |
Значение 12 битного датчика топлива LLC Fuel1, HASF3. |
hF12 |
Значение 12 битного датчика топлива LLC Fuel2, HASF3.
|
Пример: |
Значения датчика топлива 000 и 001 имеют особое значение, а именно: 000 – датчик топлива не обнаружен 001 – короткое замыкание на линии покдлючения датчика топлива (неисправность) Все остальные значение содержат непосредственные показания датчика топлива. Если показание датчика < 2, оно округляется до 2 (внутри регистратора).
Пример: Значение Fuel0: f000. Датчик топлива 0 не обнаружен Значение Fuel1: g001. короткое замыкание на линии подключения датчика топлива 1 Значение Fuel2: h020 или 32 едениц в десятичной системе
|
kF13 |
Значение счетчика/частотомера Cnt0, HASF6. |
mF14 |
Значение счетчика/частотомера Cnt1, HASF6. |
nF15 |
Значение счетчика/частотомера Cnt2, HASF6. |
Пример: |
Значение Cnt0 – k000000 или 0 в десятичной системе Значение Cnt1 – m000012 или 18 в десятичной системе Значение Cnt2 – n002300 или 8960 в десятичной системе
|
oF16 |
Значение считывателя RFID. HASF32 |
Пример: |
|
pF17 |
Значение параметра CAN1. HASFx |
sF18 |
Значение параметра CAN2. HASFx |
tF19 |
Значение параметра CAN3. HASFx |
xF20 |
Значение параметра CAN4. HASFx |
yF21 |
Значение параметра CAN5. HASFx |
Пример: |
Значение параметров CANx в настоящий момент не определено, как и длина полей. Формат HASFx означает, что поля CAN1-5 могут иметь размер от 1 до 4 байт : HASF2, HASF4, HASF6 или HASF8. Для декодирования каждого поля в базе данных необходимо отвести 4 байта. Признаком конца текущего поля CANx является символ не относящийся к формату HASF – это может быть признак следующего поля CANx (p,s,t,x,y), признак поля другого значения отчета, символ конца текущего отчета ‘;’ или признак конца сообщения ‘*’ – признак следования MSG_CRC. Таким образом, значение полей CANx с переменной длиной можно декодировать следуя вышеприведенному замечанию.
|
zF22 |
Число спутников участвующих в навигационном решении. HASF2. Первое число (старшая тетрада) содержит число GPS спутников, а второе - ГЛОНАСС. |
Примечания:
1)Сообщение “03” может не содержать отчетов вообще, в этом случае необходимо принять во внимание поле “BAL”. Подтверждение на данное сообщение также долно быть передано как и в обычном случае. Пример:
Передача: !0457,03,00FFB1E0*8B
Ответ: !0457,FF,03,8B*MSG_CRC
2)В случае наличия в сообщении “03” нескольких отчетов, все они должны иметь одинаковый состав полей.
3)При отсутствии в отчетах одного или нескольких необязательных полей, их значения в базе данных должны быть установлены в 0 (подлежит обсуждению)
4) Примеры сообщений:
Передано 2 отчета. Все поля в отчетах присутствуют кромеpF17-yF21
!0457,03,00FFB1E0,1302091F,2122707E,16216338,11133C6E,000a00D9b67c0BAd078e0DDf000g000h000k000000m000000n000000o00000000000000000000000000000000;1302091F,2122707E,16216338,11133C78,000a00D9b67c0BAd078e0DDf000g000h000k000000m000000n000000o00000000000000000000000000000000*xx
Передано 2 отчета. В отчетах отсутствуют поляdF8 -eF9,gF11 –hF12,mF14 –nF15 иoF16
!0457,03,00FFB1E0,1302091F,2122707E,16216338,11133C6E,000a00D9b67c0BAf000k000000;1302091F,2122707E,16216338,11133C78,000a00D9b67c0BAf000k000000*xx
Передано 3 отчета. В отчетах отсутствуют все необязательные поля.
!0457,03,00FFB1E0,1302091F,2122707E,16216338,11133C6E,000;1302091F,2122707E,16216338,11133C78,000;1302091F,2122707E,16216338,11133C82,000*xx