fix: mStopIfError/GetMacAddr/get_ipstr_to_array 误被 #if NET_SSC_ENABLE 排除

这些共享函数被包裹在 #if NET_SSC_ENABLE 中导致链接失败:
- mStopIfError — net_srv_init 调用
- GetMacAddr     — peripheral_main 调用
- get_ipstr_to_array — tcp_json_srv 调用

修复:在 clear_mqtt_buf 后关闭 #if,mStopIfError 后重开;
在 poll_mqtt 后关闭 #if,get_ipstr_to_array 后重开
This commit is contained in:
wangfq
2026-07-01 11:51:10 +08:00
parent e5c99069a0
commit 131d767cc3

View File

@@ -83,6 +83,8 @@ void clear_mqtt_buf(void)
memset(mqttBuf, 0, MAX_MQTTBUF_LEN); memset(mqttBuf, 0, MAX_MQTTBUF_LEN);
} }
#endif /* NET_SSC_ENABLE */
/********************************************************************* /*********************************************************************
* @fn mStopIfError * @fn mStopIfError
* *
@@ -98,6 +100,7 @@ void mStopIfError(u8 iError)
printf("Error: 0x%02X\r\n", (u16)iError); printf("Error: 0x%02X\r\n", (u16)iError);
} }
#if NET_SSC_ENABLE
void mqtt_connect(void) void mqtt_connect(void)
{ {
@@ -504,10 +507,8 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
WCHNET_ModifyRecvBuf(socketid, (uint32_t) SocketRecvBuf[socketid], RECE_BUF_LEN); WCHNET_ModifyRecvBuf(socketid, (uint32_t) SocketRecvBuf[socketid], RECE_BUF_LEN);
{ {
PRINT("TCP Connect Success PRINT("TCP Connect Success\r\n");
\n"); PRINT("socket id: %d\r\n", socketid);
PRINT("socket id: %d
\n", socketid);
} }
// if(g_sub_code_enable.iot_enable){ // if(g_sub_code_enable.iot_enable){
@@ -517,8 +518,7 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
if (intstat & SINT_STAT_DISCONNECT) //disconnect if (intstat & SINT_STAT_DISCONNECT) //disconnect
{ {
{ {
PRINT("TCP Disconnect PRINT("TCP Disconnect\r\n");
\n");
} }
// WCHNET_SocketClose(socketid, 0); // WCHNET_SocketClose(socketid, 0);
g_net_state.flag = 1; g_net_state.flag = 1;
@@ -533,8 +533,7 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
// } // }
// if(g_flag_debug) // if(g_flag_debug)
{ {
PRINT("TCP Timeout PRINT("TCP Timeout\r\n");
\n");
} }
// WCHNET_SocketClose(socketid, 0); // WCHNET_SocketClose(socketid, 0);
g_net_state.flag = 1; g_net_state.flag = 1;
@@ -606,6 +605,8 @@ void poll_mqtt(void)
} }
} }
#endif /* NET_SSC_ENABLE */
/******************************************************************************* /*******************************************************************************
* Function Name : GetMacAddr * Function Name : GetMacAddr
@@ -630,51 +631,38 @@ void GetMacAddr(unsigned char *pMAC)
// <20><>IPv4<76><34>ַ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊ4<CEAA>ֽڵ<D6BD>uint8_t<5F><74><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD> // <20><>IPv4<76><34>ַ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊ4<CEAA>ֽڵ<D6BD>uint8_t<5F><74><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
int get_ipstr_to_array(char *src, uint8_t *dst) { int get_ipstr_to_array(char *src, uint8_t *dst) {
if (src == NULL || dst == NULL) { if (src == NULL || dst == NULL) {
return -1; // <20><>Чָ<D0A7><D6B8> return -1;
} }
int part_count = 0; int part_count = 0;
char *token = NULL; char *token = NULL;
char *saveptr = NULL; char *saveptr = NULL;
const char *delim = "."; const char *delim = ".";
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ÿ<EFBFBD><C3BF>޸ĵ<DEB8><C4B5>ڴ棨<DAB4><E6A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ棩<DAB4><E6A3A9><EFBFBD><EFBFBD>Ϊstrtok_r<5F><72><EFBFBD>޸<EFBFBD><DEB8>ַ<EFBFBD><D6B7><EFBFBD>
// <20><EFBFBD><E8B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵ<DEB8><C4B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>п<EFBFBD><D0BF><EFBFBD>
char src_copy[16]; char src_copy[16];
strncpy(src_copy, src, sizeof(src_copy)); strncpy(src_copy, src, sizeof(src_copy));
src_copy[15] = '\0'; src_copy[15] = '\0';
// <20>״ηָ<CEB7>
token = strtok_r(src_copy, delim, &saveptr); token = strtok_r(src_copy, delim, &saveptr);
while (token != NULL && part_count < 4) { while (token != NULL && part_count < 4) {
char *endptr = NULL; char *endptr = NULL;
long val = strtol(token, &endptr, 10); long val = strtol(token, &endptr, 10);
// <20><><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
if (*endptr != '\0' || val < 0 || val > 255) { if (*endptr != '\0' || val < 0 || val > 255) {
return -2; // <20><><EFBFBD><EFBFBD><EFBFBD>ֻ򳬳<D6BB><F2B3ACB3><EFBFBD>Χ return -2;
} }
dst[part_count++] = (uint8_t)val; dst[part_count++] = (uint8_t)val;
// <20><><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>
token = strtok_r(NULL, delim, &saveptr); token = strtok_r(NULL, delim, &saveptr);
} }
// <20><><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>
if (part_count != 4) { if (part_count != 4) {
return -3; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> return -3;
} }
// <20><><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ַ<EFBFBD>
if (token != NULL || (saveptr != NULL && *saveptr != '\0')) { if (token != NULL || (saveptr != NULL && *saveptr != '\0')) {
return -4; // <20><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD> return -4;
} }
return 0;
return 0; // <20>ɹ<EFBFBD>
} }
#if NET_SSC_ENABLE
void unpack_ssc_count_off(uint8_t socket,uint8_t count_mode, uint8_t *ip, uint16_t port, uint8_t *buf, uint32_t len) void unpack_ssc_count_off(uint8_t socket,uint8_t count_mode, uint8_t *ip, uint16_t port, uint8_t *buf, uint32_t len)
{ {