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:
@@ -83,6 +83,8 @@ void clear_mqtt_buf(void)
|
||||
memset(mqttBuf, 0, MAX_MQTTBUF_LEN);
|
||||
}
|
||||
|
||||
#endif /* NET_SSC_ENABLE */
|
||||
|
||||
/*********************************************************************
|
||||
* @fn mStopIfError
|
||||
*
|
||||
@@ -98,6 +100,7 @@ void mStopIfError(u8 iError)
|
||||
printf("Error: 0x%02X\r\n", (u16)iError);
|
||||
}
|
||||
|
||||
#if NET_SSC_ENABLE
|
||||
|
||||
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);
|
||||
|
||||
{
|
||||
PRINT("TCP Connect Success
|
||||
\n");
|
||||
PRINT("socket id: %d
|
||||
\n", socketid);
|
||||
PRINT("TCP Connect Success\r\n");
|
||||
PRINT("socket id: %d\r\n", socketid);
|
||||
}
|
||||
|
||||
// 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
|
||||
{
|
||||
{
|
||||
PRINT("TCP Disconnect
|
||||
\n");
|
||||
PRINT("TCP Disconnect\r\n");
|
||||
}
|
||||
// WCHNET_SocketClose(socketid, 0);
|
||||
g_net_state.flag = 1;
|
||||
@@ -533,8 +533,7 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
|
||||
// }
|
||||
// if(g_flag_debug)
|
||||
{
|
||||
PRINT("TCP Timeout
|
||||
\n");
|
||||
PRINT("TCP Timeout\r\n");
|
||||
}
|
||||
// WCHNET_SocketClose(socketid, 0);
|
||||
g_net_state.flag = 1;
|
||||
@@ -606,6 +605,8 @@ void poll_mqtt(void)
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* NET_SSC_ENABLE */
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* 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>
|
||||
int get_ipstr_to_array(char *src, uint8_t *dst) {
|
||||
if (src == NULL || dst == NULL) {
|
||||
return -1; // <20><>Чָ<D0A7><D6B8>
|
||||
return -1;
|
||||
}
|
||||
|
||||
int part_count = 0;
|
||||
char *token = NULL;
|
||||
char *saveptr = NULL;
|
||||
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];
|
||||
strncpy(src_copy, src, sizeof(src_copy));
|
||||
src_copy[15] = '\0';
|
||||
|
||||
// <20>״ηָ<CEB7>
|
||||
token = strtok_r(src_copy, delim, &saveptr);
|
||||
while (token != NULL && part_count < 4) {
|
||||
char *endptr = NULL;
|
||||
long val = strtol(token, &endptr, 10);
|
||||
|
||||
// <20><><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
|
||||
if (*endptr != '\0' || val < 0 || val > 255) {
|
||||
return -2; // <20><><EFBFBD><EFBFBD><EFBFBD>ֻ<D6BB><F2B3ACB3><EFBFBD>Χ
|
||||
return -2;
|
||||
}
|
||||
|
||||
dst[part_count++] = (uint8_t)val;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>
|
||||
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) {
|
||||
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')) {
|
||||
return -4; // <20><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
|
||||
return -4;
|
||||
}
|
||||
|
||||
return 0; // <20>ɹ<EFBFBD>
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user