1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hotdll-iRTU

Клонировать/Скачать
DTU - JSON 格式数据协议解释.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 05:38 942f915

Описание протокола данных в формате JSON

1. Исходный JSON код

{
    "fota": 1,
    "uartReadTime": 25,
    "flow": "",
    "param_ver": "100",
    "pwrmod": "обычный режим",
    "password": "",
    "netReadTime": 0,
    "passon": 1,
    "nolog": "1",
    "plate": 0,
    "reg": 0,
    "convert": 0,
    "uconf": [
        [1, "9600", 8, 2, 0, ""],
        []
    ],
    "conf": [
        ["tcp", "ping", "180", "47.93.118.70", "9009", 1, "", "", "", ""],
        [],
        [],
        [],
        [],
        [],
        []
    ],
    "preset": {
        "number": "13888888888",
        "delay": "10",
        "smsword": "обновление"
    },
    "apn": ["", "", ""],
    "cmds": [
        [],
        []
    ],
    "pins": [],
    "gps": {
        "pio": ["pio3", "pio6", "pio7", "pio13", 0, "1"],
        "fun": [1, "115200", 0, "10", 0, "json", "0", "|", "10", "1"]
    },
    "upprot": ["", "", "", "", "", "", ""],
    "dwprot": ["", "", "", "", "", "", ""],
    "warn": {
        "adc0": [],
        "adc1": [],
        "vbatt": [],
        "gpio": []
    }
}

2. Описание формата JSON

  • Подробное описание полей приведено в руководстве пользователя iRTU V3.2.
  • JSON не поддерживает комментарии; ниже используются комментарии Lua -- для обозначения комментариев.
  • Последовательность ключ-значение в JSON не имеет значения.

1. Внешний уровень:

  • {} — это корневой каталог, соответствует переменной local dtu = {...} в исходном коде.

2. Первый уровень представляет параметры команды "сохранения конфигурации":

  • "fota" — параметр автоматического обновления через интернет.
  • "uartReadTime" — время чтения UART.
  • "flow" — параметр потока.
  • "param_ver" — версия параметров.
  • "pwrmod" — режим питания ("обычный режим").
  • "password" — пароль.
  • "netReadTime" — время чтения сети.
  • "passon" — параметр активации.
  • "nolog" — параметр логирования ("1").
  • "plate" — параметр платы.
  • "reg" — параметр регистрации.
  • "convert" — параметр преобразования.
  • "uconf" — список конфигураций UART.
  • "conf" — список конфигураций TCP/IP.
  • "preset" — предварительно заданные параметры.
  • "apn" — список APN.
  • "cmds" — список команд.
  • "pins" — список пинов.
  • "gps" — параметры GPS.
  • "upprot" — список параметров передачи данных.
  • "dwprot" — список параметров приема данных.
  • "warn" — параметры предупреждений.- Здесь исторически используется старый формат, который не использует массивы или объекты JSON. | Поле | Функция | Допустимые значения | | ------------ | ------------------------ | ------------------------------------------------------------ | | fota | Удалённое обновление | 0 (выключено) | Yöntem 1 (включено) | | uartReadTime | Время ожидания пакета | 25 (число больше 5) | | flow | Настройка потока данных | "" (выключено) | ("") или число | | param_ver | Версия параметров | "100" (строка с числом) | | pwrmod | Режим потребления энергии | "normal" | "energy" | | password | Пароль | "" (или строка букв) | | netReadTime | Время ожидания сети | 0 (число) | | passon | Признак передачи | 0 (не прозрачный) | 1 (прозрачный) | | nolog | Признак логирования | 0 (выключено) | 1 (включено) | | plate | Признак идентификатора | 0 (выключено) | 1 (добавить IMEI в начало пакета) | | reg | Регистрационное сообщение | 0 - не отправлять, 1 - отправить JSON регистрационное сообщение
    {"csq": rssi, "imei": imei, "iccid": iccid, "ver": Version}, 2 - отправить HEX сообщение
    "131234512345", строка может быть пользовательским регистрационным пакетом | | convert | Преобразование HEX | 0 (выключено) | 1 (включено) |

3.Настройка COM-порта- Поле key: uconf

  • Поле value: массив
  • Индекс в массиве представляет COM-порт 1 - 2
    "uconf": [
        [
            1,          -- Идентификатор COM-порта, обратите внимание, что он должен соответствовать индексу в массиве
            "9600",     -- Скорость передачи COM-порта
            8,          -- Количество данных COM-порта
            2,          -- Паритет COM-порта
            0,          -- Количество стоп-бит COM-порта
            ""          -- Номер GPIO 485
        ],
        []           -- Отключение конфигурации COM-порта tworого
    ],

4. Настройка каналов

  • Поле key: conf
  • Поле value: массив
  • Индекс в массиве представляет собой идентификатор канала 1 - 7
  • Порядок полей в массиве, пример с TCP и автоматической регистрацией Alibaba Cloud, остальные поля соответствуют порядку в руководстве пользователя``` "conf": [ [ # Индекс в массиве представляет идентификатор канала "tcp", # Протокол TCP | UDP | MQTT "ping", # Содержание пакета heartbeat "180", # Интервал heartbeat "47.93.118.70", # Адрес HOST "9009", # Порт HOST 1, # Идентификатор COM-порта привязки канала "", # Оставьте это поле пустым "", # Оставьте это поле пустым "", # Интервал автоматического сбора данных "" # Флаг SSL, может быть "ssl" ], [], # Представляет отключение канала [ "aliyun", # Конфигурация облачной платформы, например: "aliyun" "auto", # Автоматическая регистрация 300, # Время жизни MQTT 1800, # Интервал автоматического сбора данных "cn-shanghai", # Код региона Alibaba Cloud "ProductKey:", # Ключ проекта Alibaba Cloud "AccessKey ID:",# Ключ доступа Alibaba Cloud "Access Key Secret:", # Секрет ключа доступа Alibaba Cloud "plus", # Тип продукта Alibaba Cloud (только продвинутый) 1, # MQTT CleanSession 0, # MQTT QoS 1, # Идентификатор COM-порта привязки канала "", # Тема подписки, поддерживает несколько тем, см. «Руководство пользователя iRTU» "" # Тема публикации, поддерживает несколько тем, см. «Руководство пользователя iRTU» ], [], [], [], [] ],

- Поле `key`: `preset`
- Поле `value`: объект
- Соответствует разделу «Предварительно установленная информация» в руководстве пользователя iRTU
"preset": {
    "number": "13999999999", -- Белый список номеров телефонов, разрешённых для входящих и исходящих вызовов
    "delay": "10",           -- Длительность звонка
    "smsword": "update"      -- Строка определения параметров обновления SMS
},

### 6. Установка APN

- Поле `key`: `apn`
- Поле `value`: массив
- Соответствует разделу «Установка APN» в руководстве пользователя iRTU
- Обратите внимание: эта команда предназначена только для случаев, когда конфигурация и использование осуществляются с использованием разных SIM-карт

"apn": ["", "", ""],


### 7. Автоматическое сбор данных задач

- Поле `key`: `cmds`
- Поле `value`: массив
- Соответствует автоматическим сбор данным задачам в руководстве пользователя iRTU
- Внимание: этот командный вызов следует использовать вместе с автоматическими сбор данными задачами каналов.

```markdown
"cmds": [
	[
		"100",   # Интервал между отправками команд сбора данных (не путай с интервалом сбора данных канала)
        "11 22 33 44 55 66 77 88 ",  # Команда сбора данных для COM порта 1 (будет автоматически преобразовано в двоичное число)
        "11 22 33 44 55 66 77 88 "   # То же самое
    ],
	[]         # Отключение автоматического сбора данных для COM порта 2
],
```### 8. Настройка GPIO устройств IRTU

- Изменение этой настройки не рекомендуется, если это не требуется.

- Поле `key`: `pins`
- Поле `value`: массив

  Незаполненный случай:

"pins": [],


Заполненный случай:

"pins":[ "pio2", # GPIO сетевого индикатора "pio4", # GPIO уведомления после подключения к серверу "pio4" # GPIO для сброса параметров DTU ],


### 9. ГЛОНАСС/ГПС часть

- Поле `key`: `gps`
- Поле `value`: объект
- Настройка ГЛОНАСС/ГПС сложна, особенно различие скорости передачи данных Air800 и Air530, настоятельно рекомендуется прочитать руководство и видео прежде чем выполнять настройку.
"gps": {
	"pio": ["pio3", "pio6", "pio7", "pio13", 0, "1"],
	"fun": [1, "115200", 0, "10", 0, "json", "0", "|", "10", "1"]
},

### 10. Шаблоны потока данных

- Поле `key`: `upprot`
- Поле `value`: массив, индекс представляет собой каналы от 1 до 7
- Поле `key`: `dwprot`
- Поле `value`: массив, индекс представляет собой каналы от 1 до 7
- Шаблоны потока данных используются для конвертации протоколов сообщений, например, для преобразования Modbus в JSON вверх по сети и JSON в Modbus вниз по сети.
- Шаблоны потока данных реализуются с помощью скриптов Lua, поэтому все они представлены в виде строк.
- Внимание: при использовании методов сериализации JSON данные будут автоматически сериализованы, если вы собираете строки самостоятельно, пожалуйста, учтите необходимость сериализации строк.
"upprot": ["", "", "", "", "", "", ""],
"dwprot": ["", "", "", "", "", "", ""],

![](C:\Users\hotdll\AppData\Roaming\Typora\typora-user-images\1589279932662.png)- Поле key: warn
- Поле value: объект```
	"warn": {
		"adc0": [
					1, 				-- Включить предупреждение о недостаточном напряжении
					"1000", 	 	-- Нижний порог недостаточного напряжения 1000 мВ
					1, 			 	-- Включить предупреждение о превышении напряжения
					"3000", 	 	-- Верхний порог предупреждения о превышении напряжения 3000 мВ
					"300", 		 	-- Разница напряжения при срабатывании предупреждения (чтобы предотвратить повторное срабатывание при близости к границе)
					"Предупреждение ADC0!",  -- Текст предупреждения
					"1", 			-- ID канала отправки предупреждения в сеть
					"10", 			-- Частота проверки
					"100", 			-- Частота отправки предупреждения (чтобы предотвратить постоянную отправку при отсутствии контакта)
					1, 				-- Включить отправку предупреждения через Интернет
					1, 				-- Включить отправку предупреждения через SMS
					0                -- Отключение отправки предупреждения через телефон
				],
		"adc1": [],
		"vbatt": [],
		"gpio": [
			[
				"pio7", 			-- GPIO кнопки
				 1, 				-- Включить предупреждение при нажатии (опускание края сигнала)
				 0, 				-- Отключение предупреждения при отпускании (подъём края сигнала)
				 "GPIO 7 - кнопка нажата!", -- Текст предупреждения
				 "1", 				-- ID канала отправки предупреждения в сеть
				 1, 				-- Включить отправку предупреждения в сеть
				 0, 				-- Отключение отправки предупреждения через SMS
				 0					-- Отключение отправки предупреждения через телефон
			]
		]
	}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hotdll-iRTU.git
git@api.gitlife.ru:oschina-mirror/hotdll-iRTU.git
oschina-mirror
hotdll-iRTU
hotdll-iRTU
master