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. Чтобы отличать от сенсоров в случае чего.

Поля HEADER

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

NameKeyValue TypeDescription

CASID


SERIAL

1


2

uint32


uint32

Unique (hopefully) identifier of sending CAS360 system, generated automatically (linked to tablet PC hardware) 

Looks like arbitrary number

Serial number  of sending CAS1 reader

UPTIME3uint32optional Device Uptime at pack sending, seconds




Поля EVENT

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

Дополнительные поля событий KIND=1 (CAS)

...

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

EVENT

Value

Description

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

Дополнительные поля события Test

Name

Key

Value Type

Description

TESTCNT

-456

uint

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

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

EVENT

Value

Description

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

...

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

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

...