usb_cdc_4g_module如何向指定的TCP服务器发送数据
Posted: Mon Dec 04, 2023 9:51 am
环境:
SDK版本:esp-iot-solution-master
使用例程:usb_cdc_4g_module
4G模块:Air780E
现象:
一、在PC上调试4G模块,通过AT指令连接TCP服务器、发送数据正常。其发送数据需要三步:
步骤1:发送AT指令:AT+CIPSEND //返回大于号“>”
步骤2:发送数据:xxx
步骤3:启动发送:0x1a
二、esp32开发板调试4G模块,运行usb_cdc_4g_module例程, wifi上网功能正常。
向指定的TCP服务器发送数据,修改如下:
1、正常连网后,使用_ppp_network_stop(dte)函数,将模式由PPP切换到命令行模式
2、连接TCP服务器:可正常返回OK,tcp服务器端也显示“已连接”
esp_modem_dce_generic_command(s_dce, "AT+CIPSTART=\"TCP\",\"112.125.89.8\",42539\r",
MODEM_COMMAND_TIMEOUT_DEFAULT,my_handle_CIPSTART, NULL);
3、发送AT+CIPSEND指令:可正常返回大于号“>”
esp_modem_dce_generic_command(s_dce, "AT+CIPSEND\r", MODEM_COMMAND_TIMEOUT_DEFAULT, my_handle_CIPSEND, NULL);
问题:
上面的AT命令都可正常发送、响应,但纯数据部分如何发送?如发送“123456”,先后尝试过两种方法都不成功
int8_t end = 0x1a;
方法1:把数据当AT指令发,显然不行,会提示超时
esp_modem_dce_generic_command(s_dce, "123456", MODEM_COMMAND_TIMEOUT_DEFAULT, NULL, NULL);
esp_modem_dce_generic_command(s_dce, (const char *)(&end), MODEM_COMMAND_TIMEOUT_DEFAULT, NULL, NULL);
打印日志:
[0;31mE (33175) esp-modem-dte: esp_modem_dte_send_cmd(266): process command timeout [0m
[0;33mW (33175) esp_modem_dce: esp_modem_dce_generic_command(22): Command:123456 response timeout [0m
方法2:使用发送数据函数,没有任何提示。tcp服务器端接收不到数据
s_dce->dte->send_data(s_dce->dte, "123456", 6);
s_dce->dte->send_data(s_dce->dte, (const char *)(&end), 1);
SDK版本:esp-iot-solution-master
使用例程:usb_cdc_4g_module
4G模块:Air780E
现象:
一、在PC上调试4G模块,通过AT指令连接TCP服务器、发送数据正常。其发送数据需要三步:
步骤1:发送AT指令:AT+CIPSEND //返回大于号“>”
步骤2:发送数据:xxx
步骤3:启动发送:0x1a
二、esp32开发板调试4G模块,运行usb_cdc_4g_module例程, wifi上网功能正常。
向指定的TCP服务器发送数据,修改如下:
1、正常连网后,使用_ppp_network_stop(dte)函数,将模式由PPP切换到命令行模式
2、连接TCP服务器:可正常返回OK,tcp服务器端也显示“已连接”
esp_modem_dce_generic_command(s_dce, "AT+CIPSTART=\"TCP\",\"112.125.89.8\",42539\r",
MODEM_COMMAND_TIMEOUT_DEFAULT,my_handle_CIPSTART, NULL);
3、发送AT+CIPSEND指令:可正常返回大于号“>”
esp_modem_dce_generic_command(s_dce, "AT+CIPSEND\r", MODEM_COMMAND_TIMEOUT_DEFAULT, my_handle_CIPSEND, NULL);
问题:
上面的AT命令都可正常发送、响应,但纯数据部分如何发送?如发送“123456”,先后尝试过两种方法都不成功
int8_t end = 0x1a;
方法1:把数据当AT指令发,显然不行,会提示超时
esp_modem_dce_generic_command(s_dce, "123456", MODEM_COMMAND_TIMEOUT_DEFAULT, NULL, NULL);
esp_modem_dce_generic_command(s_dce, (const char *)(&end), MODEM_COMMAND_TIMEOUT_DEFAULT, NULL, NULL);
打印日志:
[0;31mE (33175) esp-modem-dte: esp_modem_dte_send_cmd(266): process command timeout [0m
[0;33mW (33175) esp_modem_dce: esp_modem_dce_generic_command(22): Command:123456 response timeout [0m
方法2:使用发送数据函数,没有任何提示。tcp服务器端接收不到数据
s_dce->dte->send_data(s_dce->dte, "123456", 6);
s_dce->dte->send_data(s_dce->dte, (const char *)(&end), 1);