Coap_message_handler_request_send 不支持选项15 Uri-Query。
这意味着节点无法发送包含 Uri-Querys (?Name)的 CoAP 请求,例如:
CoAP://FF02::FD/Uri?状态、例如查询 status 或 CoAP://[IP]/Uri?ID=123
节点支持接收 Uri-Query,只是缺少的发送。
修复很简单、请参阅下文、但我们更倾向于将其包含在 SDK 中、而不是直接修改 SDK 文件。
是否有可能在即将推出的 SDK 版本中修复?
编辑:将最长期限设置为 CoAP_OPTION_MAX_AGE_DEFAULT、这将在较低层 SN_COAP_BUILDER_OPTIONS _BUILD 中消除该选项。
(确实应该有一种更好的方法来指定哪些选项要包含或不包含。)
if (NULL != uriquery) {
sn_coap_options_list_s * options_ptr= own_alloc (sizeof(sn_coap_options_list_s) );
memset(options_ptr, 0, sizeof(sn_coap_options_list_s));
options_ptr->accept= -1;
options_ptr->block1= -1;
options_ptr->block2= -1;
options_ptr->max_age = COAP_OPTION_MAX_AGE_DEFAULT ;
options_ptr->observe= -1;
options_ptr->uri_port= -1;
options_ptr->uri_query_len= strlen (uriquery);
options_ptr->uri_query_ptr=uriquery;
request.options_list_ptr= options_ptr;
}