Параметры AVL + описание
| id свойства в пакете | Название свойства | Байты | Тип | Диапазон значений (мин – макс) | Множитель | Единица измерения | Описание |
|---|---|---|---|---|---|---|---|
| 50(0032) | статус модема (AT) | 1 | без знака (unsigned) | 0 – 1 | – | – | 0 – не отвечает 1 – доступен |
| 51(0033) | Готовность SIM-карты (AT+CPIN?) | 1 | без знака (unsigned) | 0 – 4 | – | – | 0 – готова 1 – ожидает ввода PIN 2 – ожидает ввода PUK 3 – PIN защита от кражи 4 – PUK зажита от кражи 5 – ERROR 17 6 – ERROR 18 |
| 52(0034) | GSM-сигнал, уровень (AT+CSQ) | 1 | без знака (unsigned) | 0 – 5 | – | – | 0 – нет сигнала 1-5 значение шкалы |
| 53(0035) | Регистрация в сети (AT+CREG?) | 1 | без знака (unsigned) | 0 – 1 | – | – | 0 – нет регистрации 1 – есть регистрация |
| 54(0036) | |||||||
| 55(0037) | GPRS статус (AT+CGATT?) | 1 | без знака (unsigned) | 0 – 1 | – | – | 0 – не подключен 1 – подключен |
| 56(0038) | Используемый GSM-оператор (AT+COPS?) | 4 или 2 ? | без знака (unsigned) | 25099 – билайн 4294967295 – из телтоники | – | – | Код используемого GSM оператора |
| 60(003C) | Напряжение батареи | 2 | без знака (unsigned) | 0 – 65535 | 0.001 | Вольт | Напряжение |
| 61(003D) | Уровень заряда батареи | 1 | без знака (unsigned) | 1 – 100 | – | % | Уровень емкости аккумулятора |
| 62(003E) | Статус зарядки | 1 | без знака (unsigned) | 0 – 1 | – | – | 0 – не заряжается 1 – заряжается |
id_51 – Готовность SIM-карты (AT+CPIN?).
Значения от модуля:
– READY – не ожидает ввода пароля
– SIM PIN – ожидает ввода PIN-кода SIM-карты
– SIM PUK – ожидает ввода PUK-кода SIM-карты
– PH_SIM PIN – ожидает подключения телефона к SIM-карте (защита от кражи)
– PH_SIM PUK – ожидает ввода PUK SIM-карты (защита от кражи)
– SIM PIN2 – PIN2, например, для редактирования книги FDN, возможен только в том случае, если предыдущая команда была подтверждена с +CME ERROR: 17
– SIM PUK2 – Возможен только в том случае, если предыдущая команда была подтверждена с ошибкой +CME ERROR: 18
Ответ приводим к значениям от 0 до 6:
– READY – 0
– SIM PIN – 1
– SIM PUK – 2
– PH_SIM PIN – 3
– PH_SIM PUK – 4
– SIM PIN2 – 5
– SIM PUK2 – 6
id_52 – GSM-сигнал (AT+CSQ).
Значения от модуля:
– 0 и 99 – нет сигнала
– 1…31 – уровень сигнала
Уровень сигнала приводим к шкале от 1 до 5:
– 1…6 – 1
– 7…12 – 2
– 13…18 – 3
– 19…24 – 4
– 25…31 – 5
и
– 0 или 99 – 0
id_53 – Регистрация в сети (AT+CREG?).
Значения от модуля принимают две переменные вида n,n:
– 0,0 или 1,0 или 1,2 и т.д., есть разные вариации
– 0,1 – есть регистрация
То есть, если не 0,1 – то нет регистрации в сети, если 0,1 – то есть
Ответ приводим к значению 0 или 1:
– 0,1 – 1 (есть регистрация)
– другие варианты – 0 (нет регистрации)
Формула пакета
Используем кодек телтоники – Codec 8 Extended
preamble = 00 00 00 00 – 4 байта (Преамбула — пакет начинается с четырех нулевых байтов.)
data_lenth = ? – 4 байта (Длина поля данных — размер рассчитывается от идентификатора кодека до номера данных 2.). Пример: data_lenth = 00 00 01 c1
id_codec = 8e – 1 байт (Идентификатор кодека — в Codec8 Extended он всегда равен 0x8E.)
num_data_1 = 01 – 1 байт (Номер данных 1 — число, определяющее количество записей в пакете, то есть Данные AVL, но не количество параметров, а именно самих сборок Данные AVL). У нас он будет всегда 01 (пока что).
avl_data = X – x байт (Данные AVL — фактические данные в пакете, то есть параметры которые мы передаём.)
num_data_2 = 01 – 1 байт (Номер данных 2 — число, определяющее количество записей в пакете. Это число должно быть таким же, как «Номер данных 1».)
crc_16 = ? – 4 байта (CRC-16 — рассчитывается от идентификатора кодека до второго номера данных. CRC (циклический избыточный код) — это код обнаружения ошибок, используемый для обнаружения случайных изменений в данных RAW. Для расчета мы используем
CRC-16/IBM .) Пример: crc_16 = 00 00 41 af
preamble + data_lenth + id_codec + num_data_1 + avl_data + num_data_2 + crc_16
Пример(жирным выделены неизменные переменные, в { } данные avl_data):
00 00 00 00 + 00 00 01 c1 + 8e + 01 + { … } + 01 + 00 00 41 af
Данные AVL
timestamp = ? – 8 байт (Timestamp – разница в миллисекундах между текущим временем и полуночью января 1970 года по Гринвичу (UNIX-время).). Дату и время берем из данных gps строки RMC:
Вид строки: $GPRMC,222819.00,A,5257.27840,N,03600.66493,E,0.039,,211124,,,A*7A
где
gps_date = 211124
gps_time = 222819.00
И приводим через функцию к нужному нам виду: 0000019350d72bb8
priority = 01 – 1 байт (Priority – поле, определяющее приоритет данных AVL. 0 – низкий, 1 – высокий, 2 – паника). Приоритет в телтонике задается в настройках модуля через ПО, для чего он нужен мне не особо понятно, но оставим его и по умолчанию будем указывать 1-высокий. В hex – 01.
GPS Element – информация о местоположении данных AVL (подробнее ниже).
00000000 – Долгота (Longitude)
00000000 – Широта (Latitude)
0000 – Высота (Altitude)
0000 – Угол (Angle)
00 – Спутники (Satellites)
0000 – Скорость (Speed)
IO Element – дополнительная настраиваемая информация с устройства (подробнее ниже).
