Инструменты пользователя

Инструменты сайта


signalnet:спецификации:типы_данных

Типы данных

При передаче сообщений между устройствами, в сети SignalNet, используются бинарный формат сообщений длиной не более восьми байт. Нулевой байт в сообщении содержит индекс типа данных, а все последующие байты содержат полезные данные. Следующий байт после полезных данных, может индекс описания состояния или следующие два байта могут содержать идентификатор параметра (IDP). Имена параметров применяются для описания в JSON.

1. BOOL

Размер 1 байт (с описанием 2 байта). Тип данных BOOL - логический тип данных, принимающий два возможных значения, называемых истиной (true) и ложью (false). Состояние хранится в первом байте, где 0 - ложь, а 1 - истина. Второй байт не обязательный и может содержать номер вида словесного обозначения состояния. Таблица соответствия номера словесному описанию.

0 (ложь) 1 (истина)
0 ЛОЖЬ ИСТИНА
1 Выкл. Вкл.
2 Нет Да
3 Закрыто Открыто
4 Опущено Поднято
5 Закрыты Открыты
6 Запрещено Разрешено
7 Отсутствует Присутствует
8 Не обнаружено Обнаружено
9 Не активировано Активировано

Таблица соответствия номера состоянию не связанного с данными:

Состояние
100 Промежуточное состояние
101 Переключение
102 В процессе
103 Закрывается
104 Открывается
105 Запускается
106 Останавливается
107 Отсутствует
200 Ошибка
201 Авария
202 Сбой

Таблица соответствия параметра и имени:

Параметр Имя
Тип bool
Состояние status
Описание note

Имя «status» и «note» взаимозаменяемы. Пример JSON:

{bool:true, note:open}

2. Уровень CO2

Размер 2 байта. Тип данных уровень CO2 (ppm) - целое число фиксированной длины без знака размером 16 бит и принимающий значения от 0 до 65535ppm.

первый байт второй байт
значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типco2

Пример JSON:

{co2:400}

3. Скорость потока воздуха

Размер 2 байта. Тип данных скорость потока воздуха (дм/сек) - целое число фиксированной длины без знака размером 16 бит и принимающий значения от 0 до 65535 дм/сек.

первый байт второй байт
значение

Таблица соответствия параметра и имени:

ПараметрИмя
ТипairVelocity

Пример JSON:

{airVelocity:16}

4. Расход воды

Размер 2 байта. Тип данных расход воды (дм3) - целое число фиксированной длины размером 16 бит и принимающий значения от -32767 до 32767 дм3

первый байт второй байт
значение

Таблица соответствия параметра и имени:

ПараметрИмя
ТипwaterConsumption

Пример JSON:

{waterConsumption:100}

5. UINT8

Размер 1 байт. (с постфиксом 2 байта). Тип данных UINT8 (unsigned char) - целое число фиксированной длины без знака размером 8 бит и принимающий значения от 0 до 255. Второй байт не обязательный и может содержать номер номер постфикса.

первый байт второй байт
значение номер постфикса

Таблица соответствия параметра и имени:

ПараметрИмя
Типuint8
Номер постфиксаpostfix

Пример JSON:

{uint8:55, postfix:2}

6. INT8

Размер 1 байт. (с постфиксом 2 байта). Тип данных INT8 (signed char) - целое число фиксированной длины со знаком размером 8 бит и принимающий значения от -127 до 127. Второй байт не обязательный и может содержать номер постфикса.

первый байт второй байт
значение номер постфикса

Таблица соответствия параметра и имени:

ПараметрИмя
Типint8
Номер постфиксаpostfix

Пример JSON:

{int8:-10, postfix:2}

7. UINT16

Размер 2 байт. (с постфиксом 3 байта). Тип данных UINT16 (unsigned integer) - целое число фиксированной длины без знака размером 16 бит и принимающий значения от 0 до 65535. Третий байт не обязательный и может содержать номер постфикса.

первый байт второй байт третий байт
значение номер постфикса

Таблица соответствия параметра и имени:

ПараметрИмя
Типuint16
Номер постфиксаpostfix

Пример JSON:

{uint16:1000, postfix:22}

8. INT16

Размер 2 байт. (с постфиксом 3 байта). Тип данных INT16 (signed integer) - целое число фиксированной длины со знаком размером 16 бит и принимающий значения от -32767 до 32767. Третий байт не обязательный и может содержать номер постфикса.

первый байт второй байт третий байт
значение номер постфикса

Таблица соответствия параметра и имени:

ПараметрИмя
Типint16
Номер постфиксаpostfix

Пример JSON:

{int16:-1000, postfix:22}

9. Температура

Размер 4 байта. Тип данных Температура - число с фиксированной запятой со знаком размером 16 бит и принимающий значения от -127,00 до 127,00. Третий и четвертый байт содержат адрес устройства или другой идентификатор датчика температуры. IDP нужен что бы отличить показания одного устройства от другого, когда они поступают на одно устройство, которое при различных IDP вычислит среднее, а при одинаковых просто обновит данные.

первый байт второй байт третий байт четвертый байт
Температура IDP

Восьмой бит первого байта содержит знак температуры, если 1, то температура отрицательная, если 0 то положительная. Если температура отрицательная, то данные представлены в инверсном состоянии (в дополнительном коде). Для преобразования числа в тип FLOAT, необходимо первые два байта представить, как двух байтовое целое число и умножить на 0,00390625. Если число отрицательное, то нужно инвертировать число, добавить единицу и умножить на -0,00390625.

Таблица соответствия параметра и имени:

ПараметрИмя
Типtemp
IDPidp

Пример JSON:

{temp:-2, idp:5}

10. Мощность

Размер 4 байта. Тип данных мощность в милливаттах (мгновенная) - целое число фиксированной длины со знаком размером 32 бит и принимающий значения от -2147483647мВт до 2147483647мВт.

первый байт второй байт третий байт четвертый байт
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типpower

Пример JSON:

{power:1000}

11. Ток

Размер 4 байта. Тип данных ток в миллиамперах - целое число фиксированной длины со знаком размером 32 бит и принимающий значения от -2147483647мВт до 2147483647мА.

первый байт второй байт третий байт четвертый байт
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типcurrent

Пример JSON:

{current:1000}

12. Напряжение

Размер 4 байта. Тип данных напряжение в милливольтах - целое число фиксированной длины со знаком размером 32 бит и принимающий значения от -2147483647мВт до 2147483647мВ.

первый байт второй байт третий байт четвертый байт
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типvoltage

Пример JSON:

{voltage:1000}

13. Дата и время

Размер 7 байта. Тип данных дата и время - содержит информацию о дате и времени без кодирования.

1 2 3 4 5 6 7
Число Месяц Год Часы Минуты Секунды

Таблица соответствия параметра и имени:

ПараметрИмя
Типdatetime

Пример JSON:

{datetime:2021-05-01T14:01:00.000Z}

в формате ISO 8601 с миллисекундами или без.

14. Оповещение (ALERT)

Размер 3 байта. Тип данных ALERT- тип данных предназначенный для оповещения устройств о возникновении аварийной или критической ситуации, а также об их отмене. Содержит номер события или отмен. Второй и третий байты содержат IDP отправителя. Четвертый может содержать причину оповещения.

первый байт второй байт третий байт четвертый байт
Номер IDP Причина

Таблица описаний событий.

Состояние
0Прекращение всех событий
1Пожар
2Прекращение пожара
3Протечка воды
4Прекращение протечки
5Отсутствие электроснабжения
6Возобновление эл. снабжения
7Плохое качество воздуха
8Нормальное качество воздуха
9Утечка газа
10Утечка газа прекращена

Таблица источников.

Состояние
0
1 CO2
2 PM1
3 PM2.5
4 PM10
5 НСНО
6 TVOC
7 CO

Таблица соответствия параметра и имени:

ПараметрИмя
Типalert
IDPidp
Источникreason

Пример JSON:

{alert:7, idp:500,reason:1}

15. Ошибка

Размер 6 байт. Тип данных ошибка - содержит информацию о номере ошибки (число 16 бит), адресе устройства (число 16 бит) и типе устройства (число 16 бит).

1 2 3 4 5 6
Номер ошибки Адрес Тип устройства

Таблица соответствия параметра и имени:

ПараметрИмя
Типerror
Адресaddress
Тип устройстваdevType

Пример JSON:

{error:7,address: 500,devType:47}

16. Текст

Размер 7 байт. Тип данных Текст предназначен для передачи текстовых данных. Данный тип позволяет передать за один раз до 7 символов текста или до 155 символов с использованием множества пакетов до 5 символов в каждом. Для передачи текста через множество пакетов, текст необходимо раздробить на подстроки по 5 символов (5 байт, как например в случае с UTF-8). Каждый отправляемый пакет содержит в первом байте номер позиции подстроки в тексте.

1 2 3 4 5 6 7
позиция Текст

позиция подстроки = значение 1 байта * 6

Если текст вмещается в один пакет, то номер позиции не указывается, если текст передается несколькими пакетами, то в первом байте указывается номер позиции от 0 до 31.

Таблица соответствия параметра и имени:

ПараметрИмя
Типtext

Пример JSON:

{text:ABCDE}

16. Дата

Размер 4 байта. Тип данных дата - содержит информацию о дате без кодирования.

1 2 3 4
Число Месяц Год

Таблица соответствия параметра и имени:

ПараметрИмя
Типdate

Пример JSON:

{date:01.05.2021}

18. Время

Размер 3 байта. Тип данных время - содержит информацию о времени без кодирования.

1 2 3
Часы Минуты Секунды

Таблица соответствия параметра и имени:

ПараметрИмя
Типtime

Пример JSON:

{time:13:17:00}

19. Потребленная энергия

Размер 7 байт. Тип данных потребленная электроэнергия - содержит информацию потребленной электроэнергии представленной в виде мощности в ваттах (число 24 бита) и времени потребления в секундах (число 16 бит), так же содержит IDP для идентификации (16 бит).

1 2 3 4 5 6 7
Мощность (мВт) Время (сек) IDP

Формула перевода потребленной мощности в мгновенное значение:

  W = МОЩНОСТ / 3600000 * ВРЕМЯ

Максимальная мощность 8,38кВт Минимальная передаваемая мощность 1мВт Максимальная потребленная мощность 152,7 кВт*Ч Минимальная потребленная мощность 0,00000027мВт

Таблица соответствия параметра и имени:

ПараметрИмя
Мощностьpower
Времяseconds
IDPidp

Пример JSON:

{power:5000, seconds:60, idp:50}

20. Влажность

Размер 4 байта. Тип данных Влажность - целое число без знака размером 16 бит и принимающий значения от 0% до 100%. Первый байт содержит целую часть влажности, второй байт содержит дробную часть влажности, умноженную на 100. Данный формат позволяет передать как целочисленную величину (второй байт 0), так и дробную. Третий и четвертый байт содержат адрес устройства или другой идентификатор датчика влажности. IDP нужен что бы отличить показания одного устройства от другого, когда они поступают на одно устройство, которое при различных IDP вычислит среднее, а при одинаковых просто обновит данные.

^ первый байт ^ второй байт ^ третий байт ^ четвертый байт ^

Влажность IDP

Таблица соответствия параметра и имени:

ПараметрИмя
Типhumidity
IDPidp

Пример

JSON: {humidity:80, idp:5}

21. Давление

Размер 6 байт. Тип данных давление (ПА) - вещественное число, умноженное на сто и представленное как целое число размером 32 бит. Пятый и шестой байт содержат IDP устройства.

1 2 3 4 5 6
Значение IDP

Таблица соответствия параметра и имени:

ПараметрИмя
Типpressure
IDPidp

Пример JSON:

{pressure:10000, idp:5}

22. Уровень

Размер 1 байт. Тип данных уровень (char) - целое число фиксированной длины без знака размером 8 бит и принимающий значения от -100 до 100%.

первый байт
Уровень

Таблица соответствия параметра и имени:

ПараметрИмя
Типlevel

Пример JSON:

{level:100}

23. Дистанция

Размер 2 байта. Тип данных дистанция (мм) (integer) - целое число фиксированной длины без знака размером 16 бит и принимающий значения от -32767 до 32767 мм.

первый байт второй байт
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типdistance

Пример JSON:

{distance:1000}

24. УГОЛ

Размер 2 байта. Тип данных угол (минуты) - целое число фиксированной длины со знаком размером 16 бит и принимающий значения от -21600 до 21600минут.

первый байт второй байт
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типangle

Пример JSON:

{angle:7200}

25. Освещенность

Размер 2 байта. Тип данных освещённость (люкс) - целое число фиксированной длины без знака размером 16 бит и принимающий значения от 0 до 65535 люкс.

первый байт второй байт
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типillumination

Пример JSON:

{illumination:70}

26. UINT32

Размер 4 байта. (с постфиксом 5 байт). Тип данных UINT32 (unsigned long) - целое число фиксированной длины без знака размером 32 бита и принимающий значения от 0 до ‭4294967295. ‬‬‬ Третий байт не обязательный и может содержать номер постфикса.

1 2 3 4 5
Значение IDP

Таблица соответствия параметра и имени:

ПараметрИмя
Типuint32
Номер постфиксаpostfix

Пример JSON:

{uint32: 10000000, postfix:22}

27. INT32

Размер 4 байта. (с постфиксом 5 байт). Тип данных INT32 (signed long) - целое число фиксированной длины со знаком размером 32 бита и принимающий значения от -2147483647…2147483647. Пятый байт не обязательный и может содержать номер постфикса.

1 2 3 4 5
Значение IDP

Таблица соответствия параметра и имени:

ПараметрИмя
Типint32
Номер постфиксаpostfix

Пример JSON:

{int32:-10000000, postfix:22}

28. Емкость

Размер 4 байта. Тип данных емкость (миллилитры) - целое число фиксированной длины без знака размером 32 бита и принимающий значения от 0 до ‭4294967295 миллилитров.‬‬‬

1 2 3 4
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типcapacity

Пример JSON:

{capacity:1000}

29. Вес

Размер 4 байта. Тип данных вес (миллиграммы) - число фиксированной длины размером 32 бита и принимающий значения от -2147483647 до ‭2147483647миллиграм. ‬‬‬

1 2 3 4
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типweight

Пример JSON:

{weight:1000}

30. HEX

Размер 4 байта. Тип данных HEX - целое число фиксированной длины без знака размером 32 бита и принимающий значения от 0 до ‭4294967295. ‬‬‬ Данный тип используется как обычное целое число, но отображается как HEX код.

1 2 3 4
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типhex

Пример

JSON: {hex:0A0B0C0D}

31. ALARM

Размер 3 байта. Тип данных ALARM- тип данных предназначенный для оповещения устройств о состоянии системы сигнализации, постановки, снятия, проникновения и ввода пин-кода. Содержит номер состояния. Второй и третий байты содержат IDP отправителя.

1 2 3
Номер IDP

Таблица описаний событий.

Состояние
0Цифра 0
1Цифра 1
2Цифра 2
3Цифра 3
4Цифра 4
5Цифра 5
6Цифра 6
7Цифра 7
8Цифра 8
9Цифра 9
10Постановка
11Снятие
12Проникновение
13Отмена оповещения
14Постановка (тихо)

Таблица соответствия параметра и имени:

ПараметрИмя
Типsecurity
IDPidp

Пример JSON:

{security:12, idp:22}

32. SNIR

Размер 7 байт. Тип данных SNIR предназначен для передачи данных полученных по протоколу SNIR для устройств с инфракрасным каналом и SNRR для устройств с радиоканалом. Особенностью данных устройств является односторонняя передача данных без обратной связи.

Пакет состоит из 7 байт, где:

  • 1 байт - с 1 по 7 биты содержат адрес устройства, 8 бит содержит флаг повтора
  • 2 байт - с 1 по 6 биты содержат параметр, 7 - 8 биты содержат уровень заряда
  • 3 байт - содержит номер типа данных SN;
  • 4 - 8 байт - содержат данные указанного во втором байте типа.

* 9 и 10 байт указанные на рисунке в протоколе signalnet не используются.

Таблица соответствия параметра и имени:

ПараметрИмя
Номер + адресsnir
Данные

стандартном представлении|

Пример JSON:

{snir:01, illumination:70}

33. EM-Marine

Размер 4 байта. Тип данных EM-Marine предназначен для передачи семейства и номера идентификатора RFID метки с протоколом EM-Marine.

1 2 3 4
Семейство Номер

Пакет состоит из 4 байт, где:

1-2 байт - содержит семейство;
3-4 байт - содержит номер;

Таблица соответствия параметра и имени:

ПараметрИмя
ТипemUID
Семействоfamily

Пример JSON:

{emUID:123456789, family:093}

34. Осадки

Размер 2 байта. Тип данных осадки (миллиметры) - целое число фиксированной длины без знака размером 16 бит и принимающий значения от 0 до 65535мм. Предназначено для передачи уровня осадков.

1 2
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типrainfall

Пример JSON:

{rainfall:20}

35. Обороты

Размер 4 байта. Тип данных обороты (об/мин) - целое число фиксированной длины без знака размером 32 бита и принимающий значения от 0 до ‭100000 об/мин.‬‬‬

1 2
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
Типturnovers

Пример JSON:

{turnovers:780}

36. Погода

Размер 1 байт. Тип данных Погода - предназначен для передачи информации о погоде, первый байт которого содержит одно из фиксированных состояний погоды.

Таблица описаний событий.

Состояние
0Чистое небо
1Малооблачно
2Рассеянные облака
3Разорванная облачность
4Ливень
5Дождь
6Гроза
7Снег

Таблица соответствия параметра и имени:

ПараметрИмя
Типweather

Пример JSON:

{weather:0}

37. Пыль

Размер 3 байта. Тип данных пыль(мкг/м^3) - целое число фиксированной длины без знака размером 16 бит и принимающий значения от 0 до 2000мкг/м^3. Третий байт содержит размерность частиц. Предназначено для передачи уровня пыли разных фракций.

1 2 3
Значение Размерность

Таблица размерностей.

Состояние
0PM1.0
1PM2.5
2PM10

Таблица соответствия параметра и имени:

ПараметрИмя
Типdust
Размерfraction

Пример JSON:

{dust:0, fraction:1}

38. Индекс качества воздуха (AQI)

Размер 2 байта. Тип данных индекс - целое число фиксированной длины без знака размером 16 бит и принимающий значения от 0 до 500. Предназначено для передачи индекса качества воздуха.

1 2
Значение

Таблица соответствия параметра и имени:

ПараметрИмя
ТипAQI

39. Пакет ДУ (RM)

Размер 7 байт. Тип данных RM предназначен для передачи данных полученых от пультов дистанционного управления с указанием протокола ДУ.

1 2 3 4 5 6 7
Протокол Код посылки ДУ

Пакет состоит из 7 байт, где: 1 байт - содержит номер протокола ДУ; 2 - 7 байты - содержат код посылки ДУ.

Таблица соответствия параметра и имени:

ПараметрИмя
ТипRM
Пакет (HEX)package

Пример JSON:

{RM:1, package:AABBCCDD0000}

63. Вариант

Размер 7 байт. Тип данных предназначен не для передачи.

/volume3/web/dokuwiki/data/pages/signalnet/спецификации/типы_данных.txt · Последнее изменение: 2023/11/29 12:01 — stanislav