УСПД Ресурс:Протокол УСПД Ресурс
Содержание
- 1 Формат сообщений
- 2 Формат секций
- 3 Типы данных
- 4 Секции
- 5 Типы секций
- 5.1 Приветствие серверу (0x7700)
- 5.2 Чтение основных параметров (0xAA00)
- 5.3 Проверка GSM связи (0xAA01)
- 5.4 Запрос ICCID сим-карты (0xAA02)
- 5.5 Команда отправки смс IDENT (0xAA03)
- 5.6 Чтение параметров UART (0xAA10)
- 5.7 Запись параметров UART (0xAA11)
- 5.8 Чтение параметров выходов питания (0xAA20)
- 5.9 Запись параметров Питания ( 0xAA21)
- 5.10 Чтение состояния импульсных входов (0xAA22)
- 5.11 Команда в UART (0xAA30)
- 5.12 Пауза (0xAA40)
- 5.13 Чтение интервала выхода на связь(0xAA50)
- 5.14 Запись интервала выхода на связь(0xAA51)
- 5.15 Чтение настроек сервера (0xBB52)
- 5.16 Запись настроек сервера (0xAA53)
- 5.17 Чтение текущей даты (0xBB54)
- 5.18 Запись текущей даты (0xAA55)
- 5.19 Чтение настроек APN (0xBB56)
- 5.20 Запись настроек APN (0xAA57)
- 5.21 Чтение версии прошивки (0xBB80)
- 5.22 Чтение текущих значений по импульсным каналам (0xCC81)
- 5.23 Запись текущих значений по импульсным каналам (0xCC82)
- 5.24 Чтение архивов значений по каналам (0xСС85)
- 5.25 Очистка архива (0xCC8A)
- 5.26 Описание ошибок - секция ошибки(0x9900)
Формат сообщений
Запросы внешнего устройства и ответы от УСПД представляют собой последовательность байт переменной длины от 12 до 1024. Все сообщения имеют общую структуру, представленную в таблице 1.
| |||||||||||||
|
|
|
|
|
|
|
|
|
|
| |||
| |||||||||||||
|
|
|
|
| |||||||||
|
|
|
|
Таблица 1. Структура сообщений.
SERIAL (4 байта)- серийный номер УСПД
SEQ (2 байта) - идентификатор запросов и ответов в последовательности запросов и ответов в рамках одной сессии. У связного запроса и ответа идентификатор одинаковый.
LEN (2 байта) – длина всего сообщения включая CRC.
SECTIONS – секции данных, содержат в себе всю смысловую нагрузку сообщения – это инструкции и параметры запросов, а так же данные содержащиеся в ответах на эти запросы. В сообщении может быть от одной до нескольких секций. Количество секций в ответе такое же, как в запросе. Формат секции описан ниже.
CRC (2 байта) – контрольная сумма от всего сообщения (SERIAL, SEQ, LEN, SECTIONS) рассчитанная по алгоритму Modbus CRC-16.
Формат секций
Общий формат секции представлен в таблице 2.
| ||||
|
|
|
|
|
| ||||
|
|
|
Таблица 2. Структура секций
TYPE (2 байта) – тип секции.
LEN(2 байта) – длина всей секции (вместе с типом и самой длиной).
DATA (LEN-4 байт) – Данные секции
Типы данных
Целое
Возможные размеры 1,2 и 4 байта. Порядок байт Big Endian.
Строка
В начале строки в двух байтах записывается ее длина, далее идет непосредственно строка. Например, строка “Test” будет представлена следующей последовательностью: 0x00,0x04,0x54,0x65,0x73,0x74
Номер байта |
Описание |
Возможные значения |
0, 1 |
Длина строки(Len) |
0…FFFF |
2 … Len+1 |
Строка |
|
Дата и время
Последовательность из 6 байт
Номер байта |
Описание |
Возможные значения |
0 |
Год |
0 = 2000г … FF = 2255 |
1 |
Месяц |
0x01 - январь.. 0x0C - декабрь |
2 |
День |
0x01..0x1F |
3 |
Час |
0x00..0x17 |
4 |
Минуты |
0x00..0x3B |
5 |
Секунды |
0x00..0x3B |
Интервал времени
В сообщениях используется два типа временных интервалов. Значения в миллисекундах – целое в 4 байта, минутах – целое в 2 байта.
Секции
Секции
В запросе может быть любое количество секций, при условии соблюдения общей длины сообщения. Секции обрабатываются последовательно, следующая секция начинает обрабатываться только после завершения предыдущей. Допускаются любые комбинации секций.
Рассмотрим пример, пусть требуется отправить две команды, одну в RS232, другую в RS485.
Таблица 3. Запрос, стрелкой указан порядок выполнения секций на УСПД
Это можно сделать, выполнив запрос, как на рисунке выше. Секции в запросе применяются по очереди: первой идёт секция с настройками UART для RS 232, затем секция с командой, отправляемыми в RS 232, затем секция с настройками UART для RS 485 и завершает секция с командами для RS 485. Таким образом, в рамках одного запроса ведётся опрос приборов коммутированных на различные выходы.
Соответствие между секциями запросов и секциями ответов
В ответе всегда содержится такое же количество секций как в запросе. Результат обработки N-ой секции в запросе, содержится в N-ой секции ответа. В случае, если выполнение секции завершается ошибкой, в ответе будет содержаться специальная секция с кодом ошибки.
Таблица 4. Соответствие между запросом и ответом на запрос
Типы секций
Типы секций делятся на запросы к УСПД и ответы на эти запросы. Ниже в таблице приведены типы запросов и ответов.
Описание секции |
Запрос – тип секции |
Есть данные в секции запроса |
Ответ – тип секции |
Есть данные в секции ответа |
Возможны коды ошибок |
Приветствие серверу (0x7700) |
|
|
|
|
|
Чтение основных параметров |
|
|
|
|
|
Проверка GSM связи |
|
|
|
|
|
Запрос iccid сим-карты |
|
|
|
|
|
Команда отправки смс IDENT |
|
|
|
|
0x01, 0x02 |
Чтение параметров UART |
|
|
|
|
|
Запись параметров UART |
|
|
|
|
0x01, 0x02 |
Чтение параметров питания |
|
|
|
|
|
Запись параметров питания |
|
|
|
|
0x01, 0x02 |
Чтение состояния импульсных входов |
|
|
|
|
0x01, 0x02 |
Команда в UART |
|
|
|
|
0x03 |
Пауза |
|
|
|
|
0x01,0x02 |
Чтение интервала выхода на связь |
|
|
|
|
|
Запись интервала выхода на связь |
|
|
|
|
0x01, 0x02 |
Чтение настроек сервера |
|
|
|
|
|
Запись настроек сервера |
|
|
|
|
0x01, 0x02 |
Чтение текущей даты |
|
|
|
|
|
Запись текущей даты |
|
|
|
|
0x01, 0x02 |
Чтение настроек apn |
|
|
|
|
|
Запись настроек apn |
|
|
|
|
0x01, 0x02, |
Чтение версии прошивки |
|
|
|
|
|
Загрузка новой прошивки |
|
|
|
|
0x01, 0x02 |
Запуск новой прошивки |
|
|
|
|
0x01, 0x05 |
Чтение текущих значений по импульсным входам |
|
|
|
|
0x01, 0x02 |
Запись текущих значений по импульсным входам |
|
|
|
|
0x01, 0x02 |
Чтение архивов значений по импульсным входам |
|
|
|
|
0x01, 0x02 |
Очистка архива значений по импульсным входам |
|
|
|
|
0x01, 0x02 |
Завершение сеанса |
|
|
|
|
|
Ошибка на запрос |
|
|
|
|
|
Приветствие серверу (0x7700)
Секция «Приветствие»(0x7700) отправляется на сервер сразу после подключения, в дальнейшем обмен идет в обычном режиме, когда сервер отправляет запрос, а УСПД возвращает на него ответ.
| |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||
|
|
|
|
|
| ||||||
|
|
|
|
|
|
|
|
|
|
|
|
Пример секции «Приветствия», Текущая дата 6 июня 2015 года, 9 часов 0 минут 1 секунда, Версия 1
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
|
Current Date |
|
|
|
Version |
|
|
Чтение основных параметров (0xAA00)
Запрос (0xAA00)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB00)
| |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||
|
|
|
|
|
| ||||||
|
|
|
|
|
|
|
|
|
|
|
|
Пример секции «Основных параметров», Текущая дата 6 июня 2005 года, 9 часов 0 минут 1 секунда, Версия 1
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
|
Current Date |
|
|
|
Version |
|
|
Подробно о формате типа данных «Дата и время» смотрите в разделе «Типы данных».
Проверка GSM связи (0xAA01)
Запрос (0xAA01)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB01)
| ||||||||||||||
|
|
|
|
|
|
| ||||||||
|
|
|
| |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ответ «Проверка GSM связи»: уровень сигнала = 87%, имя мобильной сети = «MTS-RUS»
|
|
|
|
|
Level signal |
|
|
|
Mobile network |
|
|
Подробно о формате типа данных «Дата и время» смотрите в разделе «Типы данных».
Запрос ICCID сим-карты (0xAA02)
Запрос (0xAA02)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB02)
| ||||
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
|
ICCID |
|
|
Команда отправки смс IDENT (0xAA03)
Запрос (0xAA03)
| |||||
|
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
Ответ (0xAA03)
| |||
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
|
TEL |
|
|
|
PREFIX |
|
|
В результате выполнения данной команды УСПД отправит специальное смс на номер указанный в запросе, добавив в начало строку, указанную в PREFIX.
Сообщение имеет следующий формат: <PREFIX>IDENT;<SERIAL>;<ICCID>;<NET>
|
|
|
|
|
SERIAL |
|
|
|
ICCID |
|
|
|
NET |
|
|
Чтение параметров UART (0xAA10)
Запрос (0xAA10)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ «Чтение параметров UART» (0xBB10)
| ||||||||||||
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
| ||||||||||
|
|
|
|
|
|
|
| |||||
|
|
|
|
|
|
|
|
|
|
|
|
Структура секции ответа параметров UART, (RS485/9600/8N1/1000мс/2000мс)
Порядок в секции |
|
Параметр UART |
Длина в байтах |
Возможные значения |
|
Type |
Тип UART |
|
0x00 – RS485, 0x01 – RS232 |
|
Speed |
Скорость передачи |
|
Целое, кол-во бод |
|
Data bits |
Кол-во бит данных |
|
Целое, кол-во бит |
|
Stop bits |
Кол-во стоповых бит |
|
0x00 – 1бит, 0x01 – 1.5 бит, 0x02 – 2бита |
|
Parity |
Чётность |
|
0x00 – No, 0x01 – even, 0x02 – odd, 0x03 – mark, 0x04 - space |
|
Flag Delay |
Тип чтения данных из UART |
|
0x00 - по концу посылки, 0x01 – по задержке |
|
Read Delay |
Время чтения ответа из UART. Применяется при Flag Delay = 1. |
|
|
|
Read Timeout |
Время ожидания ответа из UART. Применяется при Flag Delay = 0. |
|
|
Flag Delay равен 0, чтение данных из UART будет произведено сразу после получения конца посылки в UART. Если данные не будут получены в течении Read Timeout, будет возвращена ошибка.
Flag Delay равен 1, в ответе будет возвращено всё, что будет получено в течении Read Delay. Если данных не будет, будет возвращён пустой ответ.
Data bits – количество бит данных без учёта бита чётности (начиная с прошивки v.204). Например для 7E1: Data bits – 7, Parity – 1; 8M1: Data bits – 8, Parity – 3.
Запись параметров UART (0xAA11)
Запрос (0xBB11)
| ||||||||||||
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
| ||||||||||
|
|
|
|
|
|
|
| |||||
|
|
|
|
|
|
|
|
|
|
|
|
Структура секции настроек UART, на примере (RS485/9600/8N1/2000мс/10000мс)
Ответ (0xBB11)
| |||
|
|
|
|
|
| ||
|
|
|
|
Настройки из секции записи настроек UART 0xAA11 применяется на все последующие секции, а так же на секции последующих запросов, и действуют до тех пор, пока при разборе очередного запроса не будет обработана новая секция записи настроек UART.
Чтение параметров выходов питания (0xAA20)
Запрос (0xAA20)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB20)
| ||||||||
|
|
|
|
|
|
|
| |
|
|
| ||||||
|
|
|
| |||||
|
|
|
|
|
|
|
|
Структура ответа, (1,2,4 – выходы питания включены, 3 - отключен)
Порядок в секции |
Параметр Питания |
Длина в байтах |
Возможные значения |
|
Питание выход №1 |
|
0x00 – выключен, 0x01 – включен |
|
Питание выход №2 |
|
0x00 – выключен, 0x01 – включен |
|
Питание выход №3 |
|
0x00 – выключен, 0x01 – включен |
|
Питание выход №4 |
|
0x00 – выключен, 0x01 – включен |
Запись параметров Питания ( 0xAA21)
Запрос ( 0xAA21)
| ||||||||
|
|
|
|
|
|
|
| |
|
|
| ||||||
|
|
|
| |||||
|
|
|
|
|
|
|
|
Структура секции запроса, (1,2,4 – выходы питания включены, 3 - отключен)
Ответ (0xBB21)
| |||
|
|
|
|
|
| ||
|
|
|
|
Чтение состояния импульсных входов (0xAA22)
Запрос (0xAA20)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB20)
| ||||||||
|
|
|
|
|
|
|
| |
|
|
| ||||||
|
|
|
| |||||
|
|
|
|
|
|
|
|
Структура ответа, (1 вход низкий уровень, 2,3,4 входы - высокий)
Порядок в секции |
Параметр |
Длина в байтах |
Возможные значения |
|
Состояние входа №1 |
|
0x00 – низкий уровень(замкнут), 0x01 – высокий уровень(разомкнут) |
|
Состояние входа №2 |
|
0x00 – низкий уровень(замкнут), 0x01 – высокий уровень(разомкнут) |
|
Состояние входа №3 |
|
0x00 – низкий уровень(замкнут), 0x01 – высокий уровень(разомкнут) |
|
Состояние входа №4 |
|
0x00 – низкий уровень(замкнут), 0x01 – высокий уровень(разомкнут) |
Команда в UART (0xAA30)
Запрос ( 0xAA30)
| ||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Пример секции команды в UART, содержащий команду чтения параметров из флэш памяти теплосчётчика СПТ 941
Ответ (0xBB30)
| |||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Пример секции ответа СПТ 941 в UART на команду выше
Порядок в секции |
Параметры команды в UART/ ответа из UART |
Длина в байтах |
Возможные значения |
|
Данные |
|
|
Данные из поля COMMAND_DATA будут переданы в UART, в соответствии с текущими настройками UART, все что будет получено из UART будет отправлено в ответе. Окончание приема ответа определяется в зависимости от состояния настройки Flag Delay либо при детектировании состояния idle(конец посылки), либо по истечению интервала времени Read Delay.
В настройках UART есть таймаут на чтение из UART. Если во время чтения ответа из UART этот таймаут истёк, и ответные данные пусты, то ответная секция на секцию команды в UART будет секция ошибки «Истечение таймаута на чтение из UART» (код 0x03).
Пауза (0xAA40)
Запрос (0xAA40)
| |||||||
|
|
|
|
|
|
|
|
|
|
| |||||
|
|
|
|
|
|
|
|
Запрос.Пауза 1500 миллисекунд
Ответ (0xBB40)
| |||
|
|
|
|
|
| ||
|
|
|
|
Порядок в секции |
Параметры паузы |
Длина в байтах |
Возможные значения |
|
Delay |
|
|
Задаёт паузу, которую выдерживает УСПД перед выполнением следующей секции.
Чтение интервала выхода на связь(0xAA50)
Запрос (0xAA50)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB50)
| |||||
|
|
|
|
|
|
|
|
| |||
|
|
|
|
|
|
Выход на связь каждые 30 минут.
Порядок в секции |
Параметры настроек опроса |
Длина в байтах |
Возможные значения |
|
Connection interval |
|
|
Connection interval - настраивает периодичность выхода УСПД на связь с сервером.
Запись интервала выхода на связь(0xAA51)
Запрос (0xAA51)
| |||||
|
|
|
|
|
|
|
|
| |||
|
|
|
|
|
|
Выход на связь каждые 30 минут.
Ответ (0xBB51)
| |||
|
|
|
|
|
| ||
|
|
|
|
Чтение настроек сервера (0xBB52)
Запрос (0xAA52)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB52)
| ||||||
|
|
|
|
|
|
|
|
|
|
| |||
|
|
|
|
|
|
00,0B,31,39,32,2E,31,36,38,2E,30,2E,31 |
Пример секции «Чтение настроек сервера» Настройки: порт = 7777, сервер = 192.168.0.1
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
|
Port |
|
|
|
Host |
|
|
Запись настроек сервера (0xAA53)
Запрос (0xAA52)
| ||||||
|
|
|
|
|
|
|
|
|
|
| |||
|
|
|
|
|
|
00,0B,31,39,32,2E,31,36,38,2E,30,2E,31 |
Пример секции «Записи настроек сервера» Настройки: порт = 7777, сервер = 192.168.0.1
Ответ (0xBB52)
| |||
|
|
|
|
|
| ||
|
|
|
|
Чтение текущей даты (0xBB54)
Запрос (0xAA54)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB54)
| |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
Пример секции «Записи текущей даты» 29 мая 2015 года 13 часов 8 мин 1 сек
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
|
DATE |
|
|
Запись текущей даты (0xAA55)
Запрос (0xAA55)
| |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
Пример секции «Записи текущей даты» 29 мая 2015 года 13 часов 8 мин 1 сек
Ответ (0xBB55)
| |||
|
|
|
|
|
| ||
|
|
|
|
Чтение настроек APN (0xBB56)
Запрос (0xAA56)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB56)
| ||||||
|
|
|
|
| ||
|
|
|
|
| ||
|
|
|
|
|
|
|
Пример секции «запрос настроек APN» для МТС. APN = internet, username = pas, password = pas
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
|
APN |
|
|
|
Username |
|
|
|
Password |
|
|
Запись настроек APN (0xAA57)
Запрос (0xAA57)
| ||||||
|
|
|
|
| ||
|
|
|
|
| ||
|
|
|
|
|
|
|
Пример секции «Запись настроек APN» для МТС. APN = internet, username = pas, password = pas
Ответ (0xBB57)
| |||
|
|
|
|
|
| ||
|
|
|
|
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
|
APN |
|
|
|
Username |
|
|
|
Password |
|
|
Чтение версии прошивки (0xBB80)
Запрос (0xAA80)
| |||
|
|
|
|
|
| ||
|
|
|
|
Ответ (0xBB80)
| |||||
|
|
|
|
|
|
|
|
| |||
|
|
|
|
|
|
Пример секции ответа «Чтение версии прошивки», версия № 101
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
Мин. версия протокола |
|
Version |
|
|
|
Чтение текущих значений по импульсным каналам (0xCC81)
Запрос (0xСС81)
| ||||
|
|
|
|
|
|
|
| ||
|
|
|
|
|
Запрос текущего значения по каналу №1
Ответ (0xDD81)
| ||||
|
|
|
|
|
|
|
| ||
|
|
|
|
|
По импульсному входу №1 насчитано 15867 импульсов
Порядок в секции |
Параметры настроек опроса |
Длина в байтах |
Возможные значения |
|
CHANNEL |
|
|
|
CHANNEL_VALUE |
|
|
*При запросе текущих значений по нулевому каналу возвращается массив значений по всем каналам.
Запрос (0xСС81)
| ||||
|
|
|
|
|
|
|
| ||
|
|
|
|
|
Запрос текущих значений по всем каналам
Ответ (0xDD81)
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
Ответ на запрос по всем каналам в ответе 4 значения текущих по всем каналам по порядку.
Запись текущих значений по импульсным каналам (0xCC82)
Запрос (0xCC82)
| |||||
|
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
Запись в импульсный вход №2 значения 0
Ответ (0xDD82)
| |||
|
|
|
|
|
| ||
|
|
|
|
Чтение архивов значений по каналам (0xСС85)
Запрос (0xCC85)
| ||||||||
|
|
|
|
|
|
|
| |
|
|
|
|
|
| |||
|
|
|
|
|
|
|
|
Запрос 50 архивных часовых значений по каналу №4
Ответ (0xDD85)
| ||||
|
|
|
|
|
|
|
| ||
|
|
|
|
|
Порядок в секции |
Параметры паузы |
Длина в байтах |
Возможные значения |
|
CHANNEL |
|
|
|
TYPE_ARH |
|
|
|
LEN_ARH |
|
|
|
DATE_START |
|
|
|
CH_ARH[ LEN_ARH ] |
|
|
CH_ARH[ LEN_ARH ] - Первое значение соответствует начальной дате запрашиваемого интервала. Например, при запросе суточного архива от 3-го февраля, первая запись будет соответствовать значению на начало суток. В случае отсутствия архивной записи возвращаемое значение будет равно 0xFFFFFFFF.
*При запросе архивных значений по нулевому каналу возвращается массив значений по всем каналам. Значения в массиве располагаются по порядку, сначала все значения по первому каналу, потом по второму и т.д. Количество значений по каждому каналу передаётся в запросе в параметре LEN_ARH, максимальное количество 5.
Запрос (0xCC85)
| ||||||||
|
|
|
|
|
|
|
| |
|
|
|
|
|
| |||
|
|
|
|
|
|
|
|
Ответ (0xDD85)
| |||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
Ответ на запрос 4 архивных значений по каждому каналу.
Очистка архива (0xCC8A)
Запрос (0xCC8A)
| ||||
|
|
|
|
|
|
|
| ||
|
|
|
|
|
Ответ (0xDD8A)
| |||
|
|
|
|
|
| ||
|
|
|
|
Порядок в секции |
Параметры паузы |
Длина в байтах |
Возможные значения |
|
|
|
|
Описание ошибок - секция ошибки(0x9900)
В следующих ситуациях ошибки не создаются:
- Пустые секции(0xAA10, 0xAA20 и т.д.) не проверяются на наличие данных, и если даже содержат данные - ошибка не создаётся.
- Если УСПД принял секцию длиннее, чем все известные ему параметры по протоколу, ошибка не создаётся (возможно, версия протокола УСПД отстаёт от серверной).
Ошибки создаются:
- Если тип секции неизвестен (код ошибки 0x06).
- Если длина секции меньше, то есть не хватает параметров (неверный формат - код ошибки 0x01).
- Если используется недопустимое значение параметра (код ошибки 0x02).
Если при выполнении секции запроса, возникла ошибка, то ответная секция будет секцией ошибки с типом 0x9900.
| |||||||
|
|
|
|
|
|
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
Пример секции ошибки, с кодом 0x02, неверное значение параметра, расположение параметра в секции запроса = 7
Параметры в секции ошибок
Порядок в секции |
Параметры настроек сервера |
Длина в байтах |
Возможные значения |
|
Code |
|
|
|
Param |
|
|
Коды ошибок и информация в параметрах
Код ошибки |
Название ошибки |
Суть параметра |
|
Неверный формат секции |
Нет |
|
Неверное значение параметра |
Индекс расположения параметра в секции |
|
Истечение таймаута на чтение из UART |
Нет |
|
Отсутствует GSM модуль |
Нет |
|
CRC новой прошивки не совпадает |
Нет |
|
Неизвестный тип секций |
Нет |