Интерфейсы и методы
Получить доступ к устройствам можно через несколько интерфейсов. Интерфейсы метки:
кабель (UART TTL3.3 250000 8N1)
беспроводная связь UWB – доступ через анкеры Интерфейсы анкера:
кабель (UART TTL3.3 250000 8N1)
локальная сеть (Ethernet 10BaseT/100BaseTX или WiFi) беспроводная связь UWB – доступ через другие анкеры
С анкерами и метками можно взаимодействовать, используя следующие протоколы:
CLI (Интерфейс командной строки) – текстовый терминал; доступен по кабелю, через Telnet и частично через CoAP ресурс /cli.
CoAP (Constrained Application Protocol) – соответствует стандарту RFC7252 с расширениями Block, Observe; доступен через LAN для анкеров и по беспроводной связи UWB для меток и анкеров.
Кроме того, существует протокол BOOT – собственный двоичный протокол, используемый для загрузки микропрограммного обеспечения на устройства по кабелю с использованием специального программного обеспечения RTLSboot на компьютере.
Протокол CLI
Команды CLI набираются в одну строку и выполняются нажатием клавиши Enter (Ввод).
Для доступа к командной строке может использоваться любая терминальная программа для COM-порта или клиент Telnet. Рекомендуется настроить эту программу таким образом, чтобы локальное эхо и редактирование были отключены, а устройству по мере набора отправлялись символы, соответствующие нажатым клавишам. Такая настройка позволяет использовать историю команд с помощью клавиш со стрелками вверх и вниз. В противном случае использование истории затруднительно. Для Telnet рекомендуется использовать клиент MS Windows Telnet с настройками по умолчанию.
Справка по командам CLI
Список всех доступных команд выводится при выполнении команды help. Справка по некоторым конкретным командам доступна при указании знака ?, следующего за командой.
Вывод команды help содержит префиксы модулей для некоторых команд, за которыми следует символ /. При вводе команд эти префиксы можно опускать. Однако если в нескольких модулях существуют одни и те же команды, префикс модуля является обязательным.
Команды можно набирать частично: только нескольких первых букв, достаточных, чтобы различить команду.
Отладочные протоколы (Logging)
В устройствах есть подсистема протоколирования. Несколько протоколов с отладочной информацией могут печататься в терминал CLI. Печать протоколов можно включать и отключать с помощью команды .X Y Z, где X, Y, Z – номер протокола. Команда ./ отображает все номера протоколов и текущее состояние, а .? – справочную информацию по использованию протоколирования.
Модули
Микропрограммное обеспечение устройства организовано в функциональные модули. Есть команды, общие для всех модулей:
info – постоянная информация
state – непостоянное текущее состояние
config – изменяемая конфигурация
При использовании непосредственно этих команд выводится информация для всех модулей (с именем модуля в качестве заголовка блока). Если за командой следует имя модуля, выводится информация, относящаяся только к данному модулю. Имена модулей в командах могут быть укорочены до первых нескольких букв, уникально идентифицирующих модуль.
Протокол CoAP
Протокол CoAP соответствует стандарту RFC7252.
Протокол CoAP подразумевает обмен сообщениями. Сообщения пересылаются с помощью дейтаграмм UDP по локальной сети и с помощью собственного фирменного протокола по радиоканалу UWB.
Устройство является сервером, к которому могут обращаться клиенты. Клиентами являются сервер позиционирования для работы системы и специальная программа CoBench для настройки и отладки устройств.
Устройства содержат набор ресурсов, доступных клиенту CoAP. Ресурсы идентифицируются по универсальному идентификатору ресурса (URI).
Общие ресурсы
Некоторые ресурсы, общие для всех устройств
/ – строковое описание основной прошивки устройства
/.well-known/core – список всех ресурсов, доступных на устройстве
/cli – ограниченный доступ к командной строке. Командная строка отправляется в виде параметра запроса (метод GET), а вывод возвращается в виде текста в ответном сообщении. Вывод усекается до размера буфера в устройстве – до нескольких килобайт; большой вывод выгружается несколькими запросами с использованием CoAP Block extension.
Доступ к ресурсам из LAN
Для получения доступа к анкерам по протоколу CoAP можно использовать программу CoBench. Эта программа позволяет отправлять простые запросы на ресурсы анкеров, а также выполнять более сложные последовательности, характерные для системы ЮЛАН. Она может работать с несколькими анкерами параллельно.
Также, CoBench может использоваться для доступа к меткам по протоколу CoAP. Связь с метками производится по радиоканалу UWB через промежуточные анкера, действующие как CoAP proxy. Подобным же образом, через proxy, можно связываться и с анкерами по радиоканалу UWB.
Доступ к ресурсам с Анкера
CoAP ресурсы анкеров и меток можно запросить по радиоканалу UWB из командной строки анкера через специальные команды: anc
или tag. Использование обеих команд одинаково; на примере tag:
tag sa874 /tof/rate – запрос методом GET на ресурс
tag sa874 -t40 /tof/rate – запрос методом GET на ресурс, время ожидания ответа 40с tag sa874 /tof/rate#f=10 s=12 – запрос методом PUT на ресурс (признак PUT – #) tag sa874 /signal## – запрос методом POST на ресурс (признак POST – ##)
tag – просмотреть содержимое буфера запросов к меткам
Здесь за именем команды следует серийный номер метки. Серийный номер необходимо вводить с обязательным префиксом s или sa (последнее означает добавить 0020000000). Затем следует URI ресурса и дополнительно после «#» могут быть параметры парсета для изменения.
После выдачи команда tag помещается в буфер запросов к меткам и будет отправлена соответствующей метке, как только эта метка появится в эфире (scheme 'ulun-tag'). Это может занять некоторое время в зависимости от режима метки.
После выдачи команда anc посылается в эфир немедленно (scheme 'ulun').
Если ответа нет в течение тайм-аута (или после 5 попыток отправки для tag), команда будет стерта из буферов анкера. Сообщение о стирании команды отображается в интерфейсе командной строки (CLI).