This commit is contained in:
zjk
2025-06-06 13:28:05 +08:00
parent 8fab3bdf06
commit 035205101b
17 changed files with 429 additions and 96 deletions
+25 -8
View File
@@ -143,8 +143,18 @@ public:
uint32_t device_online_flag1; // 设备在线状态标志1
uint32_t device_online_flag2; // 设备在线状态标志2
//其他锂电池状态
uint8_t dyn_charge_level; // 动力电池充电状态:01H-1级(不限), 02H-2级(限功率), 03H-3级(关闭)
uint8_t dyn_water_leak_status; // 动力漏水状态:0XH-正常, 1XH-异常漏水
uint8_t ins_water_leak_dcdc_status; // 仪表漏水状态与DCDC状态:低4位-漏水状态(0XH正常,1XH异常),高4位-DCDC状态(X0H正常,X1H故障)
uint8_t reserved4;
unsigned char water_leak_status_from_insbat; // 仪表漏水状态
unsigned char water_leak_status_from_dynbat; // 动力漏水状态
unsigned char dcdc_status_from_insbat; // 仪表DCDC状态
//保留字段
uint32_t reserved4; // 保留字段
// uint32_t reserved4; // 保留字段
uint32_t heartbeat; // 主机心跳计数器
//锂电池故障字段
@@ -570,15 +580,22 @@ public:
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:复合管控备机在线标志位
// std::cout << "device_online_status.ins_online_state: " << (int)device_online_status.ins_online_state << std::endl;
// std::cout << "device_online_status.dyn_online_state: " << (int)device_online_status.dyn_online_state << std::endl;
// std::cout << "device_online_status.fuel_online_state: " << (int)device_online_status.fuel_online_state << std::endl;
// std::cout << "device_online_status.high_voltage_online_state: " << (int)device_online_status.high_voltage_online_state << std::endl;
// std::cout << "device_online_status.low_voltage_online_state: " << (int)device_online_status.low_voltage_online_state << std::endl;
// std::cout << "device_online_status.composite_online_state: " << (int)device_online_status.composite_online_state << std::endl;
// std::cout << "device_online_status.composite_backup_online_state: " << (int)device_online_status.composite_backup_online_state << std::endl;
// 更新锂电池其他状态
dyn_water_leak_status = data.dyn_water_leak_status;
ins_water_leak_dcdc_status = data.ins_water_leak_dcdc_status;
dyn_charge_level = data.dyn_charge_level; //01H:1级(不限)02H:2级(限功率)03H:3级(关闭)
water_leak_status_from_insbat = ( data.ins_water_leak_dcdc_status >> 4) & 0x0F; // 00 正常,01 异常漏水
water_leak_status_from_dynbat = (data.dyn_water_leak_status >> 4) & 0x0F; // 00 正常,01 异常漏水
dcdc_status_from_insbat = (data.ins_water_leak_dcdc_status) & 0x0F; // 00 正常,01 故障
// std::cout << "dyn_charge_level: " << std::hex << static_cast<int>(dyn_charge_level) << std::endl;
// std::cout << "ins_water_leak_dcdc_status: " << std::hex << static_cast<int>(ins_water_leak_dcdc_status) << std::endl;
// std::cout << "dcdc_status_from_insbat: " << std::hex << static_cast<int>(dcdc_status_from_insbat) << std::endl;
// std::cout << "water_leak_status_from_insbat: " << std::hex << static_cast<int>(water_leak_status_from_insbat) << std::endl;
// std::cout << "water_leak_status_from_dynbat: " << std::hex << static_cast<int>(water_leak_status_from_dynbat) << std::endl;
//心跳计数器
heartbeat = data.heartbeat;
}