6. Мониторинг транспортных средств: NPH_SRV_NAVDATA
Навигационные данные передаются в типе передачи NPH_SRV_NAVDATА.
Существует два типа пакетов:
- NPH_SND_REALTIME - передача навигационных данных в реальном времени;
- NPH_SND_HISTORY - передача навигационных данных, сохраненных в памяти устройства ("ретроспективы").
Передача навигационных данных, сохраненных в памяти устройства, предназначена для случаев нарушения соединения с сотовой сетью. При потере соединения клиент записывает данные во внутренний буфер. При восстановлении соединения клиент передает данные из внутреннего буфера. На стороне сервера при обработке данных необходимо различать случаи передачи данных в реальном времени и из внутреннего буфера. Для этого введены отдельные типы пакетов для передачи данных в режиме реального времени из внутренней памяти.
Поле
|
Длина
|
Тип
|
Описание
|
Может ли данное поле (значение) изменяться
|
<Type>
|
1
|
unsigned int8
|
Тип ячейки (определяет длину и содержимое).
Различаются следующие типы:
0 - основные навигационные данные;
2 - данные от внутренних портов;
8 - данные от датчиков уровня продукта в отсеках.
|
Да
|
<Number>
|
1
|
unsigned int8
|
Определяет навигационный приемник: N=0 - GPS приемник, N=1 - GLONASS приемник. Если Type = 13, данное поле определяет номер отсека, к которому подключен уровнемер.
|
Да
|
<Data>
|
var
|
char[]
|
Данные от датчика.
Структура определяется полем
|
Да
|
Пакеты передачи навигационных данных NPH_SND_HISTORY и NPH_SND_REALTIME имеют следующий формат поля :
Структура поля состоит из ячеек, каждая из которых имеет поля
Ячейки следуют строго по увеличению поля
Ячейка 2
Ячейка 1
Data
N байт
Number=1
1 байт
Type=2
1 байт
Data
N байт
Number=1
1 байт
Type=0
1 байт
Ячейка передачи основных навигационных данных (Type=0, N=1) Дополнительные навигационные данные Type=1, N=1.
Поле
|
Длина
|
Тип
|
Описание
|
Может ли данное поле (значение) изменяться
|
20
|
struct
|
|||
<time_stamp>
|
4
|
unsigned int32
|
Содержит значение реального времени
|
Да
|
<Iongitude>
|
4
|
unsigned int32
|
Содержит долготу в градусах, умноженную на 10 000 000
|
Да
|
<latitude>
|
4
|
unsigned int32
|
Содержит широту в градусах, умноженную на 10 000 000
|
Да
|
<extra_dop>
|
1
|
unsigned int8
|
bit7 - достоверность навигационных данных (1 - достоверны, 0 - нет); bit6 - полушарие долготы (1 - E, 0 - W); bit5 - полушарие широты (1 - N, 0 - S); bit4 - флаг работы от встроенного аккумулятора; bit3 - флаг первоначального включения; bit2 - состояние SOS (1 - SOS, 0 - нет SOS) bit1 - флаг тревожной информации (один из параметров находится в диапазоне тревоги)
|
Да.
Примечание: в настоящей версии bit2 не должен устанавливаться
|
<bat_voltage>
|
1
|
unsigned int8
|
Напряжение батареи, 1 бит = 20 мВ
|
Да
|
<track>
|
2
|
unsigned int16
|
Пройденный путь, м
|
Да
|
<altitude>
|
2
|
signed int16
|
Высота над уровнем моря в метрах (-18000 - +18000)
|
Да
|
<nsat>
|
1
|
unsigned int8
|
Количество видимых спутников
|
Да
|
<pdop>
|
1
|
unsigned int8
|
PDOP - Снижение точности по местоположению. Термин, использующийся в области систем глобального позиционирования для параметрического описания геометрического взаиморасположения спутников относительно антенны приемника. Этот параметр должен передаваться на сервер для дальнейшего использования
|
Да
|
Данные от внутренних датчиков Type=2, N=1
Поле
|
Длина
|
Тип
|
Описание
|
Может ли данное поле (значение) изменяться
|
24
|
struct
|
|||
<an_in0>
|
2
|
unsigned int 16
|
Значение 0 аналогового входа в 16 битном формате
|
Да
|
<an_in1>
|
2
|
unsigned int 16
|
Значение 1 аналогового входа в 16 битном формате
|
Да
|
<an_in2>
|
2
|
unsigned int 16
|
Значение 2 аналогового входа в 16 битном формате
|
Да
|
<an_in3>
|
2
|
unsigned int 16
|
Значение 3 аналогового входа в 16 битном формате
|
Да
|
<di_in>
|
1
|
unsigned int8
|
Значение цифровых входов
|
Да
|
<di_out>
|
1
|
unsigned int8
|
Состояние дискретных выходов
|
Да
|
<di0_counter>
|
2
|
unsigned int 16
|
Количество импульсов на дискретном входе 0 с предыдущей нав. отметки
|
Да
|
<di1_counter>
|
2
|
unsigned int 16
|
Количество импульсов на дискретном входе 1 с предыдущей нав. отметки
|
Да
|
<di2_counter>
|
2
|
unsigned int 16
|
Количество импульсов на дискретном входе 2 с предыдущей нав. отметки
|
Да
|
<di3_counter>
|
2
|
unsigned int 16
|
Количество импульсов на дискретном входе 3 с предыдущей нав. отметки
|
Да
|
<odometer>
|
4
|
unsigned int32
|
Длина трека с момента первого включения
|
Да
|
<CSQ>
|
1
|
unsigned int8
|
Сила GSM сигнала
|
Да
|
<GPRS_State>
|
1
|
unsigned int8
|
Состояние GPRS подключения
|
Да
|
16 битное значение полей
Данные от датчиков уровня продукта в отсеке Type=13, N=1..6
Поле
|
Длина
|
Тип
|
Описание
|
Может ли данное поле (значение) изменяться
|
13
|
struct
|
|||
<density>
|
4
|
unsigned int32
|
Плотность продукта
|
Да
|
<temperature>
|
4
|
unsigned int32
|
Температура продукта
|
Да
|
<level>
|
4
|
unsigned int32
|
Уровень продукта
|
Да
|
<Ievel_unit>
|
1
|
uint8
|
Единица измерения:
Декалитры
|
Да
|
Пример пакета навигационных данных NPH_SND_REALTIME
Весь пакет:
7E7E42000200665A02000000000000010065000100990500000000931B4E4FF14
59B1DAF2FED22E0D000000000510000008D0008000200000000000000000000
0000000000000000002FC800001F040000
Заголовок NPL
7E7E 4200 0200 665A 02 00000000 0000
Значение
|
Описание
|
7E7E
|
Сигнатура
|
4200
|
Размер данных (nph + размер массива данных)
|
0200
|
Флаги соединения (2 - проверять crc)
|
665A
|
Crc
|
02
|
Тип пакета (nph)
|
00000000
|
Идентификатор NPL
|
Заголовок NPH
0100 6500 0100 99050000
0100
|
Идентификатор услуги (NPH_SRV_NAVDATA)
|
6500
|
NРH_SND_REALTIME
|
0100
|
Флаг (1 - требуется подтверждение)
|
99050000
|
Идентификатор nph
|
Массив данных
0000931B4E4FF1459B1DAF2FED22E0D000000000510000008D000800020000
000000000000000000000
00000000000002FC800001F040000
Начало данных 2 байта тип и номер ячейки:
0000
0
|
Тип ячейки
|
0
|
Номер ячейки
|
Нулевая ячейка размер 52 байта:
931B4E4FF1459B1DAF2FED22E0D000000000510000008D000800
931B4E4F
|
Значение реального времени inixtime utc
|
F1459B1D
|
Долгота в градусах, умноженная на 10 000 000
|
AF2FED22
|
Широта в градусах, умноженная на 10 000 000
|
E0
|
bit7 - достоверность навигационных данных
(1 - достоверны, 0 - нет);
bit6 - полушарие долготы (1 - E, 0 - W);
bit5 - полушарие широты (1 - N, 0 - S);
bit4 - флаг рабо ты от встроенного аккумулятора;
bit3 - флаг первоначального включения;
bit2 - состояние SOS (1 - SOS, 0 - нет SOS);
bit1 - флаг тревожной информации (один из параметров находится в диапазоне тревоги)
|
D0
|
Напряжение батареи, 1 бит = 20 мВ
|
0000
|
Пройденный путь, м
|
8D00
|
Высота над уровнем моря в метрах (-18000 - +18000)
|
08
|
Количество видимых спутников
|
00
|
PDOP
|
Пример пакета данные отдатчиков уровня продукта Type=13, N=1
Массив данных
0D01931B4E4FF1459B1DAF2FED2201
Начало данных 2 байта тип и номер ячейки:
0D01
13
|
Тип ячейки
|
1
|
Номер ячейки
|
13 ячейка размер 13 байт:
931B4E4FF1459B1DAF2FED2201
931B4E4F
|
Плотность продукта
|
F1459B1D
|
Температура продукта
|
AF2FED22
|
Уровень продукта
|
01
|
Единица измерения: Декалитры
|
Пример пакета NPH_SND_REALTIME
В данном пакете содержатся ячейки следующих типов:
- основные навигационные данные;
- данные от внутренних датчиков;
- данные от датчиков уровня продукта (число отсеков 6).
Весь пакет:
7E7E94000200316E02000000000000010065000100990500000000931B4E4FF14
59B1DAF2FED22E0D000008D0008000200000000000000000000000000000000
0000002FC800001F040D01F5676F3F0000A0418FC2B142010D02F5676F3F000
0A0418FC2B142010D03F5676F3F0000A0418FC2B142010D04F5676F3F0000A
0418FC2B142010D05F5676F3F0000A0418FC2B142010D06F5676F3F0000A04
18FC2B14201
Заголовок NPL
7E7E 9400 0200 316E 02 00000000 0000
Значение
|
Описание
|
7E7E
|
Сигнатура
|
9400
|
Размер данных (nph + размер массива данных)
|
0200
|
Флаги соединения (2 - проверять crc)
|
316E
|
Crc
|
02
|
Тип пакета (nph)
|
00000000
|
Адрес участника соединения
|
0000
|
Идентификатор NPL
|
Заголовок NPH
0100 6500 0100 99050000
0100
|
Идентификатор услуги (NPH_SRV_NAVDATA)
|
6500
|
NPH_SND_REALTIME
|
0100
|
Флаг (1 - требуется подтверждение)
|
99050000
|
Идентификатор nph
|
Массив данных
0000931B4E4FF1459B1DAF2FED22E0D000008D000800020000000000000000
00000000000000000000002FC800001F040D01F5676F3F0000A0418FC2B14201
0D02F5676F3F0000A0418FC2B142010D03F5676F3F0000A0418FC2B142010D
04F5676F3F0000A0418FC2B142010D05F5676F3F0000A0418FC2B142010D06
F5676F3F0000A0418FC1B14201
Начало данных 2 байта тип и номер ячейки:
0000
0
|
Тип ячейки
|
0
|
Номер ячейки
|
Ячейка (Type=0, N=0) размер 20 байт:
931B4E4F F1459B1D AF2FED22 E0 D0 0000 8D00 08 00
931B4E4F
|
Значение реального времени unixtime utc
|
F1459B1D
|
Долгота в градусах, умноженная на 10 000 000
|
AF2FED22
|
Широта в градусах, умноженная на 10 000 000
|
E0
|
bit7 - достоверность навигационных данных
(1 - достоверны, 0 - нет);
bit6 - полушарие долготы (1 - E, 0 - W);
bit5 - полушарие широты (1 - N, 0 - S);
bit4 - флаг работы от встроенного аккумулятора;
bit3 - флаг первоначального включения;
bit2 - состояние SOS (1 - SOS, 0 - нет SOS);
bit1 - флаг тревожной информации (один из параметров находится в диапазоне тревоги)
|
D0
|
Напряжение батареи, 1 бит = 20 мВ
|
0000
|
Пройденный путь, м
|
8D00
|
Высота над уровнем моря в метрах (-18000 - +18000)
|
08
|
Количество видимых спутников
|
00
|
PDOP
|
2 байта тип и номер ячейки:
0200
02
|
Тип ячейки
|
00
|
Номер ячейки
|
Ячейка (Type=2, N=0) размер 24 байта:
0000 0000 0000 0000 00 00 0000 0000 0000 0000 2FC80000 1F 04
0000
|
Значение 0 аналогового входа в 16 битном формате
|
0000
|
Значение 1 аналогового входа в 16 битном формате
|
0000
|
Значение 2 аналогового входа в 16 битном формате
|
0000
|
Значение 3 аналогового входа в 16 битном формате
|
00
|
Значение цифровых входов
|
00
|
Состояние дискретных выходов
|
0000
|
Количество импульсов на дискретном входе 0 с предыдущей нав. отметки
|
0000
|
Количество импульсов на дискретном входе 1 с предыдущей нав. отметки
|
0000
|
Количество импульсов па дискретном входе 2 с предыдущей нав. отметки
|
0000
|
Количество импульсов па дискретном входе 3 с предыдущей нав. отметки
|
2FC80000
|
Длина трека с момента первого включения
|
1F
|
Сила GSM сигнала
|
04
|
Состояние GPRS подключения
|
2 байта тип и номер ячейки:
0D01
13
|
Тип ячейки
|
01
|
Номер ячейки
|
Ячейка (Type=13, N=1) размер 13 байт:
F5676F3F 0000A041 8FC2B142 01
F5676F3F
|
Плотность продукта
|
0000A041
|
Температура продукта
|
8FC2B142
|
Уровень продукта
|
01
|
Единица измерения: Декалитры.
|
2 байта тип и номер ячейки:
0D02
13
|
Тип ячейки
|
02
|
Номер ячейки
|
Ячейка (Type=13, N=2) размер 13 байт:
F5676F3F 0000A041 8FC2B142 01
F5676F3F
|
Плотность продукта
|
0000A041
|
Температура продукта
|
8FC2B142
|
Уровень продукта
|
01
|
Единица измерения: Декалитры.
|
2 байта тип и номер ячейки:
0D03
13
|
Тип ячейки
|
03
|
Номер ячейки
|
Ячейка (Type=13, N=3) размер 13 байт:
F5676F3F 0000A041 8FC2B142 01
F5676F3F
|
Плотность продукта
|
0000A041
|
Температура продукта
|
8FC2B142
|
Уровень продукта
|
01
|
Единица измерения: Декалитры.
|
2 байта тип и номер ячейки:
0D04
13
|
Тип ячейки
|
04
|
Номер ячейки
|
Ячейка (Type=13, N=4) размер 13 байт:
F5676F3F 0000A041 8FC2B142 01
F5676F3F
|
Плотность продукта
|
0000A041
|
Температура продукта
|
8FC2B142
|
Уровень продукта
|
01
|
Единица измерения: Декалитры.
|
2 байта тип и номер ячейки:
0D05
13
|
Тип ячейки
|
05
|
Номер ячейки
|
Ячейка (Type=13, N=5) размер 13 байт:
F5676F3F 0000A041 8FC2B142 01
F5676F3F
|
Плотность продукта
|
0000A041
|
Температура продукта
|
8FC2B142
|
Уровень продукта
|
01
|
Единица измерения: Декалитры.
|
2 байта тип и номер ячейки:
0D06
13
|
Тип ячейки
|
06
|
Номер ячейки
|
Ячейка (Type=13, N=6) размер 13 байт:
F5676F3F 0000A041 8FC2B142 01
F5676F3F
|
Плотность продукта
|
0000A041
|
Температура продукта
|
8FC2B142
|
Уровень продукта
|
01
|
Единица измерения уровня: Декалитры.
|