Contiki协议栈Rime:实验ibc和abc相互通信

来源:互联网 发布:软件项目工作汇报 编辑:程序博客网 时间:2024/05/18 06:24

1 概述

为了更好得理解前面博客的内容,我们通过cooja仿真器做一个简单的实现。有两个节点,其中一个节点烧写ibc程序,另一个节点烧写abc程序,然后启动两个节点,看他们的通信情况。

2 代码

实验用的代码在contiki/example/rime目录下的abc和ibc的基础之上进行很小的改动,使其能够通信。

abc的代码

#include "contiki.h"#include "net/rime/rime.h"#include "random.h"#include "dev/button-sensor.h"#include "dev/leds.h"#include <stdio.h>/*---------------------------------------------------------------------------*/PROCESS(example_abc_process, "ABC example");AUTOSTART_PROCESSES(&example_abc_process);/*---------------------------------------------------------------------------*/static voidabc_recv(struct abc_conn *c){  printf("abc message received '%s'\n", (char *)packetbuf_dataptr());}static const struct abc_callbacks abc_call = {abc_recv};static struct abc_conn abc;/*---------------------------------------------------------------------------*/PROCESS_THREAD(example_abc_process, ev, data){  static struct etimer et;  PROCESS_EXITHANDLER(abc_close(&abc);)  PROCESS_BEGIN();  abc_open(&abc, 128, &abc_call);  while(1) {    /* Delay 2-4 seconds */    etimer_set(&et, CLOCK_SECOND * 2 + random_rand() % (CLOCK_SECOND * 2));    PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));    packetbuf_copyfrom("Hello", 6);    abc_send(&abc);    printf("abc message sent\n");  }  PROCESS_END();}

ibc的代码

0 0
原创粉丝点击