#ifndef _COMMPOWERMODULE_H #define _COMMPOWERMODULE_H #define RX_BUF_SIZE_MAX 200 // 接收buf最大长度 #define TX_BUF_SIZE_MAX 30 // 发送buf最大长度 #define CFG_PARAM_FUNC 0x1A // 配置参数功能码 #define READ_CFG_PARAM_FUNC 0x1B // 读配置参数功能码 #define RX_READ_FUNC 0x81 // 接收的读功能码 #define RX_WRITE_FUNC 0x82 // 接收的写功能码 #define TX_READ_FUNC 0x01 // 发送的读功能码 #define TX_WRITE_FUNC 0x02 // 发送的写功能码 typedef union{ struct { WORD lostVolt : 1; // 电池输入失电告警 WORD actStatus : 1; // 电池活化状态 WORD lowVolt : 1; // 电池欠压告警 WORD overVolt : 1; // 电池过压告警 WORD offline : 1; // 电池离线告警 WORD rConnect : 1; // 电池反接告警 WORD backup : 1; // 备用点 WORD capAlarm : 1; // 电池容量故障 #ifdef BATTERY_BP_L500 WORD R_Alarm : 1; // 内阻异常告警 WORD OverHeat : 1; // 温度过热告警 #endif }BIT; WORD yxStatus; }BAT_YX; typedef struct{ WORD batVolt; // 电池电压 单位:0.01v WORD capacityVolt; // 电容电压 单位:0.01v }BAT_YC; typedef struct{ WORD dischargeTimeMax; // 电池最大放电时间 单位:分钟 WORD dischargeTimeNow; // 当前放电时长 单位:分钟 #ifdef BATTERY_BP_L500 WORD BatteryInResist; // 电池内阻 WORD BatteryTemp; // 电池温度 WORD BatteryRtPower; // 电池实时电量 WORD BatDischageCurrent; //放电电流 WORD BatRechageCurrent; //充电电流 #endif }BAT_RUN_PARAM; typedef union{ struct{ WORD rVolt : 1; // 读电池电压标志 WORD rStatus : 1; // 读电池状态标志 WORD rRunInfo : 1; // 读系统运行参数标志 WORD wActStart : 1; // 写活化启动标志 WORD wActStartRet : 1; // 写活化启动结果标志 WORD wActStop : 1; // 写活化停止标志 WORD wActStopRet : 1; // 写活化停止结果标志 WORD wDischargeStop : 1; // 写放电停止标志 WORD wDischargeStopRet : 1; // 写放电停止结果标志 WORD cActData : 1; // 清除活化数据标志 #ifdef BATTERY_BP_L500 WORD rBattR : 1; // 读电池内阻标志 WORD rBattTemp : 1; // 读电池温度标志 WORD rBattRtPower : 1; // 读电池实时电量标志 WORD wBattR : 1; // 电池内阻检测标志 WORD wBattRRet : 1; // 电池内阻检测结果标志 WORD rBatCurrent : 1; // 读电池充放电电流标志 #endif }BIT; WORD m_flg; }SIGNAL_FLG; typedef struct{ bool bData; // 接收到完整一帧报文标志 bool commFault; // 通讯故障 DWORD sendMesgCount; // 发送报文计数 BYTE recvFlg; // 接收标志 BYTE dataLen; // 数据长度 BYTE recvCount; BYTE portChannel; BYTE equAddr; // 装置地址 int recvPos; int parsePos; BYTE recvBuf[RX_BUF_SIZE_MAX]; DWORD readYxCount; DWORD readRunInfoCount; #ifdef BATTERY_BP_L500 DWORD DetectBattRCount; //电池内阻检测计时 DWORD ReadBattRCount; //读电池内阻计时 DWORD ReadBattTempCount; //读电池温度计时 DWORD ReadBattRtPowerCount; //读电池实时电量计时 DWORD BatCurrentCount; //查询电池充放电电流计时 #endif BAT_YX tYx; BAT_YC tYc; BAT_RUN_PARAM tRunParam; }COMM_POW_MOD; // 函数对外声明 extern void StartBattAct(void); // 启动电池活化 extern void StopBattAct(void); // 停止电池活化 extern void ClearBattActInfo(void); // 清除电池活化信息 extern void PowerModuleCommInit(COMM_POW_MOD *p_instance,int ch); // 初始化电源模块通讯 extern void PowerModuleCommRecv(COMM_POW_MOD *p_instance,BYTE rec_data); // 电源模块通讯接收数据 extern void PowerModuleCommRun(COMM_POW_MOD *p_instance); // 电源模块通讯接口 #endif