Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

ПРЕДВАРИТЕЛЬНО

Сообщения передают события, происходящие в системе, на сервер. Сервер подтверждает получение сообщений. В настоящее время подтверждение по LoRa не реализовано, сообщение считается отправленным, если получен confirm на uplink с данными.

При отсутствии подтверждения события копятся в буфере и попытки отправки повторяются периодически. События из буфера отправляются, начиная со старейшего. Если буфер переполняется, новые события вытесняют старые. События имеют циклический порядковый номер (параметр SEQ uint16_t), что позволяет обнаруживать потерю событий.

. События передаются по мере возникновения, при невозможности отправки копятся в ограниченном FIFO буфере. Размер буфера зависит от версии программы (и транспорта).

Сообщение может передаваться:

  • CAS360, CAS1/2: через LoRa инфраструктуру
  • CAS360, CAS1/2: по IP-сети (WiFi, LAN) на заданный в конфигурации CoAP-сервер.
  • CAS360: по IP-сети (LTE) на заданные в конфигурации HTTPS-сервер и его контекст.
  • Upload
  •  Upload бинарных данных
  • с типом
  • .
    Метод POST, ресурс <в настройках CAS360>, Content-Type: application/cbor
    Сообщение в HTTP body 
    Подтверждение получения – HTTP response 2xx

Отправка через

...

LoRa

На LoRa порт 11

Заголовок пакета такой же, как для сенсоров, далее сообщение (вместо блока сенсоров), см. Описание форматов пакетов

Подтверждение получения – не реализовано, подтверждением считается confirmation пакета с базы LoRa

Отправка через IP

По IP-сети (LTE, WiFi, LAN) на заданный в конфигурации CoAP-сервер.

Метод POST, ресурс /msg

Пример запроса: POST /msg

Content-Format:application/cbor

Сообщение в payload

Подтверждение получения – CoAP Response 2.xx

Структура сообщения

Структура сообщения – последовательность CBOR-элементов (CBOR-stream, rfc7049 section 3.1):

...

Могут приходить сообщения без EVENT, это keepalive – используются для проверки связи при отсутствии полезных данных.

События могут приходить повторно, если устройство не получило подтверждение получения из-за плохой связи.

Идентификаторы полей (key) выбираются обычно выбираем в диапазоне -24..23, чтобы занимали 1 байт в CBOR.

Элемент VERSION

Тип integer, значение определяет дальнейшее содержимое. Для нижеописанной структуры значение =-1. Чтобы отличать от сенсоров в случае чего.

...

NameKeyValue TypeDescription

UPTIME

TIME

-4

-3

uint32

uint32

Device Uptime of Event, seconds

Время события, секунды с UNIX epoch, UTC+0

SEQ-2uint16Циклический сквозной порядковый номер события, для обнаружения потерь
KIND-1intРод события: 0-SYS, 1-CAS, ...
EVENT0intСобытие
...

дополнительные поля, специфичные для каждого события EVENT

...

События SYS (KIND=0

...

)

...

EVENT

Value

Description

Test-123test event (CLI: msgtest N)
Reset0

...

Name

Key

Value Type

Description

TESTCNT

-456

uint

Счетчик тестовых событий

...

События CAS (KIND=1

...

)

...

EVENT

Value

Description

ZoneRed0Вход в Красную зону
ZoneYellow1Вход в Желтую зону
ZoneGreen2Вход в Зеленую зону
ZoneOut3Выход (пропадание метки из эфира)
ZonePark4Парковка метки (прекращение обнаружения)

...

ZoneUndef5Зона не определилась

Дополнительные поля событий CAS. Множественные Key это альтернативы, придет какой-то один.

...