Посмотреть исходный код на 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 start
DoneСоздайте тестовый ресурс.
coap resource test-resource
Done
Настройте клиент CoAP
На клиентском узле CoAP выполните следующие действия:
Запустите агент CoAP:
coap start
DoneЗапустите команду
get
, чтобы получить информацию о ресурсе:coap get fdde:ad00:beef:0:d395:daee:a75:3964 test-resource
Done 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 hellothere
Done 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.