修复
This commit is contained in:
@@ -169,8 +169,9 @@ bool LowerCommManager::updatePoweSystemStates(){
|
||||
m_pm->m_db->insertData(m_pm->m_pmCurrentState.ccustate); //写入数据库
|
||||
//DEBUG
|
||||
//写入文件
|
||||
std::ofstream outFile("ccuState.txt", std::ios::app);
|
||||
coutMsg(m_CcuCurrentState, outFile);
|
||||
// std::ofstream outFile("ccuState.txt", std::ios::app);
|
||||
// coutMsg(m_CcuCurrentState, outFile);
|
||||
coutMsg(m_CcuCurrentState,std::cout);
|
||||
msg_CcuStateFbMsg_Update_time = time;
|
||||
}
|
||||
if(!m_udpComm->m_qReceiveDisHighVolBusBuffer.empty())
|
||||
@@ -442,7 +443,7 @@ void LowerCommManager::coutMsg(const msg_CcuStateFbMsg& p, std::ostream& os){
|
||||
os << std::dec;
|
||||
os << "仪表LINK电压: " << p.data.ins_voltage_link * 0.01 << " V\n";
|
||||
os << "仪表PACK电压: " << p.data.ins_voltage_pack * 0.01 << " V\n";
|
||||
os << "仪表电流: " << static_cast<int16_t> (p.data.ins_current) * 0.01 << " A\n";
|
||||
os << "仪表电流: " << static_cast<int16_t> (p.data.ins_current) * 0.05 << " A\n";
|
||||
os << "仪表正端绝缘电阻: " << p.data.ins_resistance_pos << " kΩ\n";
|
||||
os << "仪表负端绝缘电阻: " << p.data.ins_resistance_neg << " kΩ\n";
|
||||
os << "动力LINK电压: " << p.data.dyn_voltage_link * 0.01 << " V\n";
|
||||
|
||||
@@ -232,6 +232,14 @@ const std::string DATA_HTML = R"(
|
||||
<span class="data-label">动力电池输入功率:</span>
|
||||
<span class="data-value" id="dyn-power-input">正在加载...</span>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<span class="data-label">仪表电池最大放电功率:</span>
|
||||
<span class="data-value" id="ins-max-discharge-power">正在加载...</span>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<span class="data-label">动力电池最大放电功率:</span>
|
||||
<span class="data-value" id="dyn-max-discharge-power">正在加载...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -308,20 +316,20 @@ const std::string DATA_HTML = R"(
|
||||
<span class="data-label">仪表报警标志6:</span>
|
||||
<span class="data-value" id="ins-alarm-flag6">正在加载...</span>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<span class="data-label">仪表紧急状态:</span>
|
||||
<span class="data-value" id="ins-emergency-status">正在加载...</span>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<span class="data-label">动力紧急状态:</span>
|
||||
<span class="data-value" id="dyn-emergency-status">正在加载...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="collapsible">设备在线状态</button>
|
||||
<div class="content">
|
||||
<div class="system-data-grid">
|
||||
<div class="data-item">
|
||||
<span class="data-label">设备在线标志1:</span>
|
||||
<span class="data-value" id="device-online-flag1">正在加载...</span>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<span class="data-label">设备在线标志2:</span>
|
||||
<span class="data-value" id="device-online-flag2">正在加载...</span>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<span class="data-label">仪表锂电在线状态:</span>
|
||||
<span class="data-value" id="ins-online-state">正在加载...</span>
|
||||
@@ -971,6 +979,14 @@ function updateSystemData(data) {
|
||||
if (data.dyn_power_input !== undefined) {
|
||||
document.getElementById('dyn-power-input').textContent = data.dyn_power_input + ' W';
|
||||
}
|
||||
if (data.ins_max_discharge_power !== undefined) {
|
||||
document.getElementById('ins-max-discharge-power').textContent =
|
||||
(data.ins_max_discharge_power * 0.05).toFixed(2) + ' kW';
|
||||
}
|
||||
if (data.dyn_max_discharge_power !== undefined) {
|
||||
document.getElementById('dyn-max-discharge-power').textContent =
|
||||
(data.dyn_max_discharge_power * 0.05).toFixed(2) + ' kW';
|
||||
}
|
||||
|
||||
// 继电器状态
|
||||
if (data.ins_relay_status1 !== undefined) {
|
||||
@@ -987,6 +1003,12 @@ function updateSystemData(data) {
|
||||
}
|
||||
|
||||
// 报警标志
|
||||
if (data.ins_emergency_status !== undefined) {
|
||||
document.getElementById('ins-emergency-status').textContent = getEmergencyStatusText(data.ins_emergency_status);
|
||||
}
|
||||
if (data.dyn_emergency_status !== undefined) {
|
||||
document.getElementById('dyn-emergency-status').textContent = getEmergencyStatusText(data.dyn_emergency_status);
|
||||
}
|
||||
if (data.dyn_alarm_flag1 !== undefined) {
|
||||
document.getElementById('dyn-alarm-flag1').textContent = data.dyn_alarm_flag1;
|
||||
}
|
||||
@@ -1520,6 +1542,18 @@ if (data.power_a_bus_status) {
|
||||
}
|
||||
}
|
||||
|
||||
// 紧急状态文本转换
|
||||
function getEmergencyStatusText(status) {
|
||||
const statuses = {
|
||||
0: '正常',
|
||||
58: '一级紧急',
|
||||
59: '二级紧急',
|
||||
60: '三级紧急',
|
||||
61: '四级紧急',
|
||||
};
|
||||
return statuses[status] || '未知状态';
|
||||
}
|
||||
|
||||
// 在线状态文本转换
|
||||
function getOnlineStateText(state) {
|
||||
const states = {
|
||||
|
||||
@@ -131,6 +131,7 @@ void HttpServer::handleWebSocketEvent(struct mg_connection* c, int ev, void* ev_
|
||||
m_powerManger->m_CcuColCmd.fcuCmd = fuelCellCommand;
|
||||
m_powerManger->m_CcuColCmd.fcuPowerEfficiency = fuelCellPower;
|
||||
m_powerManger->m_CcuColCmd.insBatCmd = instrumentBattery;
|
||||
cout << "powerBatteryPower:" << (int)instrumentBattery << endl;
|
||||
m_powerManger->m_CcuColCmd.powerBatCmd = powerBattery;
|
||||
m_powerManger->m_CcuColCmd.powerBatEfficiency = powerBatteryPower;
|
||||
|
||||
@@ -453,8 +454,8 @@ void HttpServer::pushSystemData() {
|
||||
|
||||
|
||||
//紧急状态
|
||||
j["ins_emergency_status"] = Json::Value(m_systemData->ins_emergency_status); // 紧急状态:00H-无紧急, 01H-紧急
|
||||
j["dyn_emergency_status"] = Json::Value(m_systemData->dyn_emergency_status); // 紧急状态:00H-无紧急, 01H-紧急
|
||||
j["ins_emergency_status"] = Json::Value(m_systemData->ins_emergency_status); // 紧急状态
|
||||
j["dyn_emergency_status"] = Json::Value(m_systemData->dyn_emergency_status); // 紧急状态
|
||||
|
||||
j["ins_soc_threshold1"] = Json::Value(m_systemData->ins_soc_threshold1); // 仪表电池1 SOC门限
|
||||
j["ins_soc_threshold2"] = Json::Value(m_systemData->ins_soc_threshold2); // 仪表电池2 SOC门限
|
||||
|
||||
@@ -83,8 +83,8 @@ public:
|
||||
float dyn_max_discharge_power; // 动力电池最大允许放电功率,单位:0.05kW
|
||||
|
||||
//电池SOC
|
||||
float ins_soc; // 仪表锂电池荷电状态SOC,范围:0~100
|
||||
float dyn_soc; // 动力锂电池荷电状态SOC,范围:0~100
|
||||
int ins_soc; // 仪表锂电池荷电状态SOC,范围:0~100
|
||||
int dyn_soc; // 动力锂电池荷电状态SOC,范围:0~100
|
||||
|
||||
//电池能量
|
||||
float ins_total_energy; // 仪表电池总能量,单位:0.1kWh
|
||||
@@ -506,7 +506,7 @@ public:
|
||||
//电池电压电流
|
||||
ins_voltage_link = data.ins_voltage_link * 0.01;
|
||||
ins_voltage_pack = data.ins_voltage_pack * 0.01;
|
||||
ins_current = static_cast<int16_t>(data.ins_current) * 0.01;
|
||||
ins_current = static_cast<int16_t>(data.ins_current) * 0.05;
|
||||
ins_resistance_pos = data.ins_resistance_pos;
|
||||
ins_resistance_neg = data.ins_resistance_neg;
|
||||
dyn_voltage_link = data.dyn_voltage_link * 0.01;
|
||||
|
||||
@@ -93,6 +93,7 @@ bool udpComm::getMsgFromBuff(char *m, msg_disHighVolBusFbMsg &s)
|
||||
sum = calculateChecksum((unsigned char*)m, sizeof(msg_disHighVolBusFbMsg), sizeof(cChecksum)) & 0xFF;
|
||||
if (sum != p->checkCode) {
|
||||
sError.push_back("DisSys HVBus Msg Check error");
|
||||
LOG_F(ERROR, "DisSys HVBus Msg Check error sum: %d, source checkCode: %d", sum, p->checkCode);
|
||||
return false;
|
||||
}
|
||||
s = *p;
|
||||
@@ -108,6 +109,7 @@ bool udpComm::getMsgFromBuff(char *m, msg_disHighAVolBusFbMsg &s)
|
||||
sum = calculateChecksum((unsigned char*)m, sizeof(msg_disHighAVolBusFbMsg), sizeof(cChecksum)) & 0xFF;
|
||||
if (sum!= p->checkCode) {
|
||||
sError.push_back("DisSys HVABus Msg Check error");
|
||||
LOG_F(ERROR, "DisSys HVABus Msg Check error sum: %d, source checkCode: %d", sum, p->checkCode);
|
||||
return false;
|
||||
}
|
||||
s = *p;
|
||||
@@ -121,6 +123,7 @@ bool udpComm::getMsgFromBuff(char *m, msg_disLowMainBusFbMsg &s)
|
||||
sum = calculateChecksum((unsigned char*)m, sizeof(msg_disLowMainBusFbMsg), sizeof(cChecksum)) & 0xFF;
|
||||
if (sum!= p->checkCode) {
|
||||
sError.push_back("DisSys HVBBus Msg Check error");
|
||||
LOG_F(ERROR, "DisSys HVBBus Msg Check error sum: %d, source checkCode: %d", sum, p->checkCode);
|
||||
return false;
|
||||
}
|
||||
s = *p;
|
||||
@@ -135,6 +138,7 @@ bool udpComm::getMsgFromBuff(char *m, msg_disLowBusFbMsg &s)
|
||||
sum = calculateChecksum((unsigned char*)m, sizeof(msg_disLowBusFbMsg), sizeof(cChecksum)) & 0xFF;
|
||||
if (sum!= p->checkCode) {
|
||||
sError.push_back("DisSys LVBus Msg Check error");
|
||||
LOG_F(ERROR, "DisSys LVBus Msg Check error sum: %d, source checkCode: %d", sum, p->checkCode);
|
||||
return false;
|
||||
}
|
||||
s = *p;
|
||||
@@ -503,12 +507,22 @@ bool udpComm::sendCcuColCmd(const ccuColCmd cmd)
|
||||
{
|
||||
unsigned char* msgBuf;
|
||||
Checksum cc;
|
||||
msg_CcuColCmdMsg* msg = new msg_CcuColCmdMsg;
|
||||
msg_CcuColCmdMsg* msg = new msg_CcuColCmdMsg();
|
||||
memset(msg, 0, sizeof(msg_CcuColCmdMsg)); // 初始化所有字段为0
|
||||
|
||||
msg->header.id = CCU_CMD_ID;
|
||||
msg->header.start1 = CCU_UDPMSG_START1;
|
||||
msg->header.start2 = CCU_UDPMSG_START2;
|
||||
msg->header.length = sizeof(ccuColCmd);
|
||||
getDate(msg->date.year,msg->date.month,msg->date.day,msg->date.hour,msg->date.minute,msg->date.second,msg->date.milliseconds);
|
||||
|
||||
// 确保日期获取成功
|
||||
if(!getDate(msg->date.year,msg->date.month,msg->date.day,
|
||||
msg->date.hour,msg->date.minute,msg->date.second,msg->date.milliseconds)) {
|
||||
LOG_F(ERROR, "Failed to get current date/time");
|
||||
delete msg;
|
||||
return false;
|
||||
}
|
||||
|
||||
msg->cmd = cmd;
|
||||
msgBuf = reinterpret_cast<unsigned char *>(msg);
|
||||
cc = calculateChecksum(msgBuf,sizeof(msg_CcuColCmdMsg));
|
||||
|
||||
Reference in New Issue
Block a user