|
@@ -21,7 +21,7 @@ static int wifi_set_ssid = 0; //WiFi应答SSID设置
|
|
|
|
|
|
|
|
uint32_t unlink_time = 0;
|
|
uint32_t unlink_time = 0;
|
|
|
extern uint32_t pc_link_timeout;
|
|
extern uint32_t pc_link_timeout;
|
|
|
-uint32_t connectTcpFlag = 0;
|
|
|
|
|
|
|
+
|
|
|
char TCP_IP_PORT[8] = {"8001"};
|
|
char TCP_IP_PORT[8] = {"8001"};
|
|
|
char MAC_ADDR[20] = {0};
|
|
char MAC_ADDR[20] = {0};
|
|
|
uint32_t broadDevFlag = 0;
|
|
uint32_t broadDevFlag = 0;
|
|
@@ -415,7 +415,7 @@ void WIFI_recv_deal(void)
|
|
|
int data_len = g_wifi_rx_last>g_wifi_rx_head?(g_wifi_rx_last-g_wifi_rx_head):(WIFI_RX_BUF_SIZE+g_wifi_rx_last-g_wifi_rx_head);
|
|
int data_len = g_wifi_rx_last>g_wifi_rx_head?(g_wifi_rx_last-g_wifi_rx_head):(WIFI_RX_BUF_SIZE+g_wifi_rx_last-g_wifi_rx_head);
|
|
|
// int udp_data_len = 0;
|
|
// int udp_data_len = 0;
|
|
|
char* data = (char*)g_wifi_rx_buf;
|
|
char* data = (char*)g_wifi_rx_buf;
|
|
|
- if(data_len < 5)
|
|
|
|
|
|
|
+ if((data_len < 5)&&(wifi_state != WIFI_TRANS))
|
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
//判断是否接收完成
|
|
//判断是否接收完成
|
|
@@ -457,21 +457,25 @@ void WIFI_recv_deal(void)
|
|
|
if(WIFI_LISTEN == wifi_state){
|
|
if(WIFI_LISTEN == wifi_state){
|
|
|
/*上电需要广播地址*/
|
|
/*上电需要广播地址*/
|
|
|
broadDevFlag = 1;
|
|
broadDevFlag = 1;
|
|
|
- sysinf.s10_flag = 1;
|
|
|
|
|
- if(sysinf.connectTcpFlag == 1){
|
|
|
|
|
- if(wifi_tx_len){
|
|
|
|
|
- char cStr [40] = {0};
|
|
|
|
|
- my_sprintf ( cStr,sizeof(cStr), "AT+CIPSEND=0,%d", wifi_tx_len );
|
|
|
|
|
- ESP32_Send_AT_Cmd ( cStr, 3000 );
|
|
|
|
|
- }
|
|
|
|
|
- sysinf.pc_link_timeout = 0;
|
|
|
|
|
- sysinf.pc_channel_recv = PC_CONNECT_TYPE_WIFI;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sysinf.s10_flag = 1;
|
|
|
|
|
+ resendtime = 0;
|
|
|
|
|
+ wifi_tx_len = 0;
|
|
|
|
|
+ memset(wifi_tx_buf, 0, sizeof(wifi_tx_buf));
|
|
|
|
|
+ // if(sysinf.connectTcpFlag == 1){
|
|
|
|
|
+ // if(wifi_tx_len){
|
|
|
|
|
+ // char cStr [40] = {0};
|
|
|
|
|
+ // my_sprintf ( cStr,sizeof(cStr), "AT+CIPSEND=0,%d", wifi_tx_len );
|
|
|
|
|
+ // ESP32_Send_AT_Cmd ( cStr, 3000 );
|
|
|
|
|
+ // }
|
|
|
|
|
+ // // sysinf.pc_link_timeout = 0;
|
|
|
|
|
+ // // sysinf.pc_channel_recv = PC_CONNECT_TYPE_WIFI;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // wifi_receive_clear();
|
|
|
}
|
|
}
|
|
|
wifi_state++;
|
|
wifi_state++;
|
|
|
resendtime = 0;
|
|
resendtime = 0;
|
|
|
HAL_Delay(1000);
|
|
HAL_Delay(1000);
|
|
|
- // wifi_receive_clear();
|
|
|
|
|
|
|
+ //
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case WIFI_CWLAP:{
|
|
case WIFI_CWLAP:{
|
|
@@ -526,7 +530,6 @@ void WIFI_recv_deal(void)
|
|
|
//收到AT+CIPSEND回应,可发送数据
|
|
//收到AT+CIPSEND回应,可发送数据
|
|
|
Van_Device_Printf(VAN_LOG_WIFI,"\n--> SEND OK", wifi_tx_len);
|
|
Van_Device_Printf(VAN_LOG_WIFI,"\n--> SEND OK", wifi_tx_len);
|
|
|
wifi_ack_delay = 0;//从发送写指令,到此才算发送完成
|
|
wifi_ack_delay = 0;//从发送写指令,到此才算发送完成
|
|
|
- wifi_tx_len = 0;
|
|
|
|
|
resendtime = 0;
|
|
resendtime = 0;
|
|
|
wifi_tx_len = 0;
|
|
wifi_tx_len = 0;
|
|
|
memset(wifi_tx_buf, 0, sizeof(wifi_tx_buf));
|
|
memset(wifi_tx_buf, 0, sizeof(wifi_tx_buf));
|
|
@@ -534,11 +537,18 @@ void WIFI_recv_deal(void)
|
|
|
}
|
|
}
|
|
|
else if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, "OK\r\n"))
|
|
else if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, "OK\r\n"))
|
|
|
{
|
|
{
|
|
|
- // wifi_receive_clear();
|
|
|
|
|
|
|
+ wifi_receive_clear();
|
|
|
Van_Device_Printf(VAN_LOG_WIFI,"\n--> OK W %d", wifi_tx_len);
|
|
Van_Device_Printf(VAN_LOG_WIFI,"\n--> OK W %d", wifi_tx_len);
|
|
|
WriteComm2((char *)wifi_tx_buf, wifi_tx_len+1);
|
|
WriteComm2((char *)wifi_tx_buf, wifi_tx_len+1);
|
|
|
wifi_ack_delay = 3000;
|
|
wifi_ack_delay = 3000;
|
|
|
}
|
|
}
|
|
|
|
|
+ else if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, ">"))
|
|
|
|
|
+ {
|
|
|
|
|
+ wifi_receive_clear();
|
|
|
|
|
+ Van_Device_Printf(VAN_LOG_WIFI,"\n--> > W %d", wifi_tx_len);
|
|
|
|
|
+ WriteComm2((char *)wifi_tx_buf, wifi_tx_len+1);
|
|
|
|
|
+ wifi_ack_delay = 3000;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, "DISCONNECT"))
|
|
if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, "DISCONNECT"))
|
|
|
{
|
|
{
|
|
@@ -553,10 +563,12 @@ void WIFI_recv_deal(void)
|
|
|
{
|
|
{
|
|
|
int iProcLen = DecodeNew(&uart0_massage,uart0_data,g_wifi_rx_buf, &g_wifi_rx_head,g_wifi_rx_last,WIFI_RX_BUF_SIZE);
|
|
int iProcLen = DecodeNew(&uart0_massage,uart0_data,g_wifi_rx_buf, &g_wifi_rx_head,g_wifi_rx_last,WIFI_RX_BUF_SIZE);
|
|
|
if (iProcLen > 0) {
|
|
if (iProcLen > 0) {
|
|
|
- sysinf.pc_channel_recv = PC_CONNECT_TYPE_WIFI;
|
|
|
|
|
|
|
+ sysinf.pc_channel_recv = PC_CONNECT_TYPE_WIFI;
|
|
|
|
|
+ sysinf.connectHostFlag = 1;
|
|
|
sysinf.pc_link_timeout = 0;
|
|
sysinf.pc_link_timeout = 0;
|
|
|
uart0_massage.data = (char *)uart0_data;
|
|
uart0_massage.data = (char *)uart0_data;
|
|
|
query_pc_cmd(&uart0_massage);
|
|
query_pc_cmd(&uart0_massage);
|
|
|
|
|
+ wifi_receive_clear();
|
|
|
}
|
|
}
|
|
|
// wifi_receive_clear();
|
|
// wifi_receive_clear();
|
|
|
// set_pc_chanel_recv(1);
|
|
// set_pc_chanel_recv(1);
|
|
@@ -575,8 +587,10 @@ void WIFI_recv_deal(void)
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- wifi_receive_clear();
|
|
|
|
|
|
|
+ if(WIFI_TRANS != wifi_state){
|
|
|
|
|
+ wifi_receive_clear();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -681,7 +695,7 @@ void WIFI_send_deal(void)
|
|
|
if(sysinf.connectTcpFlag){
|
|
if(sysinf.connectTcpFlag){
|
|
|
if(resendtime < MAX_RESEND_TIME)
|
|
if(resendtime < MAX_RESEND_TIME)
|
|
|
{
|
|
{
|
|
|
- ESP32_Link_Server(enumTCP,sysinf.TCP_IP_Addr, TCP_IP_PORT, Multiple_ID_0);
|
|
|
|
|
|
|
+ ESP32_Link_Server(enumTCP,sysinf.TCP_IP_Addr, sysinf.TCP_IP_PORT, Multiple_ID_0);
|
|
|
}else{
|
|
}else{
|
|
|
/*多次TCP未链接,链接UDP*/
|
|
/*多次TCP未链接,链接UDP*/
|
|
|
// connectTcpFlag = 0;
|
|
// connectTcpFlag = 0;
|
|
@@ -700,7 +714,8 @@ void WIFI_send_deal(void)
|
|
|
if(resendtime < MAX_RESEND_TIME)
|
|
if(resendtime < MAX_RESEND_TIME)
|
|
|
{
|
|
{
|
|
|
if(wifi_tx_len){
|
|
if(wifi_tx_len){
|
|
|
- char cStr [40] = {0};
|
|
|
|
|
|
|
+ char cStr [40] = {0};
|
|
|
|
|
+ Van_Device_Printf(VAN_LOG_WIFI,"\nbuflen:%d %d %s",g_wifi_rx_head,g_wifi_rx_last, g_wifi_rx_buf);
|
|
|
my_sprintf ( cStr,sizeof(cStr),"AT+CIPSEND=0,%d", wifi_tx_len );
|
|
my_sprintf ( cStr,sizeof(cStr),"AT+CIPSEND=0,%d", wifi_tx_len );
|
|
|
ESP32_Send_AT_Cmd ( cStr, 3000 );
|
|
ESP32_Send_AT_Cmd ( cStr, 3000 );
|
|
|
}
|
|
}
|