forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-21 a05cacad5239ab3f35ffb58f443356b484e6cc1b
Function/WirelessRemoteComm/wireless_remote_comm.c
@@ -2,6 +2,7 @@
#include "uart.h"
#include "gpio.h"
#include "system_mem_para.h"
#include "wrc_sizhu_v4.h"
WRC_CTRL_PARA_T wrc_ctrl_para_g={.wrc_state=WRC_IDLE};
WRC_UART_PARA_T   wrc_uart_para_g = {.recv_flag = RESET};
@@ -96,11 +97,12 @@
   WRC_SEND_NORMAL(buffer,205);
}
LINK_STATUS   link_data_analysis(uint8_t *receive_buf)
LINK_STATUS      LinkDataAnalysis(uint8_t *receive_buf)
{
   char *buf_p = NULL;
   uint8_t check_sum = 0;
   uint16_t count_i = 0;
   LINK_STATUS   return_flag = LINK_NONE;
   
   for(count_i = 0;count_i< 100;count_i++){
      if((receive_buf[count_i]==0x41)&&(receive_buf[count_i+1]==0x41))
@@ -117,16 +119,48 @@
      if((*(buf_p + 89) == check_sum)&&(*(buf_p + 90) == 0x16)){
         if(*(buf_p + 2) == 1){
            return_flag = LINK_OK;
            if((*(buf_p+3) != 1)&&(*(buf_p+3) <0x39)){
               link_info_g.net_signal_intensity = *(buf_p+3);
            }
            else{
               link_info_g.net_signal_intensity = 0;
            }
            arrayA_2_arrayB((uint8_t *)(buf_p+4), (uint8_t *)link_info_g.ICCID, 20, LITTLE_ENDIAN);
            link_info_g.SIM_Type = *(buf_p + 24);
            arrayA_2_arrayB((uint8_t *)(buf_p+27), (uint8_t *)link_info_g.IMEI, 15, LITTLE_ENDIAN);
            arrayA_2_arrayB((uint8_t *)(buf_p+44), (uint8_t *)link_info_g.SNR, 2, LITTLE_ENDIAN);
            
         }else{
            return_flag = LINK_NONE;
         }
      }
   }
            
   return   return_flag;
         }
      
      
      }
WRC_STATUS   ProtocolDataAnalysis(uint8_t *receive_buf)
{
   char *buf_p = NULL;
   char *buf_next_p = NULL;
//   uint16_t check_crc = 0;
   uint16_t count_i = 0;
   buf_p = strstr((char *)receive_buf , "+R");
   if(buf_p != NULL){
      buf_next_p = strstr(buf_p , ",");
      if(buf_next_p != NULL){
         return SizhuV4ProtocolDataAnalysis((uint8_t *)buf_next_p);
         
   }
   }
   
   return   WRC_WAIT_REC_DATA;
   
}
@@ -139,7 +173,8 @@
   delay_us(10);
   WRC_PWR_ON;
   
   //?±ØÒªµÄͨѶ²ÎÊý³õʼ»¯¿ÉÒÔ·ÅÔÚÕâÀï
   //?±ØÒªµÄͨѶ²ÎÊý³õʼ»¯¿ÉÒÔ·ÅÔÚÕâÀï,Ò²¿ÉÒÔ·ÅÔÚÁªÍø³É¹¦Ö®ºó
   SizhuV4SendParaInit();
   
   return WRC_SEND_DATA;
}
@@ -172,7 +207,7 @@
WRC_STATUS   WrcWaitRecDataPro(void)
{
   WRC_STATUS   return_status;
   //½ÓÊÕbuf´¦Àí
   WRC_RX_DMA_check(&wrc_uart_para_g);
   
@@ -180,14 +215,20 @@
   if(wrc_uart_para_g.recv_flag == SET){
      wrc_uart_para_g.recv_flag = RESET;
      if(wrc_ctrl_para_g.link_status ==LINK_NONE){
      }else if(wrc_ctrl_para_g.link_status ==LINK_OK){
      }
   }
         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);
         memset(wrc_uart_para_g.recv_buf,0,sizeof(wrc_uart_para_g.recv_buf));
         return return_status;
      }
   }
   
   //Åжϳ¬Ê±Í˳ö
   return WRC_CLOSE_PWR;
   
}