Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.71 KB | None | 0 0
  1. void tcp_server_task(void *pvParameters)
  2. {
  3.     ESP_LOGI(TCP_TAG, "task tcp_conn.");
  4.    
  5.     tcp_server_task_restart = false;
  6.    
  7.     /*create tcp socket*/
  8.     int socket_ret;
  9.  
  10.     ESP_LOGI(TCP_TAG, "tcp_server will start after 50ms!");
  11.     vTaskDelay(50 / portTICK_RATE_MS);
  12.     ESP_LOGI(TCP_TAG, "creating tcp server...");
  13.     socket_ret = create_tcp_server();
  14.  
  15.     if (socket_ret == ESP_FAIL)
  16.     {
  17.         ESP_LOGI(TCP_TAG, "create tcp socket error,stop.");
  18.         FlowMeterData.TCP_conn = false;
  19.         tcp_server_task_restart = true;
  20.         vTaskDelete(NULL);
  21.     }
  22.  
  23.     /*create a task to tx/rx data*/
  24.     //TaskHandle_t tx_rx_task;
  25.     //xTaskCreate(&send_data, "send_data", 4096, NULL, 4, &tx_rx_task);
  26.     //xTaskCreate(&recv_data, "recv_data", 4096, NULL, 4, &tx_rx_task);
  27.     while (!tcp_server_task_restart)
  28.     {
  29.         uint8_t databuff[EXAMPLE_DEFAULT_PKTSIZE];
  30.         int len = recv(connect_socket, databuff, EXAMPLE_DEFAULT_PKTSIZE, 0);
  31.         FlowMeterData.TCP_len = len;
  32.         if (len > 0)
  33.         {
  34.             memcpy(FlowMeterData.TCP_Buf, databuff, FlowMeterData.TCP_len);
  35.             printf("TCP(FLAG==1): FL_len:%d, FL_data:%s\n", FlowMeterData.TCP_len, FlowMeterData.TCP_Buf); // debug
  36.             FlowMeterData.TCP_got_packet = true;
  37.             infoLED_WIFI_toggle();
  38.         }
  39.  
  40.         vTaskDelay(10 / portTICK_RATE_MS); //every 10ms
  41.  
  42.         if (len <= 0)
  43.         {
  44.             int err_ret = check_working_socket();
  45.             if (err_ret == ECONNRESET || ECONNABORTED)
  46.             {
  47.                 ESP_LOGW(TCP_TAG, "tcp disconnected... stop.\n");
  48.                 printf("Code:%d\n", err_ret);
  49.                 if (err_ret == ENOTCONN)
  50.                 {
  51.                     ESP_LOGW(TCP_TAG, "(Socket is not connected)\n");
  52.                 }
  53.                 break;
  54.             }
  55.         }
  56.     }
  57.     close_socket();
  58.     printf("socket closed\n");
  59.     FlowMeterData.TCP_conn = false;
  60.     set_wifi_exchange_stopped();
  61.     tcp_server_task_restart = true;
  62.     vTaskDelete(NULL);
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement