Посмотреть исходный код на GitHub
OpenThread предлагает как серверную, так и клиентскую функциональность CoAP, позволяя устройствам подключаться к ресурсам на сервере CoAP и наблюдать за каждым ресурсом на предмет изменения его текущего состояния. Агент CoAP, предоставленный в CLI, может действовать как клиент или сервер CoAP.
Команды КоАП
Чтобы получить список команд coap , введите help :
coap help
help
cancel
delete
get
observe
parameters
post
put
resource
set
start
stop
Done
Справочник команд CLI
Описания и синтаксис всех команд см. в Справочнике команд CLI. Команды coap начинаются в алфавитном порядке с coap cancel .
Пример использования команд сервера CoAP и клиента
В этом примере используются базовые команды CLI для запуска сервера и клиента CoAP, создания тестового ресурса на сервере CoAP и взаимодействия клиента CoAP с ресурсом. Данные выборки используются в иллюстративных целях.
Настройте сервер CoAP
На узле сервера CoAP выполните следующие действия:
Запустите агент CoAP.
coap startDoneСоздайте тестовый ресурс.
coap resource test-resourceDone
Настройте клиент CoAP
На клиентском узле CoAP выполните следующие действия:
Запустите агент CoAP:
coap startDoneЗапустите команду
get, чтобы получить информацию о ресурсе:coap get fdde:ad00:beef:0:d395:daee:a75:3964 test-resourceDone coap response from [fdde:ad00:beef:0:2780:9423:166c:1aac] with payload: 30Последняя часть
responseсервера — это терминwith payload:, за которым следуют все байты полезной нагрузки в формате шестнадцатеричных цифр. Таким образом, в примереwith payload: 30указывает, что текущая полезная нагрузка для ресурса установлена в один байт полезной информации с шестнадцатеричным значением 0x30. Для получения дополнительной информации об использовании опцииpayloadобратитесь к сообщению coap .Вы можете изменить ресурс с помощью команды
put:coap put fdde:ad00:beef:0:2780:9423:166c:1aac test-resource con hellothereDone coap response from [fdde:ad00:beef:0:2780:9423:166c:1aac]В этом примере
conозначает, что вы хотите, чтобы на сервер CoAP было отправлено надежное сообщение, полученное с использованием подтверждаемого сообщения (con). По умолчанию отправляется неподтверждаемое (non-con) сообщение.Строка
hellothere— это пример использования необязательного параметраpayload, когдаtype—conилиnon-con».Сервер отвечает своим IPv6-адресом, чтобы указать, что запрос был обработан.
Ответы отправлены на сервер CoAP
На сервере выходные данные этого примера будут выглядеть примерно так:
coap request from [fdde:ad00:beef:0:b3:e3f6:2dcc:4b79] GET coap response sent coap request from [fdde:ad00:beef:0:b3:e3f6:2dcc:4b79] PUT with payload: 68656c6c6f7468657265 coap response sent
Значение payload 68656c6c6f7468657265 — это строка hellothere преобразованная в последовательность байтов кода ASCII.