diff --git a/applications/VK_Client.c b/applications/VK_Client.c index 64ad0b4..0e3d569 100644 --- a/applications/VK_Client.c +++ b/applications/VK_Client.c @@ -9,6 +9,7 @@ #include "rtthread.h" #include "rttypes.h" +#ifdef EDU_TRAINING #if defined(__CC_ARM) && !defined(__clang__) #define VK_MAVLINK_DO_PRAGMA(x) _Pragma(#x) #define __pragma(x) VK_MAVLINK_DO_PRAGMA(x) @@ -22,22 +23,25 @@ #undef __pragma #undef VK_MAVLINK_DO_PRAGMA #endif +#endif #define DBG_TAG "LINK_LOG" #define DBG_LVL DBG_INFO #include "rtdbg.h" -char cmd_cmd[100] = {0}; -char cmd_str[100] = {0}; +static char cmd_cmd[128] = {0}; no_carrier_match_t _no_carrier_t = {0}; /*关闭TCP连接*/ void client_tcp_close(Cclient_t *client) { + char close_cmd[24]; + client->connect_sta = false; - rt_sprintf(cmd_str, AT_QICLOSE, client->connect_ID); - BSP_LTE_SendCmd(cmd_str, DEFAULT_EXPECT, DEFAULT_ERROR, LTE_CMD_WAIT_QICLOSE); + rt_snprintf(close_cmd, sizeof(close_cmd), AT_QICLOSE, client->connect_ID); + BSP_LTE_SendCmd(close_cmd, DEFAULT_EXPECT, DEFAULT_ERROR, + LTE_CMD_WAIT_QICLOSE); client->error_cnt = 0; } @@ -130,10 +134,8 @@ static int no_carrier_char_parser(uint8_t ch){ } static void no_carrier_match(uint8_t * at_buf,rt_size_t len){ - uint8_t buff[256] = {0}; - rt_memcpy(buff, at_buf, len); for(int i = 0;i < len;i++){ - if(no_carrier_char_parser(buff[i]) == 1){ + if(no_carrier_char_parser(at_buf[i]) == 1){ _no_carrier_t.match_flag = COMPLETE_MATCH; } } @@ -230,36 +232,8 @@ int16_t EC800K_Reset(void) { return rst; } -/*将EC800K为透传模式*/ -// int16_t Set_Tansparent_Mode(Cclient_t *pClient) -//{ -// int AT_QISWTMD_error_count = 0; -// /*如果socket成功打开,则将它设置为透传模式*/ -// if(pClient->connect_sta == true) -// { -// /*打开透传模式*/ -// memset(cmd_cmd, 0, sizeof(cmd_cmd)); -// sprintf(cmd_cmd, AT_QISWTMD, pClient->connect_ID, 2); -// while(0 != BSP_LTE_SendCmd( cmd_cmd, CONNECTE_OK, DEFAULT_ERROR, -// LTE_CMD_WAIT_LONG )) -// { -// //rt_thread_mdelay(1000); -// -// if(AT_QISWTMD_error_count++ > 5) -// { -// EC800K_Reset(); -// -// rt_thread_mdelay(3000); -// -// break; -// } -// } -// } -// -// return 0; -// } - int16_t client_tcp_connect(Cclient_t *client) { + int cmd_len; int16_t rtn = 0; if (lte_dev.config_sta == false) @@ -299,9 +273,14 @@ int16_t client_tcp_connect(Cclient_t *client) { // 2, 打开链接 memset(cmd_cmd, 0, sizeof(cmd_cmd)); - memset(cmd_str, 0, sizeof(cmd_str)); - rt_sprintf(cmd_cmd, AT_QIOPEN_TRANS /*AT_QIOPEN_FORW*/, client->connect_ID, - client->mode, client->ip, client->port); + cmd_len = rt_snprintf(cmd_cmd, sizeof(cmd_cmd), AT_QIOPEN_TRANS, + client->connect_ID, client->mode, client->ip, + client->port); + if (cmd_len < 0 || cmd_len >= (int)sizeof(cmd_cmd)) { + LOG_E("QIOPEN command is too long"); + lte_diag.qioopen_failures++; + return -1; + } /* 透传模式成功返回 CONNECT;一次尝试只发送一次 QIOPEN。 */ while (0 != BSP_LTE_SendCmd(cmd_cmd, CONNECTE_OK, DEFAULT_ERROR, LTE_CMD_WAIT_QIOPEN)) { @@ -328,10 +307,6 @@ int16_t client_tcp_connect(Cclient_t *client) { client->error_cnt = 0; lte_dev.reset_flag = DTU_CF_NO_NEED_RESET; -#ifdef TRANSPARENT_MODE -// Set_Tansparent_Mode(client); -#endif - #ifdef EDU_TRAINING mavlink_message_t msg = {0}; uint8_t mav_buf[MAVLINK_MAX_PACKET_LEN] = {0}; @@ -492,9 +467,6 @@ void client_yield(CLte_dev_t *pLte_dev) { } void client_task(void) { - if (lte_dev.config_sta == false) { - } - client_yield(<e_dev); } diff --git a/applications/drv_ec800k.c b/applications/drv_ec800k.c index 709e1a8..1e45526 100644 --- a/applications/drv_ec800k.c +++ b/applications/drv_ec800k.c @@ -19,29 +19,16 @@ Cclient_t client1 = { - .valid = true, .mode = "TCP", /*教培IP和PORT*/ .ip = "uavedu.jiagutech.com", .port = "19763", - - // /*中国透传域名*/ - // .ip = "gitlab.jiagutech.com", - // /*韩国透传域名*/ - // .ip = "8.220.247.132", - // /*泰国透传域名*/ - // .ip = "ag-th.jiagutech.com", - - // .port = "8027", - .connect_ID = 0, .connect_sta = false, .error_cnt = 0, }; CLte_dev_t lte_dev = { - .contextID = 1, - .deviceEnable = true, .client1 = (Cclient_t *)&client1, .config_sta = false, .reset_flag = DTU_CF_NEED_RESET, @@ -147,35 +134,6 @@ void BSP_LTE_SetDataTxPaused(bool paused) { } } -int16_t BSP_LTE_CipSend(uint8_t *pdata, uint32_t length, uint32_t waittime) { - BSP_LTE_SendData(pdata, length); - - rt_err_t ret = rt_sem_take(lte_dev.com_dev_rx_sem, waittime); - if (ret == RT_EOK) { - rt_thread_mdelay(500); - - rt_memset(lte_dev.at_buf, 0, sizeof(lte_dev.at_buf)); - - rt_ssize_t read_len = rt_device_read(lte_dev.com_dev, 0, lte_dev.at_buf, - sizeof(lte_dev.at_buf)); - if (read_len > 0) { - lte_diag_uart2_rx((rt_size_t)read_len); - } - - /* 清空缓存 */ - uint8_t c; - while (rt_device_read(lte_dev.com_dev, 0, &c, 1) == 1) { - } - - if (NULL != rt_strstr((char *)lte_dev.at_buf, CIPSEND_SUCCESS)) - return 0; - else - return 1; - } else { - return 0; - } -} - int16_t BSP_LTE_SendCmd(const char *cmd, const char *expect, const char *error, uint32_t waittime) { lte_diag_at_begin(cmd); @@ -216,17 +174,6 @@ int16_t BSP_LTE_SendCmd(const char *cmd, const char *expect, const char *error, } } -int16_t BSP_LTE_SendDataAT(uint8_t *pdata, uint32_t length) { - int16_t res = 0; - char cmd_str[128] = {0}; - rt_sprintf(cmd_str, AT_CIPSEND, 0, length); - if (0 == BSP_LTE_SendCmd(cmd_str, TPOK, DEFAULT_ERROR, LTE_CMD_WAIT_NORMAL)) { - res = BSP_LTE_CipSend(pdata, length, LTE_CMD_WAIT_LONG); - } else - res = -1; - return res; -} - int16_t BSP_LTE_SendATE(int16_t retry) { do { if (0 == BSP_LTE_SendCmd(AT_ATE0, DEFAULT_EXPECT, DEFAULT_ERROR, @@ -239,8 +186,6 @@ int16_t BSP_LTE_SendATE(int16_t retry) { return -1; } -// char tmp_imei[16] = "001068000000006"; -// char tmp_imei_2[16] = "869455062043381"; int extract_number(const char *src, char *dest) { if(src == RT_NULL || dest == RT_NULL){ return -1; @@ -317,40 +262,7 @@ int BSP_LTE_GetICCID(char *pICCID) { return ret; } -int16_t BSP_LTE_GetCGATT(int16_t retry) { - do { - if (0 == - BSP_LTE_SendCmd(AT_CGATT, CGATT_OK, DEFAULT_ERROR, LTE_CMD_WAIT_LONG)) { - return 0; - } - retry--; - } while (retry); - //rt_kprintf("PS detached:[%s]", lte_dev.at_buf); - return -1; -} - #define CSQ_CMD_RESP "+CSQ:" -// int BSP_LTE_GetCSQ(void) { -// int ret = -1; - - -// if (0 == BSP_LTE_SendCmd(AT_CSQ, DEFAULT_EXPECT, DEFAULT_ERROR, -// LTE_CMD_WAIT_LONG)) { - -// char *start, *end , *temp= NULL; -// start = rt_strstr((const char *)lte_dev.at_buf, CSQ_CMD_RESP) + -// rt_strlen(CSQ_CMD_RESP); -// end = start; -// while (*end != ',') -// end++; -// rt_size_t len = end - start; -// rt_memcpy(temp,start,len); -// temp[len] = '\0'; -// ret = atoi(temp); -// } -// return ret; -// } - int8_t BSP_LTE_GetCSQ(void) { int8_t ret = 0; char *start; @@ -459,10 +371,7 @@ void BSP_LTE_Config(void) { } /*查询SIM卡是否存在*/ res = BSP_LTE_SendATCPIN(3); - if (res == 0) - lte_dev.sim_inserted = true; - else if (res == 1) { - lte_dev.sim_inserted = false; + if (res == 1) { return; } diff --git a/applications/drv_ec800k.h b/applications/drv_ec800k.h index 3d6d5ae..7e5b9dc 100644 --- a/applications/drv_ec800k.h +++ b/applications/drv_ec800k.h @@ -209,24 +209,8 @@ extern "C" { * application-level silence recovery and leaves NO CARRIER/keepalive active. */ #define LTE_SERVER_SILENCE_TIMEOUT_SEC (15) -// #define GSM_BT_LIVE 5*60*1000 // 5min -typedef struct _connect_state { - bool connected; - int16_t error_cnt; - // bool is_net_closed; -} connect_state_t; - -typedef struct _lte_base_station_ifno { - int mcc; - int mnc; - int lac; - int cellid; -} __attribute__((packed)) lte_base_station_info_t; - typedef struct { - bool valid; char mode[4]; - // char domain_name[128]; char ip[50]; char port[16]; bool connect_sta; @@ -292,21 +276,16 @@ void lte_diag_disconnect(lte_disconnect_reason_t reason); void lte_diag_module_reset(void); typedef struct { - char hard_ver[32]; char imei[32]; - bool sim_inserted; char iccid[32]; uint8_t eps_sta; int8_t csq; - uint8_t contextID; // 场景ID。范围:1~15。 bool config_sta; Cclient_t *client1; - bool deviceEnable; - rt_device_t com_dev; rt_sem_t com_dev_rx_sem; rt_mutex_t data_tx_mutex; @@ -334,61 +313,20 @@ enum { COMPLETE_MATCH = 2, }; -////////////////////////////////////////////////////////////////////////////////////////// -bool isICCIDValid(char *str); - -bool isIMEIValid(char *str); - -int8_t BSP_LTE_GetCPSI(void); - -void BSP_L505_WaitReady(uint16_t second); - -void BSP_LTE_WaitReady(uint16_t second); - -void BSP_LTE_PwrOn(void); - -void BSP_LTE_PwrOff(void); - -void BSP_LTE_ResetByKey(void); - void BSP_LTE_SendData(uint8_t *pdata, uint32_t length); void BSP_LTE_SetDataTxPaused(bool paused); -int16_t BSP_LTE_SendDataAT(uint8_t *pdata, uint32_t length); - void BSP_LTE_Config(void); int BSP_LTE_GetICCID(char *pICCID); -int16_t BSP_LTE_GetBsInfo(int *lte_mcc, int *lte_mnc, int *lte_lac, - int *lte_cellid); - int8_t BSP_LTE_GetCSQ(void); -uint32_t BSP_LTE_GetTimeMs(void); - -int16_t BSP_LTE_GetGTPOS_GET(int *lon, int *lat); - -void BSP_LTE_TCP_Close(void); - int16_t BSP_LTE_SendCmd(const char *cmd, const char *expect, const char *error, uint32_t waittime); -int16_t BSP_LTE_TCP_Connect(const char *mode, const char *ipAddr, - const char *port); - -void BSP_LTE_MQTT_Close(void); - void BSP_LET_Register_Com(rt_device_t com_dev); -int16_t BSP_LTE_Send_Cmd_HTTPRead(const char *cmd, uint16_t len, - int32_t waittime); - -int16_t BSP_LTE_Send_Cmd_FileRead(const char *cmd, uint16_t len, - int32_t waittime); - -void tcp_connect_test(void); - #ifdef __cplusplus }