Contiki / Cooja如何从套接字(串行套接字(服务器/客户端))读取数据(在模拟微尘中)

时间:2018-05-18 17:05:04

标签: contiki cooja

我正在尝试使用MQTT-Rime网关构建MQTT-SN。 我成功地使用串行插座将传感器数据发送到网关,但我的网关也必须向motes发送一些数据。 我的问题是我不知道如何从mote中的套接字读取数据。 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果输入数据是以换行符结尾的ASCII,则可以使用the serial line interface

 #include "contiki.h"
 #include "dev/serial-line.h"
 #include <stdio.h>

 PROCESS(test_serial, "Serial line test process");
 AUTOSTART_PROCESSES(&test_serial);

 PROCESS_THREAD(test_serial, ev, data)
 {
   PROCESS_BEGIN();

   for(;;) {
     PROCESS_YIELD();
     if(ev == serial_line_event_message) {
       printf("received line: %s\n", (char *)data);
     }
   }
   PROCESS_END();
 }

如果数据是二进制的,则需要定义自己的回调函数:

int binary_input_byte(unsigned char c) {
   // ...
}

然后将其设置为串行接口回调(在此处使用uart0,您需要使用的确切名称取决于平台):

uart0_set_input(binary_input_byte);