Initial commit: CCU621_M firmware project with BLE debug link support.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-08 17:28:36 +08:00
commit 9ceb218f80
1597 changed files with 724159 additions and 0 deletions
+105
View File
@@ -0,0 +1,105 @@
#include "tcp_ser/tcp_ser_task.h"
#include "app_init/app_init.h"
#include "app_init/task_lock.h"
#include "mylog/mylog.h"
#include "publicdata/publicdata.h"
#include "tcp_ser/tcp_server.h"
#include "debug_link.h"
#include "wdt_task/wdt_task.h"
#if TCP_DEBUG_EN
#define TCPSER_TASK_ID (TASK_ID_TcpSer)
#define TCPSER_SLEEP_TIME_MS() (MY_GET_SLEEP_TIME(TCPSER_TASK_ID))
#define TCPSER_LOCK_INIT() (u8_task_lock_ctrl(TCPSER_TASK_ID, TASK_LOCK_OP_INIT))
#define TCPSER_LOCK_TAKE() (u8_task_lock_ctrl(TCPSER_TASK_ID, TASK_LOCK_OP_TAKE))
#define TCPSER_LOCK_GIVE() (u8_task_lock_ctrl(TCPSER_TASK_ID, TASK_LOCK_OP_GIVE))
#define TCPSER_FEED_DOG() (v_wdt_setFlag(TCPSER_TASK_ID))
#endif
#define TCPSER_LOG(fmt, ...) MYLOG_MSG(TCPSER_TASK_ID, (fmt), ##__VA_ARGS__)
#if TCP_DEBUG_EN && BLE_DEBUG_EN
#include "ble_link/fc41d_ble.h"
#else
#include "sub_comm/sub_comm_task.h"
#endif
static const char *tcp_ser_link_name(void)
{
#if BLE_DEBUG_EN
return COMM_LINK_IS_BLE(comm_link_get_type()) ? "BLE" : "TCP";
#else
return "TCP";
#endif
}
/**
* @brief tcpSer task:协议/业务共用 tcp_serverDIP1 选 TCP 或 BLE 物理链路。
*/
void v_tcp_ser_task(void *argument)
{
#if TCP_DEBUG_EN
uint16_t sleep_time_ms;
uint32_t last_send_time;
uint32_t current_time;
uint32_t last_start_try_time;
uint8_t server_started;
(void)argument;
(void)TCPSER_LOCK_INIT();
sleep_time_ms = TCPSER_SLEEP_TIME_MS();
last_send_time = get_current_seconds();
last_start_try_time = 0U;
server_started = 0U;
#if BLE_DEBUG_EN
(void)ble_link_wait_dip_ready(3000U);
comm_link_set_type(comm_link_type_from_dip());
#else
comm_link_set_type(COMM_LINK_TCP);
if (u8_sub_comm_yx_get(E_SUB_DIP_1) != 0U) {
TCPSER_LOG("DIP1=1 but BLE_DEBUG_EN=0, force TCP link");
}
#endif
TCPSER_LOG("debug link=%s (BLE_DEBUG_EN=%d)", tcp_ser_link_name(), BLE_DEBUG_EN);
for (;;) {
TCPSER_FEED_DOG();
current_time = get_current_seconds();
if (server_started == 0U) {
if ((last_start_try_time == 0U) ||
(u32_safe_seconds_since(last_start_try_time) >= 2U)) {
if (tcp_server_start() == 0) {
server_started = 1U;
TCPSER_LOG("debug server start ok, link=%s", tcp_ser_link_name());
} else {
TCPSER_LOG("debug server start fail, retry in 2s");
}
last_start_try_time = current_time;
}
} else {
tcp_server_process();
}
if ((TASK_RUN_PRINT_TIME != 0U) &&
(u32_safe_seconds_since(last_send_time) >= TASK_RUN_PRINT_TIME)) {
if (TCPSER_LOCK_TAKE() == 1U) {
TCPSER_LOG("tcp ser running, link=%s sleep=%ums",
tcp_ser_link_name(), sleep_time_ms);
(void)TCPSER_LOCK_GIVE();
}
last_send_time = current_time;
}
{
mSleep(sleep_time_ms);
}
}
#else
(void)argument;
for (;;) {
mSleep(1000U);
}
#endif
}