forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-07 fa6053f85287163f6e2d5dba690bec05cbc95f4a
Function/WirelessRemoteComm/wireless_remote_comm.h
@@ -4,15 +4,34 @@
#include "system_general_para.h"
// Ô¶´«µçÔ´
#define WRC_PWR_PORT          GPIOA
#define WRC_PWR_PIN          GPIO_Pin_7
#define WRC_PWR_PORT          GPIOE
#define WRC_PWR_PIN          GPIO_Pin_6
#define WRC_PWR_ON          GPIO_SetBits(WRC_PWR_PORT, WRC_PWR_PIN)
#define WRC_PWR_OFF         GPIO_ResetBits(WRC_PWR_PORT, WRC_PWR_PIN)
#define WRC_SEND_NORMAL(__DATA__,__SIZE__)    UARTx_SendData_Normal(UART1,__DATA__,__SIZE__)
//3V8ʹÄÜ,ÔÝʱ²»Óã¬Ö±½Ó3V8¿ª¹Ø¿ØÖƼ´¿É
#define PWR_3V8_EN_PORT       GPIOE
#define PWR_3V8_EN_PIN          GPIO_Pin_5
#define PWR_3V8_ENABLE          GPIO_SetBits(PWR_3V8_EN_PORT, PWR_3V8_EN_PIN)
#define PWR_3V8_DIABLE         GPIO_ResetBits(PWR_3V8_EN_PORT, PWR_3V8_EN_PIN)
//3V8¿ª¹Ø
#define PWR_3V8_O_PORT          GPIOE
#define PWR_3V8_O_PIN          GPIO_Pin_7
#define PWR_3V8_ON          GPIO_SetBits(PWR_3V8_O_PORT, PWR_3V8_O_PIN)
#define PWR_3V8_OFF         GPIO_ResetBits(PWR_3V8_O_PORT, PWR_3V8_O_PIN)
#define WRC_UART_SEND(__DATA__,__SIZE__)    do{UARTx_SendData_Normal(WRC_UARTX,__DATA__,__SIZE__);delay_us(10);WRC_RX_DMA_CH3_Init();}while(0)
#define   WRC_MODULE_CMD_OPEN         0x1B
#define   WRC_MODULE_CMD_LINK_STATUS_ACK         0x41
#define   WRC_MODULE_CMD_DATA_UP   0x67
#define   WRC_MODULE_CMD_DATA_RECV   "+R"
typedef enum
{
@@ -21,7 +40,7 @@
   WRC_CREATE_LINK,  //´´½¨Á´½Ó
   WRC_SEND_DATA,    // ·¢ËÍÊý¾Ý¸øÔ¶´«Ä£¿é
   WRC_WAIT_REC_DATA,   //µÈ´ý½ÓÊÕÊý¾Ý²¢´¦Àí
   WRC_CLOSE_PWR            //¹Ø±ÕÄ£¿éµçÔ´
   WRC_OFF            //¹Ø±ÕÄ£¿éµçÔ´
} WRC_STATUS;       // Ô¶´«×´Ì¬
@@ -49,6 +68,14 @@
typedef enum
{
  LINK_NONE = 0U,  // Ä¬ÈÏÖµ
   LINK_OK,
   LINK_ERR,
} LINK_STATUS;       // Á¬½ÓÀàÐÍ
typedef enum
{
  WRC_TIME_START_NONE = 0U,  // Ä¬ÈÏÖµ
   WRC_TIME_START_INTERVAL,     //¼ä¸ô
   WRC_TIME_START_TIMING,       //¶¨Ê±
@@ -56,22 +83,77 @@
} WRC_TIME_START_TYPE;       // Ê±¼äÆô¶¯·½Ê½
typedef enum
{
  WRC_ERR_NONE,
   WRC_ERR_PWR = 0x01U,
   WRC_ERR_WAIT_LINK_TIME_OUT,  //ÁªÍø³¬Ê±
   WRC_ERR_WAIT_ACK_TIME_OUT,  //µÈ´ýÏìÓ¦³¬Ê±
   WRC_ERR_SEND_DATA = 0x10U,  //·¢ËÍÊý¾Ý´¦ÀíÒì³£
} WRC_ERR_CODE;       // ´íÎóÂë
#pragma   pack(1)
typedef struct
{
   WRC_START_MEANS wrc_start_flag;
  __IO WRC_STATUS wrc_state;
  WRC_START_MEANS wrc_start_flag;
   __IO LINK_STATUS   link_status;
   WRC_ERR_CODE   wrc_err_code;
   ErrorStatus   wrc_result_flag;  //×îÖÕµÄͨѶ½á¹ûÅжϣ¬³õʼÖÃFAIL£¬×îÖÕ¸ù¾ÝЭÒéÈ·Èϱ¾´ÎͨѶÊÇ·ñ³É¹¦
   ErrorStatus   report_result_flag;  //Éϱ¨ÊÇ·ñ³É¹¦±êÖ¾£¬ÓÃÓÚÒ»ÌìÖ®ÄÚÓÐûÓÐÉÏ´«³É¹¦¹ý£¬±Èwrc_result_flag¿íËÉÒ»µã£¬Ö»ÒªÊý¾ÝÉϱ¨ÓÐÏìÓ¦¼´´ú±íÉϱ¨³É¹¦£¬²»¹ÜºóÐøÖ¸Áµ±Ç°ÓнáÊøÖ¡Ò²´ú±í³É¹¦¡£
   uint16_t   time_out_time_sec; //³¬Ê±Ê±¼ä
   __IO   uint16_t   wrc_OFF_cnt;    //Ô¶´«¹Ø±Õ¼ÆÊý,ÏòÉϼÆÊý£¬ÓÃÓÚÑӳٹرյçÔ´¼°Í˳öͨѶÁ÷³Ì
   uint16_t   wrc_restart_num_cnt;  //ÖØ±¨´ÎÊý¼ÆÊý£¬ÏòϼÆÊý
   uint16_t   wrc_restart_time_sec_cnt;  //ÖØ±¨¼ä¸ôʱ¼ä¼ÆÊý£¬ÏòϼÆÊý£¬
} WRC_CTRL_PARA_T;
#define   WRC_REC_BUF_LENGTH   256
typedef struct{
   uint8_t  recv_buf[WRC_REC_BUF_LENGTH];
   uint16_t recv_length;
  FlagStatus recv_flag;
}WRC_UART_PARA_T;
typedef enum
{
   GMS_WORST = 3U,
   GMS_POOR = 10U,
   GMS_GENERAL = 15U,
   GMS_BEST = 25U,
}GPRS_MODULE_SIG;
typedef struct{
   uint8_t            net_signal_intensity; //ÍøÂçÐźÅÇ¿¶È
   uint8_t            SIM_Type;             //SIM¿¨ÀàÐÍ
   char               IMEI[15];
   char               ICCID[20];
   int           SNR;
}LINK_INFO_T;
#pragma pack()
@@ -82,13 +164,13 @@
extern WRC_CTRL_PARA_T wrc_ctrl_para_g;
extern WRC_UART_PARA_T   wrc_uart_para_g;
extern LINK_INFO_T   link_info_g;
void WRC_PWR_GPIO_Init(void);
void WirelessRemoteCommPro(FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p);