refactor: 用 NET_SSC_ENABLE 宏隔离原有 TCP/UDP 代码,默认=0

net_config.h:
- 新增 NET_SSC_ENABLE=0, NET_JSON_ENABLE=1 功能开关
- WCHNET_NUM_UDP/TCP 根据开关条件编译
- 默认仅保留 JSON TCP server (1 TCP socket),SSC 全部禁用

net_srv.h:
- SocketId_TCP/UDP extern 放入 #if NET_SSC_ENABLE
- WCHNET_CreateTcpSocket/MqttSocket 原型放入 #if

net_srv.c:
- SSC/MQTT 变量和函数全部置入 #if NET_SSC_ENABLE
- WCHNET_HandleSockInt 中 SSC 处理分支置入 #if
- net_srv_init 中 WCHNET_CreateUdpSocket 和 memset(socket) 置入 #if
- JSON routing 保持无条件编译

peripheral_main.c:
- WCHNET_CreateTcpSocket/MqttSocket 调用置入 #if NET_SSC_ENABLE

tcp_json_srv.h:
- 移除 SocketId_TCP/UDP extern(JSON handler 不再引用)

影响:NET_SSC_ENABLE=0 时设备仅运行 TCP JSON server (port 5960),
原有 SSC UDP/TCP/MQTT 代码不参与编译,零干扰。
This commit is contained in:
wangfq
2026-07-01 11:33:32 +08:00
parent ba35ea8ae3
commit e5c99069a0
5 changed files with 71 additions and 30 deletions

View File

@@ -17,16 +17,34 @@
extern "C" {
#endif
/*********************************************************************
* Feature toggles (0 = disabled, 1 = enabled)
*/
#define NET_SSC_ENABLE 0 /* SSC (UDP + TCP client) protocol support */
#define NET_JSON_ENABLE 1 /* TCP JSON protocol server (port 5960) */
/*********************************************************************
* socket configuration, IPRAW + UDP + TCP + TCP_LISTEN = number of sockets
*/
#define WCHNET_NUM_IPRAW 0 /* Number of IPRAW connections */
#if NET_SSC_ENABLE
#define WCHNET_NUM_UDP 1 /* The number of UDP connections */
#else
#define WCHNET_NUM_UDP 0
#endif
#define WCHNET_NUM_TCP 2 /* Number of TCP connections (1 SSC/MQTT + 1 JSON accepted) */
#if NET_JSON_ENABLE && NET_SSC_ENABLE
#define WCHNET_NUM_TCP 2 /* JSON listen+data(1) + SSC client(1) */
#elif NET_JSON_ENABLE
#define WCHNET_NUM_TCP 1 /* JSON listen+data(1) */
#elif NET_SSC_ENABLE
#define WCHNET_NUM_TCP 1 /* SSC client(1) */
#else
#define WCHNET_NUM_TCP 0
#endif
#define WCHNET_NUM_TCP_LISTEN 1 /* Number of TCP listening (JSON protocol on port 5960) */
#define WCHNET_NUM_TCP_LISTEN 1 /* Number of TCP listening (required internally) */
/* The number of sockets, the maximum is 31 */
#define WCHNET_MAX_SOCKET_NUM (WCHNET_NUM_IPRAW+WCHNET_NUM_UDP+WCHNET_NUM_TCP+WCHNET_NUM_TCP_LISTEN)

View File

@@ -14,7 +14,7 @@
#include <stdint.h>
#define MAX_COUNTER_NET_STATE_NORMAL 100
//#define RECE_BUF_LEN 512 /* ?????????????ó?? */
//#define RECE_BUF_LEN 512 /* ?????????????<EFBFBD><EFBFBD>?? */
#define MAX_REPORT_INTERVAL_MS 30000 //60000 //180??
#define MIN_REPORT_INTERVAL_MS 6000 // 6??
@@ -35,7 +35,7 @@
#define TOPIC_DEFAULT_SUBSCRIBE "ptpc/display"
#define TOPIC_DEFAULT_PUBLISH "gtpc/display/Initialize"
#define UART_BAUD_DEFAULT_PORT_1 115200 // Loop MCU 通信的波特率 TTL, g_storage_uart_baud_1
#define UART_BAUD_DEFAULT_PORT_1 115200 // <EFBFBD><EFBFBD>Loop MCU ͨ<EFBFBD>ŵIJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TTL, g_storage_uart_baud_1
#define UART_BAUD_DEFAULT_PORT_2 115200 // baud2 TTL g_storage_uart_baud_2
@@ -49,10 +49,10 @@ typedef enum
typedef struct _LOCAL_NET_CFG
{
uint8_t mac[6];
uint8_t lip[4]; /*local IP±???IP???·*/
uint8_t sub[4]; /*×???????*/
uint8_t lip[4]; /*local IP<EFBFBD><EFBFBD>???IP???<EFBFBD><EFBFBD>*/
uint8_t sub[4]; /*<EFBFBD><EFBFBD>???????*/
uint8_t gw[4];
uint8_t dns[4]; /*DNS·????÷???·*/
uint8_t dns[4]; /*DNS<EFBFBD><EFBFBD>????<EFBFBD><EFBFBD>???<EFBFBD><EFBFBD>*/
uint16_t port_ssc_tcp;
uint16_t port_ssc_udp;
@@ -66,7 +66,7 @@ extern Local_Net_Cfg local_net_cfg;
typedef struct _NET_CENTER_INFO_
{
uint8_t lssc_ip[4]; //Local Sotfware Service Center ±????í??·???????
uint8_t lssc_ip[4]; //Local Sotfware Service Center <EFBFBD><EFBFBD>????<EFBFBD><EFBFBD>??<3F><>???????
uint16_t msg_port;
uint16_t tcp_port; // use for server http port
uint16_t udp_port;
@@ -79,7 +79,7 @@ typedef struct _IOT_NET_INFO_
{
uint8_t remote_addr[64];
uint16_t mqtt_port;
uint8_t client_id[64]; //?????±±í??????±??ú?ò????
uint8_t client_id[64]; //?????<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>??????<3F><>??<3F><>?<3F><>????
uint8_t username[64];
uint8_t password[32];
@@ -95,7 +95,7 @@ extern IOT_NET_INFO iot_net_info;
typedef struct _IOT_TOPIC_
{
uint8_t clientid_enable; // ?÷????·?°ü??¤CClientID
uint8_t clientid_enable; // ?<EFBFBD><EFBFBD>????<EFBFBD><EFBFBD>?<3F>㨹??<3F><>CClientID
uint8_t topic_pub[MAX_TOPIC_LENGTH];
uint8_t topic_sub[MAX_TOPIC_LENGTH];
} IOT_Topic;
@@ -188,28 +188,28 @@ void write_net_config(Local_Net_Cfg *local, NET_CENTER_INFO *center, IOT_NET_INF
#define SSC_Code_Count_Off "Count_Off"
#define SSC_Code_Device_Info "Device_Info"
#define SSC_Code_Devs_Info "Devs_Info" //add by wfq 2020-07-14 ?????????????°??×??è±????è±?????
#define SSC_Code_Devs_Info "Devs_Info" //add by wfq 2020-07-14 ?????????????<EFBFBD><EFBFBD>??<3F><>??<3F><><EFBFBD><EFBFBD>????<3F><><EFBFBD><EFBFBD>?????
#define SSC_Code_Global_Require "Global_Get"
#define SSC_Code_Global_Set "Global_Set"
#define SSC_Code_Collect_ALL "Collect_All" //?????ù????????????
#define SSC_Code_Collect_ALL "Collect_All" //?????<EFBFBD><EFBFBD>????????????
#define SSC_Code_Collect_Single "Collect_Single" //??????????????????
#define SSC_Code_Config "Config"
#define SSC_Code_DisplayLED "DisplayLED"
#define SSC_Code_Device_Net_Set "Device_Net_Set" //?????è±?????????
#define SSC_Code_Device_Net_Set "Device_Net_Set" //?????<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?????????
#define SSC_Code_HeartBeat "HeartBeat"
#define SSC_Code_CDev_Subs "CDev_Subs" //????×??è±????·????
#define SSC_Code_Device_IOT_Set "Dev_IOT_Set" //?è??IOT???????? MQTT???·?????????????§??????
#define SSC_Code_CDev_Subs "CDev_Subs" //????<EFBFBD><EFBFBD>??<3F><><EFBFBD><EFBFBD>????<EFBFBD><EFBFBD>????
#define SSC_Code_Device_IOT_Set "Dev_IOT_Set" //?<EFBFBD><EFBFBD>??IOT???????? MQTT???<EFBFBD><EFBFBD>?????????????<EFBFBD><EFBFBD>??????
#define SSC_Code_ACS_Collect_Area "ACS_Collect_Area"
#define SSC_Code_ACS_Collect_Counter "ACS_Collect_Counter" //?????????????????¨?????? add 2021-01-04
#define SSC_Code_ACS_Collect_Counter "ACS_Collect_Counter" //?????????????????<EFBFBD><EFBFBD>?????? add 2021-01-04
#define SSC_Code_Collect_NT_BUS "Collect_NT_BUS" //??????????????×??????·????
#define SSC_Code_CDetail_NT_BUS "CDetail_NT_BUS" //??????????????×????ê?????·???? add 2022-04-19
#define SSC_Code_Collect_NT_BUS "Collect_NT_BUS" //??????????????<EFBFBD><EFBFBD>??????<EFBFBD><EFBFBD>????
#define SSC_Code_CDetail_NT_BUS "CDetail_NT_BUS" //??????????????<EFBFBD><EFBFBD>????<EFBFBD><EFBFBD>?????<EFBFBD><EFBFBD>???? add 2022-04-19
#define SSC_Code_Radar_Reset "Radar_Reset" //?×?????? 2021-04-23
#define SSC_Code_Radar_Reset "Radar_Reset" //?<EFBFBD><EFBFBD>?????? 2021-04-23
#define SSC_Code_SerialNet "SerialNet" //485???????? 2021-04-23
#define SSC_Code_Dev_Reset "Dev_Reset" // ?è±??????? 2024-12-13
#define SSC_Code_Dev_Reset "Dev_Reset" // ?<EFBFBD><EFBFBD><EFBFBD><EFBFBD>??????? 2024-12-13
#define SSC_Code_GetDeviceInfo "\"GetDeviceInfo\""
@@ -240,8 +240,8 @@ void write_net_config(Local_Net_Cfg *local, NET_CENTER_INFO *center, IOT_NET_INF
#define SSC_Code_ACS_Collect_CJQ "ACS_Collect_CJQ"
//add by wangfq 2022-04-14
#define SSC_Code_Tran_Sub "Tran_Sub" // ??×??è±??¨??????
#define SSC_Code_Dev_Type "\"Dev_Type\"" // ?è±??à?? ×????? 20 DLD950
#define SSC_Code_Tran_Sub "Tran_Sub" // ??<EFBFBD><EFBFBD>??<3F><><EFBFBD><EFBFBD>??<3F><>??????
#define SSC_Code_Dev_Type "\"Dev_Type\"" // ?<EFBFBD><EFBFBD><EFBFBD><EFBFBD>??<3F><>?? <20><>?<3F><>????? 20 DLD950
#define SSC_Code_Cmd "Cmd"
#define SSC_Code_Detail "Detail"
@@ -249,6 +249,11 @@ void write_net_config(Local_Net_Cfg *local, NET_CENTER_INFO *center, IOT_NET_INF
extern uint8_t g_flag_timestamp;
extern uint8_t RemoteIP[4];
#if NET_SSC_ENABLE
extern uint8_t SocketId_TCP;
extern uint8_t SocketId_UDP;
#endif
void manage_udp_message(uint8_t socket, uint8_t *ip, uint16_t port, uint8_t *buf, uint32_t len);
@@ -278,8 +283,10 @@ void GetMacAddr(unsigned char *pMAC);
void mStopIfError(u8 iError);
void net_srv_init(void);
#if NET_SSC_ENABLE
void WCHNET_CreateTcpMqttSocket(void);
void WCHNET_CreateTcpSocket(void);
#endif
void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat);
int get_ipstr_to_array(char *src, uint8_t *dst);
void WCHNET_HandleGlobalInt(void);

View File

@@ -47,8 +47,6 @@ typedef enum {
/*===========================================================================
* Externs
*===========================================================================*/
extern uint8_t SocketId_TCP;
extern uint8_t SocketId_UDP;
extern uint8_t g_json_socket_listen; // TCP socket ID (listen + data)
extern TcpJsonAuthState g_json_auth_state;
extern uint32_t g_json_auth_timer; // ms timer for auth timeout

View File

@@ -55,7 +55,7 @@ uint16_t srcport = 6000;
//UINT16 aport=1000; /* CH579?????????? */
uint32_t g_wdg_counter = 0;
#if NET_SSC_ENABLE
uint8_t SocketId_TCP;
uint8_t SocketId_UDP ;
@@ -461,10 +461,12 @@ void WCHNET_DataManage(uint8_t id)
}
g_net_state.flag = 4;
}
#endif /* NET_SSC_ENABLE */
/*********************************************************************
@@ -487,6 +489,7 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
return;
}
#if NET_SSC_ENABLE
g_net_state.intstat = intstat;
if (intstat & SINT_STAT_RECV) //receive data
@@ -501,8 +504,10 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
WCHNET_ModifyRecvBuf(socketid, (uint32_t) SocketRecvBuf[socketid], RECE_BUF_LEN);
{
PRINT("TCP Connect Success\r\n");
PRINT("socket id: %d\r\n", socketid);
PRINT("TCP Connect Success
\n");
PRINT("socket id: %d
\n", socketid);
}
// if(g_sub_code_enable.iot_enable){
@@ -512,7 +517,8 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
if (intstat & SINT_STAT_DISCONNECT) //disconnect
{
{
PRINT("TCP Disconnect\r\n");
PRINT("TCP Disconnect
\n");
}
// WCHNET_SocketClose(socketid, 0);
g_net_state.flag = 1;
@@ -527,15 +533,19 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
// }
// if(g_flag_debug)
{
PRINT("TCP Timeout\r\n");
PRINT("TCP Timeout
\n");
}
// WCHNET_SocketClose(socketid, 0);
g_net_state.flag = 1;
// WCHNET_CreateTcpSocket();
}
#endif /* NET_SSC_ENABLE */
}
#if NET_SSC_ENABLE
void dbn_net_ssc_srv(void)
{
uint8_t _flag_timestamp = 0;
@@ -1039,6 +1049,8 @@ void manage_mqtt_recv_message(char * msg, int length)
}
}
#endif /* NET_SSC_ENABLE */
@@ -1106,7 +1118,9 @@ void net_srv_init(void)
WCHNET_ConfigKeepLive(&cfg);
}
#endif
#if NET_SSC_ENABLE
memset(socket, 0xff, WCHNET_MAX_SOCKET_NUM);
#endif
}
@@ -1114,7 +1128,9 @@ void net_srv_init(void)
if(g_net_state.flag == 1)
{
#if NET_SSC_ENABLE
WCHNET_CreateUdpSocket();
#endif
tcp_json_srv_init(); // Start JSON protocol TCP listener on port 5960
}

View File

@@ -235,6 +235,7 @@ void Main_Circulation(void)
}
if(g_net_state.flag == 2)
{
#if NET_SSC_ENABLE
if(g_sub_code_enable.iot_enable){
if(iot_net_info.mode == IOT_Addr_IP_Mode){
if(get_ipstr_to_array(iot_net_info.remote_addr, RemoteIP) == 0){
@@ -250,6 +251,7 @@ void Main_Circulation(void)
{
WCHNET_CreateTcpSocket();
}
#endif
}