修复了网络参数的保存逻辑
This commit is contained in:
@@ -24,6 +24,20 @@
|
||||
#define DBG_TAG "[NET_TASK]"
|
||||
#include "dbg_log.h"
|
||||
|
||||
/*
|
||||
* 函数功能:"立即应用网口配置"平台回调(注册给 net_cfg)
|
||||
* 入口参数:无
|
||||
* 返回值:无
|
||||
* 限定条件:UI 保存成功后经 net_cfg_request_apply() 调用(任意任务上下文)
|
||||
* 函数说明:只置事件位;真正的重建在主循环内完成(CH395F SPI 归 netTask 独占,
|
||||
* UI 不得直接操作)
|
||||
*/
|
||||
static void net_reconfig_request_cb(void) {
|
||||
if (sys_evtHandle != NULL) {
|
||||
(void)osEventFlagsSet(sys_evtHandle, SYS_EVT_NET_RECONFIG);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:CH395F 协议栈一次性初始化(两种构建模式共用)
|
||||
* 入口参数:无
|
||||
@@ -96,6 +110,10 @@ int net_stack_bring_up(void) {
|
||||
(phy == CH395F_PHY_10M_HALF) ? "10M HALF" :
|
||||
(phy == CH395F_PHY_DISCONN) ? "DISCONNECT" : "UNKNOWN");
|
||||
|
||||
/* 网络已重建完成、对外可用:递增代次号,通知各 TCP 服务(FTP/对时/远程显示)
|
||||
* 旧 Socket 已随芯片复位失效、应重建监听 */
|
||||
net_generation_inc();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -142,10 +160,26 @@ void net_task_func(void const *arg) {
|
||||
osEventFlagsSet(sys_evtHandle, SYS_EVT_NET_READY);
|
||||
}
|
||||
|
||||
/* 注册"立即应用网口配置"回调:UI 保存成功后经 net_cfg_request_apply() 触发 */
|
||||
net_cfg_set_apply_cb(net_reconfig_request_cb);
|
||||
|
||||
DBG_INFO("netTask: started (single-socket mode)");
|
||||
|
||||
/* ==================== 主轮询循环 ==================== */
|
||||
for (;;) {
|
||||
/* UI 保存网口配置后请求立即应用:在此重建网络(新 IP/掩码/网关/MAC)。
|
||||
* 重建完成后代次号已递增,各 TCP 服务据此重建监听;期间连接会断开(预期)。 */
|
||||
if (sys_evtHandle != NULL
|
||||
&& (osEventFlagsGet(sys_evtHandle) & SYS_EVT_NET_RECONFIG) != 0u) {
|
||||
(void)osEventFlagsClear(sys_evtHandle, SYS_EVT_NET_RECONFIG);
|
||||
DBG_INFO("netTask: apply new net config (re-init)");
|
||||
if (net_stack_bring_up() == 0) {
|
||||
(void)osEventFlagsSet(sys_evtHandle, SYS_EVT_NET_READY);
|
||||
} else {
|
||||
DBG_ERROR("netTask: re-init FAIL");
|
||||
}
|
||||
}
|
||||
|
||||
net_poll();
|
||||
net_process_messages();
|
||||
osDelay(1);
|
||||
|
||||
Reference in New Issue
Block a user