From df2c6cb1ffbcb1f01e516afd551cfad80f6160d5 Mon Sep 17 00:00:00 2001 From: jujihjuji <14168930+jujihjuji@user.noreply.gitee.com> Date: Fri, 17 Apr 2026 15:43:45 +0800 Subject: [PATCH] =?UTF-8?q?update(applications):=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E6=A0=87=E5=87=86=E5=BA=93=E7=9B=B8=E5=85=B3=E8=BF=90=E7=94=A8?= =?UTF-8?q?,=E4=BC=98=E5=8C=96=E7=A8=8B=E5=BA=8F=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/VK_Client.c | 10 +++---- applications/drv_ec800k.c | 59 ++++++++++++++++++++++++++++++++------- 2 files changed, 54 insertions(+), 15 deletions(-) diff --git a/applications/VK_Client.c b/applications/VK_Client.c index 38805ad..161793f 100644 --- a/applications/VK_Client.c +++ b/applications/VK_Client.c @@ -15,7 +15,7 @@ char cmd_str[100] = {0}; /*关闭TCP连接*/ void client_tcp_close(Cclient_t *client) { - sprintf(cmd_str, AT_QICLOSE, client->connect_ID); + rt_sprintf(cmd_str, AT_QICLOSE, client->connect_ID); BSP_LTE_SendCmd(cmd_str, DEFAULT_EXPECT, DEFAULT_ERROR, LTE_CMD_WAIT_NORMAL); // client->connect_sta = false; // client->error_cnt = 0; @@ -112,9 +112,9 @@ int16_t client_tcp_connect(Cclient_t *client) { // 2, 打开链接 memset(cmd_cmd, 0, sizeof(cmd_cmd)); memset(cmd_str, 0, sizeof(cmd_str)); - sprintf(cmd_cmd, AT_QIOPEN_TRANS /*AT_QIOPEN_FORW*/, client->connect_ID, + rt_sprintf(cmd_cmd, AT_QIOPEN_TRANS /*AT_QIOPEN_FORW*/, client->connect_ID, client->mode, client->ip, client->port); - sprintf(cmd_str, "+QIOPEN: %d,0", client->connect_ID); + rt_sprintf(cmd_str, "+QIOPEN: %d,0", client->connect_ID); /*打开socket, 这个模块他不返回+QIOPEN:字符串*/ while (0 != BSP_LTE_SendCmd(cmd_cmd, CONNECTE_OK, DEFAULT_ERROR, @@ -142,7 +142,7 @@ int16_t client_tcp_connect(Cclient_t *client) { #ifdef LINK_4G char buf[128] = {0}; - sprintf(buf, "{\"sn\":\"%s\",\"client_id\":\"%s\",\"csq\":\"%d\"}\r\n", lte_dev.iccid, + rt_sprintf(buf, "{\"sn\":\"%s\",\"client_id\":\"%s\",\"csq\":\"%d\"}\r\n", lte_dev.iccid, lte_dev.imei,lte_dev.csq); rt_device_write(lte_dev.com_dev, 0, buf, sizeof(buf)); @@ -179,7 +179,7 @@ int16_t client_yield(CLte_dev_t *pLte_dev) { /*收到TCP关闭的消息*/ if (strstr((const char *)pLte_dev->at_buf, CLOSED)) { memset(cmd_str, 0, sizeof(cmd_str)); - sprintf(cmd_str, "\"closed\",%d", pLte_dev->client1->connect_ID); + rt_sprintf(cmd_str, "\"closed\",%d", pLte_dev->client1->connect_ID); if (NULL != strstr((char *)lte_dev.at_buf, cmd_str)) { EC800K_Reset(); pLte_dev->client1->connect_sta = false; diff --git a/applications/drv_ec800k.c b/applications/drv_ec800k.c index 29ff928..b03c987 100644 --- a/applications/drv_ec800k.c +++ b/applications/drv_ec800k.c @@ -154,9 +154,18 @@ void BSP_LTE_GetIMEI(char *pIMEI) { } void BSP_LTE_GetICCID(char *pICCID) { + char *start, *end = NULL; while (0 != BSP_LTE_SendCmd(AT_ICCID, DEFAULT_EXPECT, DEFAULT_ERROR, LTE_CMD_WAIT_LONG)); - sscanf((const char *)lte_dev.at_buf, "\n+ICCID:%s\n", pICCID); + //sscanf((const char *)lte_dev.at_buf, "+ICCID:%s\n", pICCID); + start = + rt_strstr((const char *)lte_dev.at_buf, "+ICCID:") + rt_strlen("+ICCID:") + 1; + end = start; + while (*end != '\0' && *end != '\r' && *end != '\n') end++; + rt_size_t len = end - start; + rt_memcpy(pICCID, start, len); + pICCID[len] = '\0'; + if (strlen(pICCID) < 10) { BSP_LTE_GetICCID(pICCID); } @@ -170,24 +179,54 @@ int16_t BSP_LTE_GetCGATT(int16_t retry) { } retry--; } while (retry); - rt_kprintf("PS detached:[%s]", lte_dev.at_buf); + //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; +// } + int BSP_LTE_GetCSQ(void) { int ret = -1; - char *pstr = NULL; + char *start; - if (0 == BSP_LTE_SendCmd(AT_CSQ, DEFAULT_EXPECT, DEFAULT_ERROR, + if (0 != BSP_LTE_SendCmd(AT_CSQ, DEFAULT_EXPECT, DEFAULT_ERROR, LTE_CMD_WAIT_LONG)) { - pstr = (char *)lte_dev.at_buf; - if (NULL != (pstr = strstr(pstr, CSQ_CMD_RESP))) { - pstr += strlen(CSQ_CMD_RESP); - pstr += strspn(pstr, " \t"); - sscanf((const char *)pstr, "%d,", (int *)&ret); - } + return -1; } + + start = rt_strstr((const char *)lte_dev.at_buf, CSQ_CMD_RESP); + if (start == RT_NULL) { + return -1; + } + + start += rt_strlen(CSQ_CMD_RESP) + 1; + + ret = 0; + while (*start >= '0' && *start <= '9') { + ret = ret * 10 + (*start - '0'); + start++; + } + return ret; }