OpenThread CLI - CoAP Example
The OpenThread CoAP APIs may be invoked via the OpenThread CLI.
Quick Start
Form Network
Form a network with at least two devices.
Node 1
On node 1, setup CoAP server with resource test-resource
.
> coap start
Done
> coap resource test-resource
Done
Node 2
> coap start
Done
> 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
> coap put fdde:ad00:beef:0:2780:9423:166c:1aac test-resource con payload
Done
coap response from [fdde:ad00:beef:0:2780:9423:166c:1aac]
Result
On node 1, you should see output similar to below:
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: 7061796c6f6164
coap response sent
Command List
Command Details
help
> coap help
help
cancel
delete
get
observe
parameters
post
put
resource
set
start
stop
Done
List the CoAP CLI commands.
cancel
Request the cancellation of an existing observation subscription to a remote resource.
> coap cancel
Done
delete <address> <uri-path> [type] [payload]
- address: IPv6 address of the CoAP server.
- uri-path: URI path of the resource.
- type: "con" for Confirmable or "non-con" for Non-confirmable (default).
- payload: CoAP request payload.
> coap delete fdde:ad00:beef:0:2780:9423:166c:1aac test-resource con payload
Done
get <address> <uri-path> [type]
- address: IPv6 address of the CoAP server.
- uri-path: URI path of the resource.
- type: "con" for Confirmable or "non-con" for Non-confirmable (default). Use "block-" if the response should be transferred block-wise. ("block-16","block-32","block-64","block-128","block-256","block-512","block-1024")
> coap get fdde:ad00:beef:0:2780:9423:166c:1aac test-resource
Done
> coap get fdde:ad00:beef:0:2780:9423:166c:1aac test-resource block-1024
Done
observe <address> <uri-path> [type]
This is the same a get
, but the Observe
parameter will be sent, set to 0 triggering a subscription request.
- address: IPv6 address of the CoAP server.
- uri-path: URI path of the resource.
- type: "con" for Confirmable or "non-con" for Non-confirmable (default).
> coap observe fdde:ad00:beef:0:2780:9423:166c:1aac test-resource
Done
parameters <type> ["default"|<ack_timeout> <ack_random_factor_numerator> <ack_random_factor_denominator> <max_retransmit>]
Sets transmission parameters for the following interactions.
- type: "request" for CoAP requests and "response" for CoAP responses.
If no more parameters are given, the command prints the current configuration:
> coap parameters request
Transmission parameters for request:
ACK_TIMEOUT=1000 ms, ACK_RANDOM_FACTOR=255/254, MAX_RETRANSMIT=2
Done
If "default"
is given, the command sets the default configuration for the transmission parameters.
> coap parameters request default
Transmission parameters for request:
default
Done
Also, you can specify the transmission parameters in the command line:
- ack_timeout (0~UINT32_MAX): RFC7252 ACK_TIMEOUT, in milliseconds.
- ack_random_factor_numerator, ack_random_factor_denominator (0~255): RFC7252 ACK_RANDOM_FACTOR=ack_random_factor_numerator/ack_random_factor_denominator.
- max_retransmit (0~255): RFC7252 MAX_RETRANSMIT.
> coap parameters request 1000 255 254 2
Transmission parameters for request:
ACK_TIMEOUT=1000 ms, ACK_RANDOM_FACTOR=255/254, MAX_RETRANSMIT=2
Done
post <address> <uri-path> [type] [payload]
- address: IPv6 address of the CoAP server.
- uri-path: URI path of the resource.
- type: "con" for Confirmable or "non-con" for Non-confirmable (default). Use "block-" to send blocks with random payload. ("block-16","block-32","block-64","block-128","block-256","block-512","block-1024")
- payload: CoAP request payload. If [type] is "block-", the amount of blocks to be sent can be set here.
> coap post fdde:ad00:beef:0:2780:9423:166c:1aac test-resource con payload
Done
> coap post fdde:ad00:beef:0:2780:9423:166c:1aac test-resource block-1024 10
Done
put <address> <uri-path> [type] [payload]
- address: IPv6 address of the CoAP server.
- uri-path: URI path of the resource.
- type: "con" for Confirmable or "non-con" for Non-confirmable (default). Use "block-" to send blocks with random payload. ("block-16","block-32","block-64","block-128","block-256","block-512","block-1024")
- payload: CoAP request payload. If [type] is "block-", the amount of blocks to be sent can be set here.
> coap put fdde:ad00:beef:0:2780:9423:166c:1aac test-resource con payload
Done
> coap put fdde:ad00:beef:0:2780:9423:166c:1aac test-resource block-1024 10
Done
resource [uri-path]
Sets the URI path for the test resource.
> coap resource test-resource
Done
> coap resource
test-resource
Done
set [new-content]
Sets the content sent by the test resource. If a CoAP client is observing the resource, a notification is sent to that client.
> coap set Testing123
Done
start
Starts the application coap service.
> coap start
Done
stop
Stops the application coap service.
> coap stop
Done