From e7e9dc92dc51737b8da3e003105c06fc90114f0c Mon Sep 17 00:00:00 2001 From: DXY <1731678236@qq.com> Date: Wed, 4 Sep 2024 11:23:42 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96CAT1=E6=96=87=E4=BB=B6?= =?utf8?q?=E4=BC=A0=E8=BE=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- cat1modem/src/tcpService.py | 28 +++++----- .../slip/cat1Service/cat1_tcpServer.cpp | 55 +++++++++++++------ 2 files changed, 51 insertions(+), 32 deletions(-) diff --git a/cat1modem/src/tcpService.py b/cat1modem/src/tcpService.py index e2823f46d..dcc370636 100644 --- a/cat1modem/src/tcpService.py +++ b/cat1modem/src/tcpService.py @@ -396,7 +396,7 @@ class TcpServiceInit: print(" (data):{}\r\n".format(len(data))) tmpdata = str(data) head = tmpdata[0:2] #FE - if head != CAT1_FILE_DATA_HEAD and len(tmpdata) <= 8: #必须大于8 FF+012C+DATA+crc(一个字节89) + if head != CAT1_FILE_DATA_HEAD or len(tmpdata) <= 8: #必须大于8 FF+012C+DATA+crc(一个字节89) print("head {}\r\n".format(head)) self.__Socket_UDP_file_noreply(CAT1_SEND_HEAD_ERR,"head error!") return @@ -409,19 +409,19 @@ class TcpServiceInit: if len(str(data_buf)) == 0 or len(str(data_buf)) != datalen: #数据为空 self.__Socket_UDP_file_noreply(CAT1_WRITE_FILE_ERROR,"crc error or data null!") return - crclist=self.crc_cal(data_buf) - newcrc = crclist[1] - news = crclist[0] - if len(str(crc)) == 0: - self.__Socket_UDP_file_noreply(CAT1_CRC_ERROR,"crc error!") - return - decnumCrcCal = int("0x" + str(newcrc), 16) #转换成十进制数 - decnumCrc = int("0x" + str(crc), 16) #转换成十进制数 - print("crc:{} newcrc:{}\r\n".format(crc,newcrc,decnumCrc,decnumCrcCal)) - if decnumCrcCal != decnumCrc and news == 0: - print("newcrc is not === crc crc校验出错不一致\r\n") - self.__Socket_UDP_file_noreply(CAT1_CRC_ERROR,"crc error!") - return + # crclist=self.crc_cal(data_buf) + # newcrc = crclist[1] + # news = crclist[0] + # if len(str(crc)) == 0: + # self.__Socket_UDP_file_noreply(CAT1_CRC_ERROR,"crc error!") + # return + # decnumCrcCal = int("0x" + str(newcrc), 16) #转换成十进制数 + # decnumCrc = int("0x" + str(crc), 16) #转换成十进制数 + # print("crc:{} newcrc:{}\r\n".format(crc,newcrc,decnumCrc,decnumCrcCal)) + # if decnumCrcCal != decnumCrc and news == 0: + # print("newcrc is not === crc crc校验出错不一致\r\n") + # self.__Socket_UDP_file_noreply(CAT1_CRC_ERROR,"crc error!") + # return data = str(data_buf) path = "{}/{}".format(BAK_FILE_PATH,str(self.fileNameTmp)) print("py path:{} self.fileNameTmp:{}\r\n".format(path,self.fileNameTmp)) diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp index 6f5e2f8c5..daf9468d5 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp @@ -77,7 +77,7 @@ static uint8_t timerOut_count = 0; #define DEFAULT_TIMEOUT_TIME 10 //间隔超时时间10s #define DEFAULT_TIMEOUT_COUNT (60/DEFAULT_TIMEOUT_TIME) //10s倒计时 计时6次总共是1分钟 -#define READ_FILE_DATA_MAX_SIZE 400 // 一次读文件数据最大的size 数据长度不包含头 长度 CRC位 +#define READ_FILE_DATA_MAX_SIZE 900 // 一次读文件数据最大的size 数据长度不包含头 长度 CRC位 #define CAT1_FILE_DATA_HEAD "FF" //数据头'FF' #define CAT1_FILE_DATA_LEN_CHA "0000" //数据LEN #define CAT1_FILE_DATA_CRC_CHA "00" //数据CRC' @@ -86,14 +86,14 @@ static uint8_t timerOut_count = 0; #define DATA_ACTUAL_LEN_BIT 4 //实际数据的长度 #define DATA_CRC_SZIE 2 //CRC 字符个数 -#define DATA_TOTAL_LEN (DATA_HEAD_SIZE+DATA_ACTUAL_LEN_BIT+READ_FILE_DATA_MAX_SIZE+DATA_CRC_SZIE+2+200) //最大一包的数据总长度 200 {"Code":1,"fileName":"",file} +#define DATA_TOTAL_LEN (DATA_HEAD_SIZE+DATA_ACTUAL_LEN_BIT+READ_FILE_DATA_MAX_SIZE+DATA_CRC_SZIE+2+100) //最大一包的数据总长度 200 {"Code":1,"fileName":"",file} #define DATA_MIN_HEAD_LEN (DATA_HEAD_SIZE+DATA_ACTUAL_LEN_BIT) #define FAILE_COUNT 10 //失败次数 #define RESP_STATUS_OFSET 2 -#define MAX_CMD_MSG_BUFFER_LEN DATA_TOTAL_LEN -#define MAX_TCP_MSG_BUFFER_LEN (MAX_CMD_MSG_BUFFER_LEN+8) +#define MAX_CMD_MSG_BUFFER_LEN 512 +#define MAX_TCP_MSG_BUFFER_LEN (DATA_TOTAL_LEN+8) #pragma pack(push) #pragma pack(1) struct tcp_msg_t { @@ -128,7 +128,7 @@ static struct tcp_msg_old_t *unpack_tlv_format_old(char *rx_buffer, int length) static int pack_tlv_format_old(char *tx_buffer,uint8_t mode, uint8_t cmd, char *content) { int content_length = (int)strlen(content); - if( content == NULL || content_length > MAX_CMD_MSG_BUFFER_LEN) { + if( content == NULL || content_length > MAX_TCP_MSG_BUFFER_LEN) { return -1; } if(mode == FILE_TRANSFER_CMD){ //文件传输是json格式 @@ -158,7 +158,7 @@ static int pack_tlv_format(char *tx_buffer,uint8_t mode,uint8_t cmd, char *conte { int content_length = (int)strlen(content); - if(content_length > MAX_CMD_MSG_BUFFER_LEN || content == NULL) + if(content_length > MAX_TCP_MSG_BUFFER_LEN || content == NULL) { printf("content data error: content_length %d %s\r\n",content_length,content); return -1; @@ -402,10 +402,6 @@ static void stop_cat1_ota(void){ //停止 CAT1 ota 清标识 fileNameList[i] = NULL; } } - // for(uint8_t i=0;i