Протокол Water 7
Протокол предназначен для двухсторонней связи и параметрирования устройств.
Протокол подразумевает отправку нескольких видов сообщений. Информация о типе сообщения содержится в первом байте. Перечень всех типов сообщений указан ниже.
Типы сообщений
1-й байт |
Тип сообщения |
0b1xxx xxxx |
Регулярное сообщение |
0b101xx xxxx |
Ошибка исполнения |
0x03 |
Чтение группы параметров |
0x07 |
Чтение единичного параметра |
0x06 |
Запись единичного параметра |
0x10 |
Запись группы параметров |
0x20С |
События |
0x21 |
Парное сообщение |
0x27 |
Управление |
0x29 |
Удаленное обновление ПО |
Регулярное сообщение
Первый параметр в регулярном сообщении выглядит в формате:
Байт |
Регулярное сообщение (первый параметр) |
|
1 |
Тип сообщения 0b1YXX XXXX Флаг отправки расхода Y (0...1) ID первого параметра X (0...63) |
|
2 |
MSB |
Периодичность отправки регулярного сообщения 0bYYYY YYYY YYYX XXXX Y – дни X – часы |
3 |
LSB |
|
4 |
MSB |
Значение передаваемого параметра |
5 |
||
6 |
||
7 |
LSB |
|
8 |
MSB |
Разница значения параметра со значением при предыдущей отправке регулярного сообщения |
9 |
LSB |
|
10 |
Расход за период (описан ниже) |
|
... |
||
21 |
8...21 байты отправляются при наличии флага
В случае, когда ни один из параметр не сконфигурирован для передачи, регулярное сообщение содержит один байт 0x80.
В случае, когда для отправки в регулярном сообщении сконфигурировано более одного параметра, каждый последующий "приклеивается" к предыдущему.
Формат каждого следующего параметра:
Байт |
Регулярное сообщение (последующие параметры) |
|
1 |
0b0YXX XXXX Флаг отправки расхода Y (0…1) ID первого параметра X (0…63) |
|
2 |
MSB |
Значение передаваемого параметра |
3 |
||
4 |
||
5 |
LSB |
|
6 |
MSB |
Разница значения параметра со значением при предыдущей отправке регулярного сообщения |
7 |
LSB |
|
8 |
Расход за период (описан ниже) |
|
... |
||
19 |
6...19 байты отправляются при наличии соответствующего флага
Расход за период представляется в виде 4-битного представления "вклада" расхода за каждую 1/24 периода в общий расход за период:
Полубайты расхода упакованы в последовательность из 12 байт:
Байт |
Упаковка расхода |
|
0 |
1/2 MSB |
1-ая 1/24 расхода |
0 |
1/2 LSB |
2-ая 1/24 расхода |
1 |
1/2 MSB |
3-я 1/24 расхода |
1 |
1/2 LSB |
4-ая 1/24 расхода |
.... |
... |
... |
11 |
1/2 MSB |
23-я 1/24 расхода |
11 |
1/2 LSB |
24-я 1/24 расхода |
Значение |
|
0 |
Отсутствие расхода |
1 |
0.1 - 6.66% макс. расхода за период |
2 |
6.66% - 13.33% макс. расхода за период |
3 |
13.33 - 19.99% макс. расхода за период |
4 |
19.99 - 26.66% макс. расхода за период |
5 |
26.66 - 33.33% макс. расхода за период |
... |
... |
14 |
86.66% - 93.33% макс. расхода за период |
15 |
93.33% - 100% макс расхода за период |
Регулярное сообщение (короткое)
Сообщение заменяет основное регулярное сообщение в случае ограничений в энергопотреблении устройств с батарейным питанием на малых скоростях
Отправляется с фиксированной периодичностью раз в 24 часа.
Байт |
Регулярное сообщение (короткое) |
|
1 |
Тип сообщения 0b1YXX XXXX Флаг отправки расхода Y (0…1) ID первого параметра X (0…63) Отличается от основного регулярного сообщения фиксированной длинной сообщения в 8байт |
|
2 |
MSB |
Значение передаваемого параметра |
3 |
||
4 |
||
5 |
LSB |
|
6 |
MSB |
24 бита почасовых значений, где MSB - первая 1/24 периода LSB - последняя 1/24 периода 0 - отсутствие расхода 1 - присутствие расхода |
7 |
||
8 |
LSB |
Парное сообщение
Сообщение играет роль более частой и подробной посылки.
Отправляется фиксированное с периодичностью раз в 2 часа.
Байт |
Парное сообщение |
|
1 |
Тип сообщения(0х21 парное сообщение) |
|
2 |
ID параметра |
|
3 |
MSB |
Полное значение 32-битного счетчика импульсов |
4 |
||
5 |
||
6 |
LSB |
|
7 |
MSB |
16-битное значение разницы между текущим значением счетчика импульсов и его значением час назад |
8 |
LSB |
Сообщение чтения группы параметров
Для чтения группы параметров устройству отправляется запрос с начальным адресом и длинной запрашиваемой последовательности параметров. При корректном запросе устройство отправляет в ответ адрес, длину и последовательность значений запрашиваемых параметров. В случае, когда в запросе содержится недопустимый диапазон параметров, устройство отвечает ошибкой.
Формат запросов и ответов:
Байт |
0x03 Запрос |
|
1 |
Тип сообщения (0х03 чтение) |
|
2 |
MSB |
Адрес начала последовательности |
3 |
LSB |
|
4 |
MSB |
Длинна последовательности |
5 |
LSB |
|
Байт |
0x03 Ответ |
|
1 |
Тип сообщения (0х03 чтение) |
|
2 |
MSB |
Адрес начала последовательности |
3 |
LSB |
|
4 |
MSB |
Длина последовательности N |
5 |
LSB |
|
6 |
MSB |
Первый элемент передаваемой последовательности |
7 |
||
8 |
||
9 |
LSB |
|
N * 4 |
Последующие элементы последовательности |
Сообщение чтения единичного параметра
Для чтения единичного параметра устройству отправляется запрос с адресом необходимого параметра. При корректном запросе устройство отправляет в ответ адрес и значение запрашиваемого параметра. В случае, когда в запросе содержится недопустимый параметр, устройство отвечает ошибкой.
Формат запросов и ответов:
Байт |
0х07 Запрос |
|
1 |
Тип сообщения (0х07 чтение) |
|
2 |
MSB |
Адрес параметра |
3 |
LSB |
|
Байт |
0х07 Ответ |
|
1 |
Тип сообщения (0х07 чтение) |
|
2 |
MSB |
Адрес параметра |
3 |
LSB |
|
4 |
MSB |
Значение параметра |
5 |
||
6 |
||
7 |
LSB |
Сообщение записи единичного параметра
Для записи параметра устройству отправляется запрос с адресом и значением записываемого параметра. При корректном запросе устройство отправляет в ответ адрес и значение записанного параметра. В случае, когда в запросе содержится недопустимый параметр, устройство отвечает ошибкой.
Формат запросов и ответов:
Байт |
0x06 запрос |
|
1 |
Тип сообщения (0x06 запись) |
|
2 |
MSB |
Адрес параметра |
3 |
LSB |
|
4 |
MSB |
Значение параметра |
5 |
||
6 |
||
7 |
LSB |
|
Байт |
0x06 ответ |
|
1 |
Тип сообщения (0x06 запись) |
|
2 |
MSB |
Адрес параметра |
3 |
LSB |
|
4 |
MSB |
Значение параметра |
5 |
||
6 |
||
7 |
LSB |
Сообщение записи группы параметров
Для записи группы параметров устройству отправляется запрос с начальным адресом, длинной и значениями для выбранного диапазона параметров. При корректном запросе устройство отправляет в ответ адрес и длину записанных параметров. В случае, когда в запросе содержится недопустимый диапазон параметров, устройство отвечает ошибкой.
Формат запросов и ответов:
Байт |
0x10 запрос |
|
1 |
Тип сообщения (0х10 запись) |
|
2 |
MSB |
Адрес начала последовательности |
3 |
LSB |
|
4 |
MSB |
Длинна последовательности N |
5 |
LSB |
|
6 |
MSB |
Первый элемент передаваемой последовательности |
7 |
||
8 |
||
9 |
LSB |
|
N * 4 |
Последующие элементы последовательности |
|
Байт |
0x10 ответ |
|
1 |
Тип сообщения (0х10 запись) |
|
2 |
MSB |
Адрес начала последовательности |
3 |
LSB |
|
4 |
MSB |
Длинна последовательности N |
5 |
LSB |
Сообщения об ошибках при обработке команд 0х03, 0х06, 0х07, 0х10
Байт |
0x03 ответ в случае недопустимого запроса |
1 |
Тип сообщения ((тип) + 0x40 ошибка чтения) (например, команда 0х03 станет 0х43) |
2 |
Код ошибки |
Код ошибки |
Описание |
1 |
Неверный тип (команда не поддерживается устройством) |
2 | Неверный адрес |
3 | Неверное значение |
4 | Низкоуровневая ошибка |
5 | Попытка записи параметра, имеющего атрибут "только чтение" |
6 |
Неверная длинна данных |
Сообщение события
Сообщение инициируется устройством. Сообщение может содержать множество пар событие/полезная нагрузка. Длинна сообщения ограничена длинной сообщения nbfi.
Байт |
0x20 запрос |
|
1 |
Тип сообщения (0х20 событие) |
|
2 |
MSB |
Тип (ID) события |
3 |
LSB |
|
4 |
MSB |
Полезная нагрузка события |
5 |
LSB |
Управляющие сообщения
Байт |
0x27 запрос |
|
1 |
Тип сообщения (0х27 управление) |
|
2 |
Номер команды |
|
3 |
MSB |
Полезная нагрузка |
4 |
||
5 |
||
6 |
LSB |
|
Байт |
0x27 ответ |
|
1 |
Тип сообщения (0х27 управление) |
|
2 |
Номер команды |
|
3 |
MSB |
Полезная нагрузка |
4 |
||
5 |
||
6 |
LSB |
Сообщения удаленного обновления ПО
Группа сообщений, предназначенная для удалённого обновления ПО устройства. Все сообщения инициируются мастером.
2-й байт |
Параметр |
0x00 |
Запись обновления без обязательного подтверждения |
0x01 |
Запись обновления с обязательным подтверждением |
0x02 |
Чтение обновления |
0x03 |
Очистка кэша |
0x04 |
Сброс индекса |
0x05 |
Проверка обновления |
0x06 |
Запрос CRC |
0x07 |
Сброс устройства |
0x08 |
Очистка зоны обновления |
0x09 |
Копирование рабочей прошивки в зону обновления |
0x10 |
Запрос индекса |
0x11 |
Запрос версии |
0x12 |
Исполнение патча 0 |
0x13 |
Исполнение патча 1 |
0x14 |
Исполнение патча 2 |
Данная группа сообщений содержит несколько форматов:
- Запись обновления без обязательного подтверждения
В данном формате мастер записывает обновление в устройство с последовательным инкрементом индекса, в случае если индекс, присланный мастером, отличается от ожидаемого устройством, устройство инициирует ответ.
Байт |
0x29 удалённое обновление прошивки |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x00 запись обновления без обязательного подтверждения) |
|
3 |
MSB |
Адрес |
4 |
||
5 |
||
6 |
LSB |
|
7 |
MSB |
Длинна записи |
8 |
LSB |
|
9 |
MSB |
Индекс |
10 |
LSB |
|
11 |
Полезная нагрузка |
Байт |
0x29 удалённое обновление прошивки (ответ) |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x00 запись обновления без обязательного подтверждения) |
|
3 |
MSB |
Индекс |
4 |
LSB |
Запись обновления с обязательным подтверждением
Байт |
0x29 удалённое обновление прошивки |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x01 запись обновления с обязательным подтверждением) |
|
3 |
MSB |
Адрес |
4 |
||
5 |
||
6 |
LSB |
|
7 |
MSB |
Длинна записи |
8 |
LSB |
|
9 |
Полезная нагрузка |
Байт |
0x29 удалённое обновление прошивки (ответ) |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x01 запись обновления с обязательным подтверждением) |
|
3 |
MSB |
Адрес |
4 |
||
5 |
||
6 |
LSB |
|
7 |
MSB |
Длинна записи |
8 |
LSB |
Чтение обновления
Байт |
0x29 удалённое обновление прошивки |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x02 чтение обновления) |
|
3 |
MSB |
Адрес |
4 |
||
5 |
||
6 |
LSB |
|
7 |
MSB |
Длинна чтения |
8 |
LSB |
Байт |
0x29 удалённое обновление прошивки (ответ) |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x02 чтение обновления) |
|
3 |
MSB |
Адрес |
4 |
||
5 |
||
6 |
LSB |
|
7 |
MSB |
Длинна чтения |
8 |
LSB |
|
9 |
Полезная нагрузка |
Запрос CRC
Байт |
0x29 удалённое обновление прошивки |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x06 запрос CRC32 участка обновления) |
|
3 |
MSB |
Адрес |
4 |
||
5 |
||
6 |
LSB |
|
7 |
MSB |
Длинна |
8 |
||
9 |
||
10 |
LSB |
Байт |
0x29 удалённое обновление прошивки (ответ) |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x06 чтение обновления) |
|
3 |
MSB |
CRC32 |
4 |
||
5 |
||
6 |
LSB |
Исполнение патча 1/2/3
Байт |
0x29 удалённое обновление прошивки |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x12, 0x13, 0x14 исполнение 1/2/3) |
|
3 |
MSB |
Полезная нагрузка |
4 |
||
5 |
||
6 |
LSB |
Байт |
0x29 удалённое обновление прошивки (ответ) |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Команда (0x12, 0x13, 0x14 исполнение 1/2/3) |
|
3 |
MSB |
Полезная нагрузка |
4 |
||
5 |
||
6 |
LSB |
Исполнение подкоманд
0x03 |
Очистка кэша |
0x04 |
Сброс индекса |
0x05 |
Проверка обновления |
0x07 |
Сброс устройства |
0x08 |
Очистка зоны обновления |
0x09 |
Копирование рабочей прошивки в зону обновления |
0x10 |
Запрос индекса |
0x11 |
Запрос версии |
Байт |
0x29 удалённое обновление прошивки |
|
1 |
MSB |
Тип сообщения (0х29 удалённое обновление прошивки) |
2 |
MSB |
Подкоманда |
Байт |
0x29 удалённое обновление прошивки (ответ) |
|
1 |
Тип сообщения (0х29 удалённое обновление прошивки) |
|
2 |
Подкоманда |
|
3 |
MSB |
Полезная нагрузка |
4 |
||
5 |
||
6 |
LSB |
Перечень параметров для счетчика воды АКВА 2
ID |
Параметр |
0 |
Пролитый объём в прямом направление, л |
1 |
Пролитый объём в обратном направление, л |
2 |
Разница пролитых объёмов (прямой - обратный), л |
4 |
Пролитый объём в прямом направление, мкл |
5 |
Пролитый объём в обратном направление, мкл |
6 |
Разница пролитых объёмов (прямой - обратный), мкл |
7 |
Моментальный расход, л/ч |
8 |
Индекс записи в энергонезависимую память |
9 |
Время записи в энергонезависимую память |
64 |
Калибровочные значения цены импульса(мкл/имп) при расходах |
… |
|
70 |
|
71 |
Калибровочные значения расходов (л/ч) |
… |
|
77 |
|
78 |
Минимальный частота АЦП, Гц |
79 |
Максимальный частота АЦП, Гц |
80 |
Максимальное число точек АЦП |
81 |
Номинальное число точек АЦП |
82 |
Дельта точек АЦП |
83 |
Порог срабатывания АЦП |
84 |
Режим отладки через УАРТ |
128 |
Режим работы устройства |
129 |
Режим отображение |
130 |
Напряжение батареи |
131 |
Температура МК |
192 |
Слово выбора параметров для регулярного сообщения 0-31 |
193 |
Слово выбора параметров для регулярного сообщения 32-63 |
194 |
Слово выбора почасовки параметров для регулярного сообщения 0-31 |
195 |
Слово выбора почасовки параметров для регулярного сообщения 32-63 |
196 |
Период отправки регулярного сообщения, с |
197 |
Количество отправленных регулярных сообщений |
204 |
Последнее переданное регулярное сообщение 128 байт |
… |
|
235 |
|
236 |
Длинна последнего переданного сообщения |
Перечень событий для счётчика воды АКВА2
ID | Событие |
0 | Воздействие магнита |
1 | Введена команда |
2 | Ошибка работы датчика холла №1 |
3 | Ошибка работы датчика холла №2 |
4 | Проверка связи |
5 | Сброс |
Перечень команд для счётчика воды АКВА2
ID | Команда |
3 | Отправка показаний |
4 | Тест связи. 10 минут раз в минуту прибор шлёт сообщение |
5 | Включение близкой связи с автоотключением |
6 | Отключение близкой связи |
7 | Режим поверки |
8 | Режим нормальный |
10 | Дебаг по УАРТ с автоотключением |
11 | Дебаг по УАРТ отключение |
32 и больше | Сообщение о применение магнита |
Остальные ID не имеют значения |
Перечень параметров для модема Тиффани AX ревизии 4
ID | Параметр | Диапазон | По умолчанию |
0 | Число импульсов для одной единицы показаний Модем будет "делить" импульсы на входе на указанное здесь число | 1..99 999 | 1 |
1 | Первичные показания | 0..999 999 999 | 0 |
2 | Частота опроса | 1..32 | 32 |
3 | Активные каналы Представлен в виде суммы, где 1 — это первый канал, 2 — второй | 0..3 | 3 |
4 | Уровень сигнала для опроса 0 — 3 Вольта 1 — 5 Вольт 2 — 7 Вольт 3 — 9 Вольт | 0..3 | 0 |
5 | Частота отправки показаний в часах 1 — каждый час 24 — раз в день 168 — раз в неделю 720 — раз в месяц | 1..720 | 1 |
6 | Число отправленных сообщений | (только для чтения) | 0 |
Перечень событий модема Тиффани AX ревизии 4
ID | Событие |
0 | Сброс |
1 | Проверка связи |