#include "sertrf.h" sertrf_t sertrf; void sertrf_init(void) { uint8_t res = 0; res = device_init(&sertrf.device); if(res) { SYS_LOG_WRN("device init error"); } //RGB灯 work_rgb_led_start(); sertrf_start(); } void sertrf_start(void) { os_thread_create(&sertrf.embedded_thread, "embedded_thread", embedded_thread, NULL, 4096, 20); } void embedded_thread(void* arg) { while(true) { uint32_t embedded_size = embedded_device_get_rx_length(&sertrf.device); if(embedded_size > 0) { uint8_t data[embedded_size]; embedded_device_read(&sertrf.device, data, embedded_size); // SYS_LOG_INF("data : %s", data); pc_device_write(&sertrf.device, data, embedded_size); } embedded_size = pc_device_get_rx_length(&sertrf.device); if(embedded_size > 0) { uint8_t data[embedded_size]; pc_device_read(&sertrf.device, data, embedded_size); // SYS_LOG_INF("data : %s", data); embedded_device_write(&sertrf.device, data, embedded_size); } pc_link_rgb_color(sertrf.device.connect_pc); //需要添加一些延时,否则会卡死,导致看门狗复位 // vTaskDelay(( TickType_t ) 1000 / configTICK_RATE_HZ); os_thread_sleep(1); } } void pc_link_rgb_color(uint8_t connect) { static uint8_t last_connect = 0; if(connect != last_connect) { switch (connect) { case DISCONNECT: rgb_color_change(0, RGB_COLOR_RAD); break; case CONNECT_WIFI: rgb_color_change(0, RGB_COLOR_GREEN); break; case CONNECT_BLE: rgb_color_change(0, RGB_COLOR_BLUE); break; } last_connect = connect; } }