Contiki 操作系统中CoAP 协议的实现是基于REST 引擎的,CoAP 引擎在er-coap-engine.c 程序中实现,该程序保存在apps/er-coap/文件夹下,引擎接口由下面的结构体提供,我们把它称为CoAP应用编程接口API:
可用下面的函数调用CoAP引擎:
REST.get_query_variable();
基本的REST 设计使用了CoAP 协议的POST、GET、PUT 和DELETE 等方法,Web服务被看成是由URIs唯一标识的资源(resources),在Web服务器上有多种可用的资源,每个资源都有REST层调用的处理函数,以便为客户请求提供服务,REST 服务器通过向客户发送其请求的资源内容作为响应。要建立新的CoAP 资源时,可以使用Contiki 系统中定义的基本“资源”类型:normal resource、parent resource、separate resource、event resource 和periodic resource。文件apps/rest-engin/rest-engin.h中给出了这些资源的宏定义。如普通资源的宏定义如下:
#define RESOURCE(name, attributes, get_handler, post_handler, put_handler,delete_handler)\
resource_t name = {NULL, NULL, NO_FLAGS, attributes, get_handler,post_handler,put_handler,delete_handler,{NULL}}(www.xing528.com)
普通资源(normal resource)由与资源处理函数相关的静态uri-path 定义,它是所有其他资源类型的基础。父资源(parent resource)通过评价uri-path管理几个子资源。
一旦声明和实现了资源,需要通过使用以下函数初始化REST框架,启动HTTP或CoAP进程:
void rest_init_engine(void)
然后再用下面的函数激活每个声明的资源:
void rest_activate_resource(resource_t*resource,char*path)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。