本例程的实验需要9-Ppprouter实验节点;通过边界路由来实现CoAPServer 的节点LED控制;
先烧写一个Ppprouter节点,连接PC,pppd拨号连接后;进行下面的操作;不清楚的朋友大家可以去看看视频部分;
例程目录:
tinyos-main-release_tinyos_2_1_2\apps\cc2538_Test\CoapBlip
Makefile文件;任性的忽略
CoapBlipC.nc文件:
#ifdef COAP_RESOURCE_KEY
#include "StorageVolumes.h"
#endif
#include <iprouting.h>
#include "tinyos_coap_resources.h"
configuration CoapBlipC {
} implementation {
components MainC;
components LedsC;
components CoapBlipP;
components LibCoapAdapterC;
components IPStackC;
CoapBlipP.Boot -> MainC;
CoapBlipP.Leds -> LedsC;
CoapBlipP.RadioControl -> IPStackC;
#ifdef IN6_PREFIX
components StaticIPAddressTosIdC;
#endif
#ifdef RPL_ROUTING
components RPLRoutingC;
#endif
#ifdef COAP_SERVER_ENABLED
components CoapUdpServerC;
components new UdpSocketC() as UdpServerSocket;
CoapBlipP.CoAPServer -> CoapUdpServerC;
CoapUdpServerC.LibCoapServer -> LibCoapAdapterC.LibCoapServer;
LibCoapAdapterC.UDPServer -> UdpServerSocket;
#if defined (COAP_CONTENT_TYPE_JSON) || defined (COAP_CONTENT_TYPE_XML)
components LocalIeeeEui64C;
#endif
#ifdef COAP_RESOURCE_DEFAULT
components new CoapDefaultResourceC(INDEX_DEFAULT);
CoapUdpServerC.CoapResource[INDEX_DEFAULT] -> CoapDefaultResourceC.CoapResource;
CoapDefaultResourceC.Leds -> LedsC;
CoapDefaultResourceC.CoAPServer -> CoapUdpServerC;//for POST/DELETE
#endif
#if defined (COAP_RESOURCE_TEMP) || defined (COAP_RESOURCE_HUM) || defined (COAP_RESOURCE_ALL)
components new SensirionSht11C() as HumTempSensor;
#endif
#ifdef COAP_RESOURCE_TEMP
components new CoapReadResourceC(uint16_t, INDEX_TEMP) as CoapReadTempResource;
components new CoapBufferTempTranslateC() as CoapBufferTempTranslate;
CoapReadTempResource.Read -> CoapBufferTempTranslate.ReadTemp;
CoapBufferTempTranslate.Read -> HumTempSensor.Temperature;
CoapUdpServerC.CoapResource[INDEX_TEMP] -> CoapReadTempResource.CoapResource;
#if defined (COAP_CONTENT_TYPE_JSON) || defined (COAP_CONTENT_TYPE_XML)
CoapReadTempResource.LocalIeeeEui64 -> LocalIeeeEui64C;
#endif
#endif
#ifdef COAP_RESOURCE_HUM
components new CoapReadResourceC(uint16_t, INDEX_HUM) as CoapReadHumResource;
components new CoapBufferHumTranslateC() as CoapBufferHumTranslate;
CoapReadHumResource.Read -> CoapBufferHumTranslate.ReadHum;
CoapBufferHumTranslate.Read -> HumTempSensor.Humidity;
CoapUdpServerC.CoapResource[INDEX_HUM] -> CoapReadHumResource.CoapResource;
#if defined (COAP_CONTENT_TYPE_JSON) || defined (COAP_CONTENT_TYPE_XML)
CoapReadHumResource.LocalIeeeEui64 -> LocalIeeeEui64C;
#endif
#endif
#if defined (COAP_RESOURCE_VOLT) || defined (COAP_RESOURCE_ALL) || defined (COAP_RESOURCE_IPSO_DEV_BAT)
components new VoltageC() as VoltSensor;
#endif
#ifdef COAP_RESOURCE_VOLT
components new CoapReadResourceC(uint16_t, INDEX_VOLT) as CoapReadVoltResource;
components new CoapBufferVoltTranslateC() as CoapBufferVoltTranslate;
CoapReadVoltResource.Read -> CoapBufferVoltTran