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