From 6e3f1f560d618b37ee1a47fa2b0f682b70c3ef1c Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Wed, 19 Jun 2024 17:25:45 +0800
Subject: [PATCH] 增加OTA协议

---
 Function/WirelessRemoteComm/wireless_remote_comm.c |   31 ++++++++++++++++++++-----------
 1 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/Function/WirelessRemoteComm/wireless_remote_comm.c b/Function/WirelessRemoteComm/wireless_remote_comm.c
index 469d054..bf1a5ac 100644
--- a/Function/WirelessRemoteComm/wireless_remote_comm.c
+++ b/Function/WirelessRemoteComm/wireless_remote_comm.c
@@ -5,6 +5,7 @@
 #include "wrc_sizhu_v4.h"
 #include "system_general_para.h"
 #include "linked_list.h"
+#include "sizhu_alarm_record.h"
 
 WRC_CTRL_PARA_T wrc_ctrl_para_g={.wrc_state=WRC_IDLE,.link_status = LINK_NONE,.wrc_err_code = WRC_ERR_NONE,.report_result_flag = FAIL};
 WRC_UART_PARA_T	wrc_uart_para_g = {.recv_flag = RESET};
@@ -41,6 +42,9 @@
 	dma_recv_cnt = dma_mar_reg_read - (uint32)WRC_recv_buff;
 	if(dma_recv_cnt)
 	{
+		if((dma_recv_cnt >= WRC_REC_BUF_LENGTH) || (dma_recv_cnt >= WRC_RECV_BUFF_LEN_MAX) )
+			return;
+		
 		wrc_ctrl_para_p->recv_length = dma_recv_cnt;
 		arrayA_2_arrayB(WRC_recv_buff , wrc_ctrl_para_p->recv_buf, dma_recv_cnt, LITTLE_ENDIAN) ;
 		wrc_ctrl_para_p->recv_flag = SET;//�������
@@ -55,7 +59,7 @@
 	uint8_t buffer[255];
 	uint8_t	i_index;
 	
-	//?�������ݴ���
+	//�������ݴ���
 	buffer[0] = WRC_MODULE_CMD_OPEN;
 	buffer[1] = WRC_MODULE_CMD_OPEN;
 	buffer[2] = 0x00;		
@@ -99,6 +103,7 @@
 	}
 	buffer[204] = 0x16;
 	
+
 	WRC_UART_SEND(buffer,205);
 }
 
@@ -184,7 +189,7 @@
 	
 	wrc_ctrl_para_g.wrc_err_code = WRC_ERR_NONE;
 	wrc_ctrl_para_g.wrc_OFF_cnt = 0;
-	//?��Ҫ��ͨѶ������ʼ�����Է�������
+	//��Ҫ��ͨѶ������ʼ�����Է�������
 	SizhuV4SendParaInit();
 	
 	return WRC_CREATE_LINK;
@@ -195,9 +200,10 @@
 	
 	//��������
 	WRC_uart_Init(115200,NONE,OneBit);
+	WRC_RX_DMA_CH3_Init();
+	uart_ctrl_para_g.WRC_rxto_flag =  RESET;
 	
-	
-	//?��������ʹģ�����������������
+	//��������ʹģ�����������������
 	WrcSendCreateLinkCmd();
 	wrc_ctrl_para_g.link_status = LINK_NONE;
 	
@@ -211,7 +217,7 @@
 {
 	uint8_t send_buf[3+1024] = {0};
 	uint16_t	send_length;
-	//?�������ݴ���
+	//�������ݴ���
 	send_length = SizhuV4SendNormalData2buf(&send_buf[3]);
 //	wrc_ctrl_para_g.time_out_cnt = wrc_ctrl_para_g.time_out_time_sec;
 	
@@ -239,21 +245,24 @@
 	uint16_t	send_length = 0;
 	
 	//����buf����
-	WRC_RX_DMA_check(&wrc_uart_para_g);
+	if(uart_ctrl_para_g.WRC_rxto_flag ==SET){
+		uart_ctrl_para_g.WRC_rxto_flag = RESET;
+		WRC_RX_DMA_check(&wrc_uart_para_g);
+	}
 	
 	//���������ж�
 	if(wrc_uart_para_g.recv_flag == SET){
 		wrc_uart_para_g.recv_flag = RESET;
 		if(wrc_ctrl_para_g.link_status ==LINK_NONE){
-			wrc_ctrl_para_g.link_status = LinkDataAnalysis(wrc_uart_para_g.recv_buf);
+			wrc_ctrl_para_g.link_status = LinkDataAnalysis(wrc_uart_para_g.recv_buf);//����״̬�ж�
 			if(wrc_ctrl_para_g.link_status ==LINK_OK){
 				memset(wrc_uart_para_g.recv_buf,0,sizeof(wrc_uart_para_g.recv_buf));
 				return WRC_SEND_DATA;
 			}
 		}else if(wrc_ctrl_para_g.link_status ==LINK_OK){
-			return_status = ProtocolDataAnalysis(wrc_uart_para_g.recv_buf,&send_buf[3],&send_length);
+			return_status = ProtocolDataAnalysis(wrc_uart_para_g.recv_buf,&send_buf[3],&send_length);//ƽ̨�������ݷ���
 			
-			if((send_length > 0)&&(send_length < sizeof(send_buf))){ //����Ӧ������Ҫ����
+			if((send_length > 0)&&(send_length < sizeof(send_buf))){ //ƽ��Ӧ������Ҫ����
 				send_buf[0] = WRC_MODULE_CMD_DATA_UP;
 				send_buf[1] = send_length &0xff;
 				send_buf[2] = send_length >>8;
@@ -352,8 +361,8 @@
 void WirelessRemoteCommPro(FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p)
 {
 	
-	//?��485�ɼ��������ڼ���ܽ���ͨѶ����
-	if((sys_fun_run_ctrl_p->wrc_ctrl_flag.start_flag ==SET)&&(sys_fun_run_ctrl_p->valve_ctrl_flag.running_flag == RESET)&&(sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag == RESET))//?�ж�485�ɼ���ʶ
+	//��485�ɼ��������ڼ���ܽ���ͨѶ����
+	if((sys_fun_run_ctrl_p->wrc_ctrl_flag.start_flag ==SET)&&(sys_fun_run_ctrl_p->valve_ctrl_flag.running_flag == RESET)&&(sys_fun_run_ctrl_p->rs485_ctrl_flag.running_flag == RESET))//�ж�485�ɼ���ʶ
 	{
 		sys_fun_run_ctrl_p->wrc_ctrl_flag.start_flag =RESET;
 		if(wrc_ctrl_para_g.wrc_state == WRC_IDLE)

--
Gitblit v1.9.3