概述
一、er-coap 接口介绍
1、coap_set_header_uri_path
//多级目录会被分割成多个option 比如 /3/0/1 会生成三个 option
//因为会调用 free_multi_option(coap_pkt->uri_path) 后面调用会释放掉之前配置的uri-path。
//如果需要同时使用coap_set_header_uri_path和coap_set_header_uri_path_segment 需要先调用 coap_set_header_uri_path.
int coap_set_header_uri_path(void *packet, const char *path)
{
coap_packet_t *coap_pkt = (coap_packet_t *) packet;
int length = 0;
free_multi_option(coap_pkt->uri_path);
coap_pkt->uri_path = NULL;
if (path[0] == '/') ++path;
do
{
int i = 0;
while (path[i] != 0 && path[i] != '/') i++;
coap_add_multi_option(&(coap_pkt->uri_path), (uint8_t *)path, i, 0);
if (path[i] == '/') i++;
path += i;
length += i;
} while (path[0] != 0);
SET_OPTION(coap_pkt, COAP_OPTION_URI_PATH);
return length;
}
2、coap_set_header_uri_path_segment
//多级目录不会被分割成多个option 比如 /3/0/1 仅生成一个 option
//允许多次添加
int coap_set_header_uri_path_segment(void *packet, const char *segment)
{
coap_packet_t *coap_pkt = (coap_packet_t *) packet;
int length;
if (segment == NULL || segment[0] == 0)
{
coap_add_multi_option(&(coap_pkt->uri_path), NULL, 0, 1);
length = 0;
}
else
{
length = strlen(segment);
coap_add_multi_option(&(coap_pkt->uri_path), (uint8_t *)segment, length, 0);
}
SET_OPTION(coap_pkt, COAP_OPTION_URI_PATH);
return length;
}
3、coap_serialize_get_size
该接口返回的长度不一定等于 实际要发送的数据长度。
当没有添加任何option的时候,才与实际要发送的数据长度相等。
当配置的option越多,该接口返回的长度和实际发送的数据长度误差越大。
实际发送数据长度 使用 coap_serialize_message接口的返回值。
最后
以上就是过时香水为你收集整理的er-coap-13 源码分析一、er-coap 接口介绍的全部内容,希望文章能够帮你解决er-coap-13 源码分析一、er-coap 接口介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复