1 Протокол работы с деревом конфигурации микроконтроллеров
Protocol for working with the microcontroller configuration tree (MCT-протокол)
1.1 Получить количество узлов конфигурации (0x01)
Формат запроса
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFECA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина запроса (1 байт) | Uint8 | 1 |
| Команда (0x01) | Uint8 | 1 |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
Формат ответа
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFDCA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина ответа (2 байт) | Uint8 | 1 |
| Команда (0x01) | Uint8 | 1 |
| Количество узлов конфигурации (начиная с нуля) | Uint8 | 1 |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
1.2 Получить описание узла конфигурации (0x02)
Формат запроса
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFECA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина запроса (2 байт) | Uint8 | 1 |
| Команда (0x02) | Uint8 | 1 |
| Номер узла конфигурации (начиная с нуля) | Uint8 | 1 |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
Формат ответа
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFDCA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина ответа | Uint8 | 1 |
| Команда (0x02) | Uint8 | 1 |
| Номер узла конфигурации (начиная с нуля) | Uint8 | 1 |
| Номер узла родителя (начиная с нуля) | Uint8 | 1 |
| Количество переменных | Uint8 | 1 |
| Имя узла | Char[] | N |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
1.3 Получить описание переменной узла конфигурации (0x03)
Формат запроса
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFECA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина запроса (3 байта) | Uint8 | 1 |
| Команда (0x03) | Uint8 | 1 |
| Номер узла (начиная с нуля) | Uint8 | 1 |
| Номер переменной (начиная с нуля) | Uint8 | 1 |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
Формат ответа
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFDCA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина ответа | Uint8 | 1 |
| Команда (0x03) (3 младших разряда) | Uint8 | 1 |
| Номер узла (начиная с нуля) | Uint8 | 1 |
| Номер переменной (начиная с нуля) | Uint8 | 1 |
| Свойства переменной | Uint8 | 1 |
| Максимальная длина переменной | Uint8 | 1 |
| Имя переменной | Char[] | N |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
Свойства переменной
| Биты | Описание |
| 0..2 | Тип переменной (0 – char, 1 –int, 2 – uint, 3 – bool, 4 – float, 5 – hex, 7 – time) |
| 4 | 0 — WR (запись и чтение), 1 — R (Только для чтения) |
1.4 Прочитать значения переменных узла конфигурации (0x04)
Формат запроса
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFECA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина запроса (4 байта) | Uint8 | 1 |
| Команда (0x04) | Uint8 | 1 |
| Номер узла | Uint8 | 1 |
| Номер первой переменной (начиная с нуля) | Uint8 | 1 |
| Количество переменных (N*) | Uint8 | 1 |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
Формат ответа
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFDCA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина ответа | Uint8 | 1 |
| Команда (0x04) | Uint8 | 1 |
| Номер узла | Uint8 | 1 |
| Номер первой переменной (начиная с нуля) | Uint8 | 1 |
| Количество переменных (N*) | Uint8 | 1 |
| Длина переменной 1 | Uint8 | 1 |
| Значение переменной 1 | Nb*Uint8 | Nb |
| … | … | … |
| Длина переменной N | Uint8 | 1 |
| Значение переменной N | Nb*Uint8 | Nb |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
* Учесть, что длина ответа max 255 — 9 = 246 байт.
1.5 Записать значения переменной узла конфигурации (0x05)
Формат запроса
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFECA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина запроса | Uint8 | 1 |
| Команда (0x05) | Uint8 | 1 |
| Номер узла | Uint8 | 1 |
| Номер переменной | Uint8 | 1 |
| Длина переменной | Uint8 | 1 |
| Значение переменной | Nb*Uint8 | Nb |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
Формат ответа
| Имя поля | Тип | Размер (байт) |
| Заголовок (0xFDCA) | Uint16 | 2 |
| Идентификатор получателя | Uint16 | 2 |
| Длина ответа (2 байта) | Uint8 | 1 |
| Команда (0x05) | Uint8 | 1 |
| Номер узла | Uint8 | 1 |
| Номер переменной | Uint8 | 1 |
| Контрольная сумма (начиная с заголовка) | Uint16 | 2 |
Более подробное описание взаимодействия периферийного устройства с деревом конфигурации на ПК описано в статьях:
«Описание работы с деревом конфигурации микроконтроллеров через MCT-протокол«
