#ifndef COM_H_ #define COM_H_ #ifdef __cplusplus extern "C" { #endif /*__cplusplus*/ //宏定义 #define COMMAND_TYPE_SET_ADDR 1 //设定装置地址 #define COMMAND_TYPE_SCAN_ADDR 2 //查询装置地址 #define COMMAND_TYPE_GETDATA 5 //读取数据 #define COMMAND_TYPE_GET_WORKMODE 11 //查询数据传输模式 #define COMMAND_TYPE_SET_WORKMODE 12 //设定数据传送方式,1被动应答,2主动上送 #define COMMAND_TYPE_SCALE 13 //校正 #define COMMAND_TYPE_CALL_ORIGINALVALUE 14 //召原始值 #define COMMAND_TYPE_SCALE_RESET 15 //清除校正 #define COMMAND_TYPE_CALLINFO 16 //召装置信息 #define FRAME_HEAD_L 0 //帧头低字节 #define FRAME_HEAD_H 1 //帧头高字节 #define FRAME_LENGTH_L 2 //帧长低字节 #define FRAME_LENGTH_H 3 //帧长高字节 #define FRAME_DEVICE_TYPE 4 //装置类型 #define FRAME_DEVICE_ADDR 5 //装置地址 #define FRAME_TYPE 6 //帧类型 #define FRAME_CMD_TYPE 7 //命令类型 #define FRAME_DATE_START 8 //数据域其实 #define FRAME_HEAD_LEN 9 //帧头固定长度,包含CRC校验码 #define SENDBUFFER_LEN 256 //发送缓冲区长度 #define SENDDATA_LEN_MAX (SENDBUFFER_LEN - FRAME_HEAD_LEN) //发送数据最大长度 #define ASDU_MUN 32 //最多缓冲32个命令帧 #define ASDU_LEN_MAX 20 //数据结构 typedef struct{ DT_UINT8 WriteIP; //写指针 DT_UINT8 ReadIP; //读指针 DT_UINT8 Lock; DT_UINT8 AsduFrame[ASDU_MUN][ASDU_LEN_MAX]; //命令缓冲区 }tagComDataRecv; //外部接口 //上送数据 void Handle_upSend_Data(unsigned char *pFrame); //主动上送数据 void UpSendDataActive(void); //检测接收到的数据并反馈 void CheckComData(void); void Com_SendData(unsigned char *pDataBuffer,unsigned int dataLen,unsigned char addr,unsigned char cmdtype); //需外部定义的接口 //固化参数 extern void Write_App_Params(void); //读取设定参数 extern void Read_App_Params(void); //发送数据 extern void UART_Send(unsigned char *pBuffer, unsigned int Length); //设置地址 extern void SetAddress(unsigned char addr); //读取地址 extern unsigned char ReadAddress(void); //获取角度计算值 extern int GetAngleMeasureValue(float *pAngle_X,float *pAngle_Y,float *pAngle_Z); //角度校正 extern void AngleScale(void); //复位角度校正 extern void AngleScale_Reset(void); //开始召原始数据 extern void StartWave(unsigned char object); //读取工作方式参数 extern void ReadWorkMode(unsigned char *workMode, unsigned short *upSendFreq); //设置工作模式 extern void SetWorkMode(unsigned char workMode, short upSendFreq); //读取传感器信息 extern int GetSensorInfo(unsigned char *pBuffer); #ifdef __cplusplus } #endif /*__cplusplus*/ #endif