增加控制功能
This commit is contained in:
@@ -346,6 +346,38 @@ public:
|
||||
float emergency1BusbarVoltage;
|
||||
} instrument_bus_status;
|
||||
|
||||
struct COMMON_STATUS
|
||||
{
|
||||
//超时状态
|
||||
bool isTimeout;
|
||||
//最后更新时间
|
||||
double lastUpdateTime;
|
||||
};
|
||||
|
||||
struct DeviceCommonStatus
|
||||
{
|
||||
COMMON_STATUS ccu_status;
|
||||
COMMON_STATUS dis_hv_c1;
|
||||
COMMON_STATUS dis_hv_c2;
|
||||
COMMON_STATUS dis_lv_c1;
|
||||
COMMON_STATUS dis_lv_c2;
|
||||
} device_common_status;
|
||||
|
||||
struct DeviceOnlineStatus
|
||||
{
|
||||
//在线状态
|
||||
//0x00: 未上线
|
||||
//0x01: 在线
|
||||
//0x02: 上线后掉线
|
||||
uint8_t ins_online_state; //仪表锂电在线标志位
|
||||
uint8_t dyn_online_state; //动力锂电在线标志位
|
||||
uint8_t fuel_online_state; //燃电锂电在线标志位
|
||||
uint8_t high_voltage_online_state; //高压配电板在线标志位
|
||||
uint8_t low_voltage_online_state; //低压配电板在线标志位
|
||||
uint8_t composite_online_state; //复合管控主机在线标志位
|
||||
uint8_t composite_backup_online_state; //复合管控备机在线标志位
|
||||
} device_online_status;
|
||||
|
||||
public:
|
||||
SystemData(){
|
||||
//初始化变量全部为0
|
||||
@@ -353,6 +385,17 @@ public:
|
||||
};
|
||||
~SystemData();
|
||||
|
||||
void updateCommonStatus(double time_out=3){
|
||||
//更新时间
|
||||
double currentTime = MOOSTime();
|
||||
//判断是否超时
|
||||
device_common_status.ccu_status.isTimeout = (currentTime - device_common_status.ccu_status.lastUpdateTime) > time_out;
|
||||
device_common_status.dis_hv_c1.isTimeout = (currentTime - device_common_status.dis_hv_c1.lastUpdateTime) > time_out;
|
||||
device_common_status.dis_hv_c2.isTimeout = (currentTime - device_common_status.dis_hv_c2.lastUpdateTime) > time_out;
|
||||
device_common_status.dis_lv_c1.isTimeout = (currentTime - device_common_status.dis_lv_c1.lastUpdateTime) > time_out;
|
||||
device_common_status.dis_lv_c2.isTimeout = (currentTime - device_common_status.dis_lv_c2.lastUpdateTime) > time_out;
|
||||
};
|
||||
|
||||
void updateSystemData(ccuState data){
|
||||
fc_mode = data.fc_mode;
|
||||
fc_status = data.fc_status;
|
||||
@@ -481,6 +524,16 @@ public:
|
||||
//设备在线状态
|
||||
device_online_flag1 = data.device_online_flag1;
|
||||
device_online_flag2 = data.device_online_flag2;
|
||||
|
||||
//更新设备在线状态
|
||||
device_online_status.ins_online_state = (data.device_online_flag1 >> 0) & 0xFF; // byte0:仪表锂电在线标志位
|
||||
device_online_status.dyn_online_state = (data.device_online_flag1 >> 8) & 0xFF; // byte1:动力锂电在线标志位
|
||||
device_online_status.fuel_online_state = (data.device_online_flag1 >> 16) & 0xFF; // byte2:燃电锂电在线标志位
|
||||
device_online_status.high_voltage_online_state = (data.device_online_flag1 >> 24) & 0xFF; // byte3:高压配电板在线标志位
|
||||
|
||||
device_online_status.low_voltage_online_state = (data.device_online_flag2 >> 0) & 0xFF; // byte0:低压配电板在线标志位
|
||||
device_online_status.composite_online_state = (data.device_online_flag2 >> 8) & 0xFF; // byte1:复合管控主机在线标志位
|
||||
device_online_status.composite_backup_online_state = (data.device_online_flag2 >> 16) & 0xFF; // byte2:复合管控备机在线标志位
|
||||
|
||||
//心跳计数器
|
||||
heartbeat = data.heartbeat;
|
||||
|
||||
Reference in New Issue
Block a user