Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void tcp_server_task(void *pvParameters)
- {
- ESP_LOGI(TCP_TAG, "task tcp_conn.");
- tcp_server_task_restart = false;
- /*create tcp socket*/
- int socket_ret;
- ESP_LOGI(TCP_TAG, "tcp_server will start after 50ms!");
- vTaskDelay(50 / portTICK_RATE_MS);
- ESP_LOGI(TCP_TAG, "creating tcp server...");
- socket_ret = create_tcp_server();
- if (socket_ret == ESP_FAIL)
- {
- ESP_LOGI(TCP_TAG, "create tcp socket error,stop.");
- FlowMeterData.TCP_conn = false;
- tcp_server_task_restart = true;
- vTaskDelete(NULL);
- }
- /*create a task to tx/rx data*/
- //TaskHandle_t tx_rx_task;
- //xTaskCreate(&send_data, "send_data", 4096, NULL, 4, &tx_rx_task);
- //xTaskCreate(&recv_data, "recv_data", 4096, NULL, 4, &tx_rx_task);
- while (!tcp_server_task_restart)
- {
- uint8_t databuff[EXAMPLE_DEFAULT_PKTSIZE];
- int len = recv(connect_socket, databuff, EXAMPLE_DEFAULT_PKTSIZE, 0);
- FlowMeterData.TCP_len = len;
- if (len > 0)
- {
- memcpy(FlowMeterData.TCP_Buf, databuff, FlowMeterData.TCP_len);
- printf("TCP(FLAG==1): FL_len:%d, FL_data:%s\n", FlowMeterData.TCP_len, FlowMeterData.TCP_Buf); // debug
- FlowMeterData.TCP_got_packet = true;
- infoLED_WIFI_toggle();
- }
- vTaskDelay(10 / portTICK_RATE_MS); //every 10ms
- if (len <= 0)
- {
- int err_ret = check_working_socket();
- if (err_ret == ECONNRESET || ECONNABORTED)
- {
- ESP_LOGW(TCP_TAG, "tcp disconnected... stop.\n");
- printf("Code:%d\n", err_ret);
- if (err_ret == ENOTCONN)
- {
- ESP_LOGW(TCP_TAG, "(Socket is not connected)\n");
- }
- break;
- }
- }
- }
- close_socket();
- printf("socket closed\n");
- FlowMeterData.TCP_conn = false;
- set_wifi_exchange_stopped();
- tcp_server_task_restart = true;
- vTaskDelete(NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement