IoT开发实战:CoAP卷【1.9】

5.7 CoAP选项

CoAP定义了一系列选项用以规范CoAP报文的格式。一个CoAP报文中可以包括多个CoAP选项。CoAP选项是CoAP中最难理解的部分。

5.7.1 选项格式

CoAP选项实例由选项偏移量(Option Delta)、选项长度(Option Length)和选项值(Option Value)组成。CoAP选项的具体格式如图5-13所示。CoAP中不能直接确定选项编号,选项编号必须由上一个选项编号和本次选项偏移量计算得到。

图5-13 选项格式

1.选项偏移量

4位无符号整数。其中0~12用于指示选项的偏移量,13、14和15具有特殊含义。

·13:Option Delta extended区域定义一个8位无符号整数,此时的选项偏移量应为该8位无符号整数+13。

·14:Option Delta extended区域定义一个16位无符号整数,此时的选项偏移量应为该16位无符号整数+269。

·15:保留为将来使用。

选项偏移量描述了当前选项编号与之前选项编号之间的差值,换句话说选项编号可以由当前选项编号与之前的选项编号计算得到。例如,上次选项编号为11(Uri-Path),当前选项偏移量为4,那么当前的选项编号为15(Uri-Query)。

2.选项长度

4位无符号整数。0~12用于指定选项长度,13、14和15具有特殊含义。

·13:Option Length extended区域定义一个8位无符号整数,此时的选项长度应为该8位无符号整数+13。

·14:Option Length extended区域定义一个16位无符号整数,此时的选项长度应为该16位无符号整数+269。

·15:保留为将来使用。

3.选项值

在CoAP中选项值包含四种数据类型——Empty、Opaque、Uint和String。

·Empty:选项值长度为0。

·Opaque:选项值长度不确定。

·Uint:选项值长度为非负整数,该值采用网络字节顺序即大端格式定义。

·String:UTF-8编码字符串格式。

4.选项定义

CoAP选项定义见表5-3。

表5-3 CoAP选项定义

5.7.2 URI相关选项

在CoAP选项中共有4个选项与URI直接相关——Uri-Host、Uri-Port、Uri-Path和Uri-Query。这些参数都可以用于定位服务器资源,CoAP的资源定位规则也符合URL语法,例如:

coap://wsnccoap.org:5683/devices/1234CDEF?limit=10&offset=20

·Uri-Host用于定义服务器名称,此CoAP URI示例中Uri-Host等于“wsnccoap.org”。

·Uri-Port用于定义服务器CoAP服务端口号,此CoAP URI示例中Uri-Port的值为5683。

·Uri-Path用于定义资源在服务器中的相对或绝对位置,在此CoAP URI示例中Uri-PATH等于“devices/1234CDEF”。此时“devices/1234CDEF”被分成了两个Uri-Path:一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值