Cooja - 如何为mote /节点分配不同的服务?

时间:2017-09-13 17:44:15

标签: contiki

我需要创建一个由10个节点组成的网络。我希望每个mote提供3个服务,其中s1 = 0.25,s2 = 0.5,s3 = 0.025。此外,我想识别/选择自私/恶意的mote。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

解决这个问题的方法不应该是自己写的,但我想你可以考虑在contiki中使用服务注册和传播hack(servreg-hack)应用程序。应用程序的操作非常简单,所有应用程序都通过广播SERVICE_ID(这只是一个无符号的8位整数)使节点能够通告它们提供的服务。当广播节点附近的另一节点接收到消息时,它存储SERVICE_ID和发送该消息的节点的地址。如果节点需要服务,则可以通过调用servreg_hack_lookup函数查找提供服务的节点的地址。

contiki发行版(Contiki/examples/ipv6/simple-udp-rpl)的示例部分中的unicast-senderunicast receiver应用程序使用servreg_hack。

因此,在两个节点上,您都可以通过调用

来初始化servreg应用程序
servreg_hack_init();

然后在服务提供商处,您将通过调用

来注册服务
servreg_hack_register(SERVICE_ID, service_provider_ip_addr);
然后,将在服务用户节点上接收并注册该服务。然后服务用户可以调用

service_provider_ipaddr = servreg_hack_lookup(SERVICE_ID);

获取提供由SERVICE_ID标识的服务的节点的地址。