Если входными данными является ASCII с символом конца строки, вы можете использовать интерфейс последовательной линии .
#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);