Протокол обмена с сервером '''GPS-LITE'''

Материал из wiki.truck-control.info
Перейти к: навигация, поиск

Трекер AutoLine-LITE (далее – трекер) обменивается с сервером сообщениями унифицированного формата.

Обмен сообщениями идет сессиями, в рамках которой может быть передано несколько сообщений. Сообщения разделяются символом 0x0D 0x0A (перевод строки, возврат каретки). При необходимости, конец сессии обозначается байтом 0xFF. При получении данного байта сервер отправляет подтверждение (RCPTOK<0x0d><0x0a>) и разрывает TCP/IP соединение.

После отправки каждого сообщение трекер ожидает от сервера подтверждение приема сообщения, которое выглядит следующим образом:

RCPTOK<0x0d><0x0a>

или

CMD:#AT+SMSD=?#1903#;RCPTOK<0x0d><0x0a>

При получении ответа отличного от RCPTOK (или отсутствию подтверждения в течение таймаута) трекер считает, что передача данного сообщения не удалась и разрывает текущую сессию. Сообщение будет передано при следующей сессии. Медиа:Example.ogg При наличии CMD:AT+SMSD=?#1903#, трекер распознает и выполняет команду. Описание команд приведено ниже.

1903 - уникальный номер команды, используемый для ее идентификации при получении ответа от трекера по GPRS.

Сообщения передаваемые трекером

Все сообщения трекера начинаются с префикса $AV


Содержание

$AV,V2 - Основное сообщение GPSLite V2

//1 2    3     4     5     6      7  8 9 10   11    12   1314   15      16          17       18     19       20   21

$AV,V2,32768,12487,2277, 203,  -1,   0,0,193,0,    0,    1,13,200741,5950.6773N,03029.1043E,0.0,   0.0,   121012,*6E


1 - $AV - заголовок 1;
2 - V2 - заголовок 2;
3 - TrackerID - номер трекра целое 0..65535;
4 - Serial - серийный номер последовательности. Целое 0..65535;
5 - VIN - входное напряжение. Сотые доли вольта (2277 = 22.77в). Максимум - 40в;
6 - VBAT - напряжение на аккумулятора. Сотые доли вольта. Если напряжение меньше 2.5в - аккумулятора нет или он неисправен.  ;
7 - FSDATA - данные с ДУТ Стрела-Е232, целое 0..65535;
8 - ISSTOP - признак остановки по акселерометру. 0 - движение, 1 - стоянка  ;
9 - ISEGNITION - признак зажигания. 1 - включено, 0 - выключено;
10 - D_STATE - состояние цифрового входа трекера. 1 - включен (высокий уровень), 0 - выключен (низкий уровень);
11 - FREQ1 - частота на дискретном входе трекера;
12 - COUNT1 - счетчик на дискретном входе трекера;
13 - FIX TYPE - тип фиксации GPS/GLONASS;
14 - SAT COUNNT - количество отслеживаемых спутников (GPS+GLONASS);
15 = TIME,UTC - время, UTC;
16 = XCOORD - долгота;
17 = YCOORD - штрота;
18 = SPEED - скорость, узлов;
19 = COURSE - курс - градусов;
20 = DATE,UTC - дата, UTC;

SF - признак того, что команда отправлена из flash-памяти;

  • 12 - контрольная сумма сообщения;

$AV,V3 - Основное сообщение GPSLite V3

  1 2     3     4     5    6     7  8 9 10   11    12    11.1  11.2 1314   15      16          17       18     19    20    21    22    23   24
$AV,V3,999999,12487,2277, 203,65534,0,0,193,65535,65535,65535,65535,1,13,200741,5950.6773N,03029.1043E,300.0,360.0,121012,65535,65535,65535,SF*6E

1 - $AV - заголовок 1;
2 - V2 - заголовок 2;
3 - TrackerID - номер трекра целое 70000..999999;
4 - Serial - серийный номер последовательности. Целое 0..65535;
5 - VIN - входное напряжение. Сотые доли вольта (2277 = 22.77в). Максимум - 40в;
6 - VBAT - напряжение на аккумулятора. Сотые доли вольта. Если напряжение меньше 2.5в - аккумулятора нет или он неисправен.  ;
7 - FSDATA - данные с ДУТ Стрела-Е232, целое 0..65535;
8 - ISSTOP - признак остановки по акселерометру. 0 - движение, 1 - стоянка  ;
9 - ISEGNITION - признак зажигания. 1 - включено, 0 - выключено;
10 - D_STATE - состояние цифровых входов трекера (битовая маска):

192 = 0xC0=11000000b

76543210
11000000

бит 0: зарезервирован
бит 1: состояние цифрового входа 3 (1 - активен; 0 - не активен);
бит 2: состояние цифрового входа 2 (1 - активен; 0 - не активен);
бит 3: состояние цифрового входа 1 (1 - активен; 0 - не активен);
бит 4: зарезервирован;
бит 5: зарезервирован;
бит 6: зарезервирован;
бит 7: состояние дискретного выхода 1 (0 - замкнуто, 1 - разомкнуто);

11 - FREQ1 - частота на дискретном входе 1трекера;
12 - COUNT1 - счетчик на дискретном входе 1 трекера;
11.1 - FREQ2 - частота на дискретном входе 2 трекера;
12.2 - COUNT2 - счетчик на дискретном входе 2 трекера;
13 - FIX TYPE - тип фиксации GPS/GLONASS;
14 - SAT COUNNT - количество отслеживаемых спутников (GPS+GLONASS);
15 = TIME,UTC - время, UTC;
16 = XCOORD - долгота;
17 = YCOORD - штрота;
18 = SPEED - скорость, узлов;
19 = COURSE - курс - градусов;
20 = DATE,UTC - дата, UTC;
21 = ADC1 - напряжение на аналоговом входе 1. Сотые доли вольта. Максимум - 40в;
22 = COUNTER3 - Счетчик цифрового входа 3;
23 = TS_TEMP - температура внешнего датчика температуры, C*2 (пример расшифровки данных температурного датчика см. в конце данного документа) ;


SF - признак того, что команда отправлена из flash-памяти;

  • 12 - контрольная сумма сообщения;

$AV,V4 - Основное сообщение GPSLite V4

  1 2     3     4     5    6     7  8 9 10   11    12    11.1  11.2 1314 14.1 14.1  15      16          17       18     19    20    21    22    23   24
$AV,V4,999999,12487,2277, 203,65534,0,0,193,65535,65535,65535,65535,1,13,80.0,56.1,200741,5950.6773N,03029.1043E,300.0,360.0,121012,65535,65535,65535,SF*6E

1 - $AV - заголовок 1;
2 - V2 - заголовок 2;
3 - TrackerID - номер трекра целое 70000..999999;
4 - Serial - серийный номер последовательности. Целое 0..65535;
5 - VIN - входное напряжение. Сотые доли вольта (2277 = 22.77в). Максимум - 40в;
6 - VBAT - напряжение на аккумулятора. Сотые доли вольта. Если напряжение меньше 2.5в - аккумулятора нет или он неисправен.  ;
7 - FSDATA - данные с ДУТ Стрела-Е232, целое 0..65535;
8 - ISSTOP - признак остановки по акселерометру. 0 - движение, 1 - стоянка  ;
9 - ISEGNITION - признак зажигания. 1 - включено, 0 - выключено;
10 - D_STATE - состояние цифровых входов трекера (битовая маска):

192 = 0xC0=11000000b

76543210
11000000

бит 0: зарезервирован
бит 1: состояние цифрового входа 3 (1 - активен; 0 - не активен);
бит 2: состояние цифрового входа 2 (1 - активен; 0 - не активен);
бит 3: состояние цифрового входа 1 (1 - активен; 0 - не активен);
бит 4: зарезервирован;
бит 5: зарезервирован;
бит 6: зарезервирован;
бит 7: состояние дискретного выхода 1 (0 - замкнуто, 1 - разомкнуто);

11 - FREQ1 - частота на дискретном входе 1трекера;
12 - COUNT1 - счетчик на дискретном входе 1 трекера;
11.1 - FREQ2 - частота на дискретном входе 2 трекера;
12.2 - COUNT2 - счетчик на дискретном входе 2 трекера;
13 - FIX TYPE - тип фиксации GPS/GLONASS;
14 - SAT COUNNT - количество отслеживаемых спутников (GPS+GLONASS);
14.1 - ALTITUDE - Высота антенны приёмника над/ниже уровня моря, м;
14.2 - GEOID HEIGHT - Геоидальное различие - различие между земным эллипсоидом WGS-84 и уровнем моря(геоидом), ”-” = уровень моря ниже эллипсоида.;
15 = TIME,UTC - время, UTC;
16 = XCOORD - долгота;
17 = YCOORD - штрота;
18 = SPEED - скорость, узлов;
19 = COURSE - курс - градусов;
20 = DATE,UTC - дата, UTC;
21 = ADC1 - напряжение на аналоговом входе 1. Сотые доли вольта. Максимум - 40в;
22 = COUNTER3 - Счетчик цифрового входа 3;
23 = TS_TEMP - температура по данным внешнего датчика температуры, градусы цельсия. Если TS_TEMP=32767, то датчик температуры не обнаружен. Поддерживается автоматическое определение типа датчика DS18S20 или DS18B20

SF - признак того, что команда отправлена из flash-памяти;

  • 12 - контрольная сумма сообщения;

$AV,V5 - Основное сообщение GPSLite V5

  1 2     3     4     5    6     7  8 9 10   11    12    11.1  11.2 13 13.1 14 14.1 14.1  15      16          17       18     19    20    21    22    23   24
$AV,V5,999999,12487,2277, 203,65534,0,0,193,65535,65535,65535,65535,0,  1,  13,80.0,56.1,200741,5950.6773N,03029.1043E,300.0,360.0,121012,65535,65535,65535,SF*6E

1 - $AV - заголовок 1;
2 - V2 - заголовок 2;
3 - TrackerID - номер трекра целое 70000..999999;
4 - Serial - серийный номер последовательности. Целое 0..65535;
5 - VIN - входное напряжение. Сотые доли вольта (2277 = 22.77в). Максимум - 40в;
6 - VBAT - напряжение на аккумулятора. Сотые доли вольта. Если напряжение меньше 2.5в - аккумулятора нет или он неисправен.  ;
7 - FSDATA - данные с ДУТ Стрела-Е232, целое 0..65535;
8 - ISSTOP - признак остановки по акселерометру. 0 - движение, 1 - стоянка  ;
9 - ISEGNITION - признак зажигания. 1 - включено, 0 - выключено;
10 - D_STATE - состояние цифровых входов трекера (битовая маска):

192 = 0xC0=11000000b

76543210
11000000

бит 0: зарезервирован
бит 1: состояние цифрового входа 3 (1 - активен; 0 - не активен);
бит 2: состояние цифрового входа 2 (1 - активен; 0 - не активен);
бит 3: состояние цифрового входа 1 (1 - активен; 0 - не активен);
бит 4: зарезервирован;
бит 5: зарезервирован;
бит 6: зарезервирован;
бит 7: состояние дискретного выхода 1 (0 - замкнуто, 1 - разомкнуто);

11 - FREQ1 - частота на дискретном входе 1трекера;
12 - COUNT1 - счетчик на дискретном входе 1 трекера;
11.1 - FREQ2 - частота на дискретном входе 2 трекера;
12.2 - COUNT2 - счетчик на дискретном входе 2 трекера;
13 - ANT_STATE - состояние GPS антенны:

  GPS_ANT_OK               0  - антенна подключена; 
  GPS_ANT_SHORT            1  - короткое замыкание в антенне;
  GPS_ANT_ABSENT           2  - антенна отсутствует или обрыв антенны;

13.1 - FIX TYPE - тип фиксации GPS/GLONASS;
14 - SAT COUNNT - количество отслеживаемых спутников (GPS+GLONASS);
14.1 - ALTITUDE - Высота антенны приёмника над/ниже уровня моря, м;
14.2 - GEOID HEIGHT - Геоидальное различие - различие между земным эллипсоидом WGS-84 и уровнем моря(геоидом), ”-” = уровень моря ниже эллипсоида.;
15 = TIME,UTC - время, UTC;
16 = XCOORD - долгота;
17 = YCOORD - штрота;
18 = SPEED - скорость, узлов;
19 = COURSE - курс - градусов;
20 = DATE,UTC - дата, UTC;
21 = ADC1 - напряжение на аналоговом входе 1. Сотые доли вольта. Максимум - 40в;
22 = COUNTER3 - Счетчик цифрового входа 3;
23 = TS_TEMP - температура по данным внешнего датчика температуры, градусы цельсия. Если TS_TEMP=32767, то датчик температуры не обнаружен. Поддерживается автоматическое определение типа датчика DS18S20 или DS18B20


SF - признак того, что команда отправлена из flash-памяти;

  • 12 - контрольная сумма сообщения;

$AV,V5SD - Дополнительное сообщение GPSLite V5

 1    2    3     4       5        6     7     8     9    10     11    12   13    14    15   16  17  18  19     20

$AV,V5SD,65535,65535,4111222333,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,255,255,255,255,4111222333,SF*12

1 - AV               - заголовок 1
2 - V5SD             - заголовок 2
3 - TrackerID        - номер трекера
4 - Serial           - серийный номер последовательнсоти
5 - UnixTime         - время формирования сообщения - длинное целое - UnixTime, UTC 
6 - VIN,             - входное напряжение. Сотые доли вольта (2277 = 22.77в) 
7 - VBAT,            - напряжение на аккумулятора. Сотые доли вольта. Если напряжение меньше 2.5в - аккумулятора нет или он неисправен.   
8 - FSDATA,          - данные с ДУТ Стрела-Е232, целое 0..65535 
9 - DSTATE,          - состояние цифровых входов трекера в бинарном формате:
текущее состояние датчиков в бинарном формате:

196:
11000110
76543210

0й бит – не используется
1й бит – состояние третьего цифрового входа (1 – активен, есть напряжение на входе);
2й бит – состояние второго цифрового входа (1 – активен, есть напряжение на входе);
3й бит – состояние первого цифрового входа (1 – активен, есть напряжение на входе);
4й бит – в резерве. Состояние неопределенно (обычно – 0);
5й бит – в резерве. Состояние неопределенно (обычно – 0);

6й бит – состояние первого реле (1 – выключено, 0 - включено);
7й бит – не используется

10- FREQ2,           - частота на дискретном входе 2 трекера
11 - COUNT2,         - счетчик на дискретном входе 2 теркера
12 - FREQ1,          - частота на дискретном входе 1 трекера
13 - COUNT1,         - счетчик на дискретном входе 1 трекера
14 - COUNT3,         - счетчик на дискретном входе 3 трекера
15 - ADC1            - напряжение на АЦП1. Сотые доли вольта, максимум - 40в
16 - ACC_X           - сырые данные акселерометра, ось X
17 - ACC_Y           - сырые данные акселерометра, ось Y
18 - ACC_Z           - сырые данные акселерометра, ось Z
19 - DS1820 TEMP     - показания температурного датчика, условные единицы
20 - uptime counter  - время с момента последнего включениы/перезагрузки трекера

Так же может содержать SF в конце строки перед контрольной суммой. SF указывает на то, что данное предложение было отправлено из flash-памяти.

$AV,V6SD - Дополнительное сообщение GPSLite V6

 1    2    3     4       5        6  7   8   9     10

$AV,V5SD,65535,65535,4111222333,255,255,255,255,4111222333,SF*12

1 - AV               - заголовок 1
2 - V5SD             - заголовок 2
3 - TrackerID        - номер трекера
4 - Serial           - серийный номер последовательнсоти
5 - UnixTime         - время формирования сообщения - длинное целое - UnixTime, UTC 
6 - ACC_X           - сырые данные акселерометра, ось X
7 - ACC_Y           - сырые данные акселерометра, ось Y
8 - ACC_Z           - сырые данные акселерометра, ось Z
9 - DS1820 TEMP     - показания температурного датчика, условные единицы
10 - uptime counter  - время с момента последнего включениы/перезагрузки трекера

Так же может содержать SF в конце строки перед контрольной суммой. SF указывает на то, что данное предложение было отправлено из flash-памяти.

$AV,V7SD - Дополнительное сообщение GPSLite2 V7

 1    2    3     4     5       6            7       8    9     10    11 12 13  14    15    16   17    18

$AV,V7SD,84254,6549,151245,5536.1855N,02824.3397E,0.25,139.35,160414,0, 0, 0,14802,15097,14956,14731,89079,*6A

1 - AV               - заголовок 1
2 - V5SD             - заголовок 2
3 - TrackerID        - номер трекера
4 - Serial           - серийный номер последовательности
5 - время GPS;
6 = XCOORD      - долгота;<br>
7 = YCOORD      - штрота;<br>
8 = SPEED       - скорость, узлов;<br>
9 = COURSE      - курс - градусов;<br>
10 = DATE,UTC    - дата, UTC;<br>
11 - ACC_X           - сырые данные акселерометра, ось X
12 - ACC_Y           - сырые данные акселерометра, ось Y
13 - ACC_Z           - сырые данные акселерометра, ось Z
14 - Данные с датчика LLS-RS485 номер 1;
15 - Данные с датчика LLS-RS485 номер 2;
16 - Данные с датчика LLS-RS485 номер 3;
17 - Данные с датчика LLS-RS485 номер 4;
18 - uptime counter  - время с момента последнего включения/перезагрузки трекера

Так же может содержать SF в конце строки перед контрольной суммой. SF указывает на то, что данное предложение было отправлено из flash-памяти.

$AV,OWV1 - Дополнительное сообщение GPSLite2 OW - информация о подключенных температурных датчиках

 1    2    3     4     5       6            7       8    9     10   11  12  13  14  15  16   17  18       19         20
$AV,OWV1,200002,44694,131851,5955.8935N,03019.1707E,0.0,0.0,250514,178,2200,52,2250,33,2250,200,2200,1401023932,019B22030D000097,*64

1 - AV               - заголовок 1
2 - V5SD             - заголовок 2
3 - TrackerID        - номер трекера
4 - Serial           - серийный номер последовательности
5 - время GPS;
6 = XCOORD      - долгота;<br>
7 = YCOORD      - штрота;<br>
8 = SPEED       - скорость, узлов;<br>
9 = COURSE      - курс - градусов;<br>
10 = DATE,UTC    - дата, UTC;<br>
11 = Номер температурного датчика 1 (последний байт серийного номера);
12 - температура датчика номер 1 (сотые доли градуса);
13 = Номер температурного датчика 2 (последний байт серийного номера);
14 - температура датчика номер 2 (сотые доли градуса);
15 = Номер температурного датчика 3 (последний байт серийного номера);
16 - температура датчика номер 3 (сотые доли градуса);
17 = Номер температурного датчика 4 (последний байт серийного номера);
18 - температура датчика номер 4 (сотые доли градуса);
19 - Время последнего сканирования iButton (Unixtime, UTC);
20 - идентификатор iButton


Так же может содержать SF в конце строки перед контрольной суммой. SF указывает на то, что данное предложение было отправлено из flash-памяти.

Сообщение $AV, V3GSMINFO

В данном сообщении передаются данные, собранные в GSM-сети.

$AV,V3GSMINFO,60646,1342188604,11303,Beeline,1,1,1,22,52,0,a417,99,7661,250,10,43,99,255,*3C

Поле 1: $AV, - заголовок сообщения;
Поле 2: V2GSMINFO, - заголовок сообщения;
Поле 3: 60646, - номер трекера;
Поле 4: 1328359298 – время UTC UnixTime; 
Поле 5: 11303, - серийный номер сообщения;
Поле 6: Beeline, - название оператора сотовой связи;
Поле 7: 1, - номер активной СИМ-карты;
Поле 8: 1, - номер активного сервера с которым установлено соединение;
Поле 9: 1, - статус регистрации в сети (1-домашняя сеть; 2 – роуминг);
Поле 10: 22, - мощность GSM сигнала (0 – min...31 – макс);
Поле 11: 52, - температура GSM модуля (градусов Цельсия);
Поле 12: 0, - идентификатор оператора
Поле 13: a417, - LAC
Поле 14: 99, - MNC
Поле 15: 7661, - CellID
Поле 16: 250, - MCC
Поле 17: 10, - BSIC
Поле 18: 43, - RXL
Поле 19: 99, - RXQ
Поле 20: 255, - TA; 255 – измерение не производилось
Поле 21: *3C – контрольная сумма
Так же может содержать SF в конце строки перед контрольной суммой. SF указывает на то, что данное предложение было отправлено из flash-памяти.


Сообщение $AV, V2DI


$AV,V2DI,1850,9772,1328359236,199,000471CB,000471CB,0C000000,*17

Данное СЛУЖЕБНОЕ сообщение содержит в себе диагностическую информацию, предназначенную для диагностики работоспособности 
трекера. Нет необходимости производить разбор данного сообщения на сервере.

Поле 1: $AV, - заголовок сообщения
Поле 2: V2DI, - заголовок сообщения
Поле 3: 1850, - номер трекера
Поле 4: 9772, - серийный номер сообщения
Поле 5: 1328359236, - время UTC UnixTime
Поле 6: 199, - Uptime трекера, сек
Поле 7: 000471CB, - значение указателя flash-памяти на чтение
Поле 8: 000471CB, - значение указателя flash-памяти на запись
Поле 9: 0C000000, - причина последнего перезапуска трекера
Поле 10: *17 - контрольная сумма и признак передачи данных из flash-памяти

Сообщение $AV, V3DI


$AV,V3DI,70000,166,-1,17,00000520,00000520,1C000000,863071010909932,89701012417736343798,*09

Данное СЛУЖЕБНОЕ сообщение содержит в себе диагностическую информацию, предназначенную для диагностики работоспособности 
трекера. Нет необходимости производить разбор данного сообщения на сервере.

Поле 1: $AV, - заголовок сообщения;
Поле 2: V3DI, - заголовок сообщения;
Поле 3: 70000, - номер трекера;
Поле 4: 166, - серийный номер сообщения;
Поле 5: -1, - время UTC UnixTime (-1 - не определено);
Поле 6: 17, - Uptime трекера, сек;
Поле 7: 00000520, - значение указателя flash-памяти на чтение;
Поле 8: 00000520, - значение указателя flash-памяти на запись;
Поле 9: 1C000000, - причина последнего перезапуска трекера;
Поле 10: 863071010909932, - IMEI GSM-модуля трекера;
Поле 11: 89701012417736343798, - ICCID SIM-карты в трекере;
Поле 12: *09 - контрольная сумма и признак передачи данных из flash-памяти

Сообщение $GSMCONT,GPRSACK


$GSMCONT,GPRSACK,70003,14848,"+RESP:FCCS,3,60,120,",,SF*29

Данное сообщение отправляется трекером в ответ на команду отправленную через GPRS. Оно показывает, что отправленная команда принята и показывает статус ее выполнения.

Поле 1: $GSMCONT - заголовок сообщения
Поле 2: GPRSACK - заголовок сообщения
Поле 3: 70003 - номер трекера
Поле 4: 14848 - уникальный номер команды, отправленный вместе с командой по GPRS
Поле 5: "+RESP:FCCS,3,60,120," - отчет о выполнении команды;
Поле 6: пусто - не используется

Опциональное поле 7 - SF, признак того, что команда отправлена из flash-памяти


Команды отправляемые трекеру

Команды могут быть переданы трекеру тремя различными способами:

1. При GPRS соединении;

2. При помощи SMS сообщений;

3. Непосредственно при подключении трекера терминальным кабелем к компьютеру;

Основная статья: Удаленное управление трекером '''GPS-LITE''' с помощью СМС-команд

Расшифровка данных температурного датчика

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


sub get_temp() {
  my $t_sr=@_[0];
  if ($t_sr>32768) {
    $t_sr=-1*(65536-$t_sr);
  }
  $t_sr/2; # Для датчков верии DS18B20 необходимо делить на 16
}

print &get_temp(2)."\n";
print &get_temp(1)."\n";
print &get_temp(0)."\n";
print &get_temp(65535)."\n";
print &get_temp(65534)."\n";
print &get_temp(65533)."\n";
print &get_temp(65532)."\n";
print &get_temp(0xffff)."\n";
print &get_temp(0xffce)."\n";
print &get_temp(0xff92)."\n";
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты