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):

VERSION(int=-1), HEADER, EVENT, EVENT, ...

...

Каждый HEADER и EVENT – CBOR map, то есть, набор полей key:value (key это int).

Могут приходить сообщения без 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 (advised is HEX representation to user – to match CAS360 software UI and logs)

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 это альтернативы, придет какой-то один.

Name

Key

Value Type

Description


EUI

SERIAL

CASID


1

2

3

4


uint64

uint32

uint32

<TBD>

Идентификатор метки. 

EUI64 (для меток не-ULUN)

серийный номер (для меток ULUN, пересчитывать в EUI64)

CAS_ID для систем CAS360 (при сближении с другой системой CAS360)

reserved

Основным идентификатором меток (по IEEE 802.12.4) является EUI64. В метках ULUN EUI64 однозначно связан с серийным номером.

CAS_ID не связан с серийными номерами меток и анкеров; используется, потому что система CAS360 в целом не имеет одного меточного серийного номера.

DIST_CM5int16Дистанция до метки, см
BEARER6int (enum)

Носитель метки:  0-Generic, 1-Person, 2-Vehicle, 3-Stationary

Опционально, при отсутствии =Generic

SECTOR_DEG

SECTOR_256

7

8

array_uint16[2]

array_uint8[2]

Сектор [ from to dir angle ], градусы 

Сектор [ from to dir angle ], в 1/256 круга (1.40625 градуса)

dir - центральное направление сектора, angle - размах сектора

Отсчет вправо от направления вперед транспортного средства (на экране CAS360 по часовой стрелке от направления вверх)

Опционально, при отсутствии – сектор не определен (полный круг)