СИ-21, протокол 2.0
-
- Мимо проходил
- Сообщения: 2
- Зарегистрирован: Чт, 01 июл 2021 14:57
СИ-21, протокол 2.0
Уважаемые разработчики приборов Лора Вега!
Я работаю в компании, которая собирает данные с разного рода счетчиков, в том числе производства Вега и волею судеб разрабатываю ПО для разбора пакетов данных payload, приходящих с этих самых счетчиков. В числе прочих я имел дело и с прибором СИ-21. В документации к этому замечательному прибору версии 8 в разделе 5 (протокол обмена) для каждого пакета есть первый байт - Тип пакета. Это стандартный подход к протоколам обмена, обычный tlv, точнее tv, потому что все поля фиксированной длины. В документации к этому же прибору, но уже версии 11 в том же разделе я не нахожу этого байта! Скажите пожалуйста, каким образом мне, программисту, нужно разбираться что прислал прибор? По длине пакета? Это какой то .... я даже не знаю как назвать.
Я понимаю, что СИ-21 выводится из обращения, но если ваши программисты так же будут подходить к разработке протоколов, то это катастрофа. Я бы посоветовал кроме идентификатора типа пакета в этот же байт включать номер протокола. И с каждой итерацией принудительно этот номер инкрементировать, даже если формат пакета данных не изменяется. Так вы сильно облегчите жизнь своим клиентам.
Я работаю в компании, которая собирает данные с разного рода счетчиков, в том числе производства Вега и волею судеб разрабатываю ПО для разбора пакетов данных payload, приходящих с этих самых счетчиков. В числе прочих я имел дело и с прибором СИ-21. В документации к этому замечательному прибору версии 8 в разделе 5 (протокол обмена) для каждого пакета есть первый байт - Тип пакета. Это стандартный подход к протоколам обмена, обычный tlv, точнее tv, потому что все поля фиксированной длины. В документации к этому же прибору, но уже версии 11 в том же разделе я не нахожу этого байта! Скажите пожалуйста, каким образом мне, программисту, нужно разбираться что прислал прибор? По длине пакета? Это какой то .... я даже не знаю как назвать.
Я понимаю, что СИ-21 выводится из обращения, но если ваши программисты так же будут подходить к разработке протоколов, то это катастрофа. Я бы посоветовал кроме идентификатора типа пакета в этот же байт включать номер протокола. И с каждой итерацией принудительно этот номер инкрементировать, даже если формат пакета данных не изменяется. Так вы сильно облегчите жизнь своим клиентам.
Re: СИ-21, протокол 2.0
Добрый день уважаемый Павел!
Из пакета данных убран байт типа пакета по той причине что у СИ-21 пакет с данными только один. Поэтому информация о типе пакета является избыточной, коль другого пакета с данными быть не может.
Не вполне понятен Ваш вопрос:
Единственный пакет с данными приходит только на LoRaWAN порт 2. Все остальные служебные пакеты (корректировка времени, настройки и проч...) приходят на другие порты.
Из пакета данных убран байт типа пакета по той причине что у СИ-21 пакет с данными только один. Поэтому информация о типе пакета является избыточной, коль другого пакета с данными быть не может.
Не вполне понятен Ваш вопрос:
Код: Выделить всё
каким образом мне, программисту, нужно разбираться что прислал прибор?
Инженер-программист
-
- Мимо проходил
- Сообщения: 2
- Зарегистрирован: Чт, 01 июл 2021 14:57
Re: СИ-21, протокол 2.0
Спасибо за ответ.
До этого мы не обращали внимания на номер порта, по которому приходят данные. Теперь, видимо, придется обращать.
Тем не менее я бы посоветовал иметь тег типа пакета, даже если пакет с данными единственный (это он в данной версии протокола единственный) и тег с номером версии протокола. Этим вы сильно упростите жизнь пользователей ваших приборов. В данном случае избыточность оправдана.
До этого мы не обращали внимания на номер порта, по которому приходят данные. Теперь, видимо, придется обращать.
Тем не менее я бы посоветовал иметь тег типа пакета, даже если пакет с данными единственный (это он в данной версии протокола единственный) и тег с номером версии протокола. Этим вы сильно упростите жизнь пользователей ваших приборов. В данном случае избыточность оправдана.
Re: СИ-21, протокол 2.0
Согласен с Павлом - нельзя убирать тип пакета. Ваш же шлюз Lora2Modbus разбирает пакеты на основе их типа. Каким образом писать конфигурационный файл если типа пакета нет?
Фот часть файла конфигурации SI-21.json:
{
"packet_type": 1,
"packet_size": 24,
"packet_fields":
[
{
"packet_bias": 1,
"data_bit_bias": 0,
"data_bit_size": 8,
"data_type": "uinteger",
"reg_map_bias": 14,
"reg_bit_bias": 0,
"reg_bit_size": 8,
"data_name": "Battery level"
Что писать в параметре "packet_type": для протокола 2?
А что делать если в сети окажутся устройства с разными типами протоколов?
Фот часть файла конфигурации SI-21.json:
{
"packet_type": 1,
"packet_size": 24,
"packet_fields":
[
{
"packet_bias": 1,
"data_bit_bias": 0,
"data_bit_size": 8,
"data_type": "uinteger",
"reg_map_bias": 14,
"reg_bit_bias": 0,
"reg_bit_size": 8,
"data_name": "Battery level"
Что писать в параметре "packet_type": для протокола 2?
А что делать если в сети окажутся устройства с разными типами протоколов?
Re: СИ-21, протокол 2.0
Добрый день!
Структура пакета теперь одна для каждой из "причин" (если хотите "типов"). Ранее пакет "Тревога" отличался по структуре и приходилось держать отдельный парсер...Даже описание самого протокола обмена, значительно сократилось после обновления.
Во вложении Вы найдете файл для LoRa2ModBus который поддерживает протокол 2.0. В самом приложении, будет добавлен новый тип устройства "SI-22 v.2.0" (название берется из файла).
По большому счету замена "Типа пакета" на "Причину отправки" само по себе мало на что повлияло. У Вас также имеется первый байт, который указывает на то как парсить пакет, а также собственно на то, что послужило причиной его отправки.petrov_ab писал(а): ↑Сб, 03 июл 2021 00:44Согласен с Павлом - нельзя убирать тип пакета. Ваш же шлюз Lora2Modbus разбирает пакеты на основе их типа. Каким образом писать конфигурационный файл если типа пакета нет?
Фот часть файла конфигурации SI-21.json:
Что писать в параметре "packet_type": для протокола 2?
А что делать если в сети окажутся устройства с разными типами протоколов?
Структура пакета теперь одна для каждой из "причин" (если хотите "типов"). Ранее пакет "Тревога" отличался по структуре и приходилось держать отдельный парсер...Даже описание самого протокола обмена, значительно сократилось после обновления.
Во вложении Вы найдете файл для LoRa2ModBus который поддерживает протокол 2.0. В самом приложении, будет добавлен новый тип устройства "SI-22 v.2.0" (название берется из файла).
- Вложения
-
- SI-22_v.2.0.json.zip
- (1.97 КБ) 306 скачиваний
Специалист технической поддержки
ООО "Вега-Абсолют"
тел. 8-800-550-41-35
тел. +7 (383) 206 4135
ООО "Вега-Абсолют"
тел. 8-800-550-41-35
тел. +7 (383) 206 4135