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