Radar_R3.h 3.37 KB

#ifndef _RADAR_R3_H_
#define _RADAR_R3_H_

#include "API.h"
#include "SCI0_UART.h"
#include "Line_In.h"
#include "Radar_Common.h"
#include "CAN_Communication_Matrix.h"

/******************************************************************************
雷达配置
******************************************************************************/
#define   RADAR_R3_MSG_LOST_THRESHOLD       2     //unit:s

/******************************************************************************
全局变量
******************************************************************************/
//extern volatile uint8_t RadarMsgLost;
//#ifndef   RADAR_MSG_LOST
//#define   RADAR_MSG_LOST                    RadarMsgLost
//#define   RADAR_R3_DECLARE_MSG_LOST
//#endif

/******************************************************************************
帧类型
******************************************************************************/
//#define   RADAR_R3_SELF_TEST_FRAME          0xAA
//#define   RADAR_R3_MESSAGE_FRAME            0x55
#define   RADAR_R3_MESSAGE_FRAME            0x55

/******************************************************************************
帧首/帧尾
******************************************************************************/
//#define   RADAR_R3_SOF_SELF_TEST            0xAA
//#define   RADAR_R3_EOF_SELF_TEST            0xAF
#define   RADAR_R3_EOF1_MESSAGE              0xFE
#define   RADAR_R3_EOF2_MESSAGE              0xFF

/******************************************************************************
接收Buffer结构
******************************************************************************/
typedef union
{
  uint8_t   Byte[12];
  
  struct
  {
    uint8_t   Type      : 8;              //1
    uint8_t             : 8;              //2
    uint8_t             : 8;              //3
    uint8_t             : 8;              //4
    uint8_t             : 8;              //5
    uint8_t             : 8;              //6
    uint8_t             : 8;              //7
    uint8_t             : 8;              //8
    uint8_t             : 8;              //9
    uint8_t             : 8;              //10 校验和
    uint8_t             : 8;              //11
    uint8_t             : 8;              //12
  }Frame;  
  struct
  {
    uint8_t   SOF       : 8; 
    uint8_t   RL_H      : 8;
    uint8_t   RL_L      : 8;
    uint8_t   RLM_H     : 8;
    uint8_t   RLM_L     : 8;
    uint8_t   RRM_H     : 8;
    uint8_t   RRM_L     : 8;
    uint8_t   RR_H      : 8;
    uint8_t   RR_L      : 8;
    uint8_t   SND       : 8;            //10 校验和
    uint8_t   EOF1      : 8; 
    uint8_t   EOF2      : 8; 
  }Msg;
}RadarR3DataBufferUnion;

/******************************************************************************
接收控制结构
******************************************************************************/
typedef struct
{
  uint8_t   Enable;            //启用
  uint8_t   SelfTest;          //自检
  uint8_t   Rsvd;
  uint8_t   Ptr;
  uint8_t   Len;
  uint8_t   Complete;
  uint16_t  Timer;             //定时器
  uint16_t  Counter;           //计数器
}RadarR3ReceivingCtrlStruct;

/******************************************************************************
函数声明
******************************************************************************/
void Radar_R3_Init(void);
void Radar_R3_Receiving_Service(void);
void Radar_R3_Receive_Enable(uint8_t En);
void Radar_R3_Receive_Data(uint8_t Data, uint8_t Parity);

#endif