完善了部分逻辑,优化网页

This commit is contained in:
zjk
2025-02-27 20:27:33 +08:00
parent 02d54a585a
commit 9cc3140651
9 changed files with 205 additions and 48 deletions
+2 -2
View File
@@ -144,10 +144,10 @@ document.getElementById('moos-send-btn').addEventListener('click', sendMoosNotif
setInterval(updateData, 1000);
updateData(); // 初始加载
// 每3秒检查一次数据库连接状态
// 每10秒检查一次数据库连接状态
setInterval(() => {
checkDbConnection();
checkMoosDbConnection();
}, 3000);
}, 10000);
checkDbConnection(); // 初始检查
checkMoosDbConnection(); // 初始检查
+1 -1
View File
@@ -6,7 +6,7 @@
"HVABbusBVol_uint16": 0,
"HVABmastSteGeaCur_uint16": 0,
"HVABopenWaterCur_uint16": 0,
"HVABxczCur_uint16": 0,
"HVABxczCur_uint16": 1,
"HVBBCCUCur_uint16": 0,
"HVBBFCSSecurSysCur_uint16": 0,
"HVBBbatInsCur_uint16": 0,
+3 -3
View File
@@ -1,8 +1,8 @@
{
"HVolABusBreaker_unit16": 0,
"HVolBBusBreaker_unit16": 0,
"HVolBusBreaker_uint16": 0,
"LVolBusBreaker_uint16": 0,
"HVolBBusBreaker_unit16": 79,
"HVolBusBreaker_uint16": 58,
"LVolBusBreaker_uint16": 159,
"faultCode_array":
[
0
+16 -16
View File
@@ -1,30 +1,30 @@
{
"backpressure1_fp32": 0.0,
"backpressure2_fp32": 0.0,
"ch4oConcent1_fp32": 0.0,
"ch4oConcent2_fp32": 0.0,
"backpressure1_fp32": 3.0,
"backpressure2_fp32": 8.0,
"ch4oConcent1_fp32": 13.0,
"ch4oConcent2_fp32": 57.0,
"ch4o_fp32": 0.0,
"excTemp_fp32": 0.0,
"excTemp_fp32": 64.0,
"faultCode1_uint16": 0,
"faultCode2_uint16": 0,
"faultCode3_uint16": 0,
"fcuCurIns_fp32": 0.0,
"fcuCurPower_fp32": 0.0,
"fcuCur_fp32": 0.0,
"fcuCur_fp32": 74.0,
"fcuFaultLeve_uint8": 0,
"fcuOutIns_fp32": 0.0,
"fcuOutPower_fp32": 0.0,
"fcuOutIns_fp32": 81.0,
"fcuOutPower_fp32": 848.0,
"fcuState_uint8": 0,
"fcuVolIns_fp32": 0.0,
"fcuVolPower_fp32": 0.0,
"fcuVol_fp32": 0.0,
"flameDet_uint8": 0,
"h2Concent1_fp32": 0.0,
"h2Concent2_fp32": 0.0,
"o2Concent1_fp32": 0.0,
"o2Concent2_fp32": 0.0,
"fcuVol_fp32": 384.0,
"flameDet_uint8": 1,
"h2Concent1_fp32": 55.0,
"h2Concent2_fp32": 34.0,
"o2Concent1_fp32": 67.0,
"o2Concent2_fp32": 53.0,
"o2Level_fp32": 0.0,
"o2_fp32": 0.0,
"powLimit_fp32": 0.0,
"powerGen_fp32": 0.0
"powLimit_fp32": 23.0,
"powerGen_fp32": 539.0
}
+9 -9
View File
@@ -2,14 +2,14 @@
"fcuCurToInsLimit1_uint8": 0,
"fcuCurToinsLimit2_uint8": 0,
"insBatCurElect_uint16": 0,
"insBatLimit_uint16": 0,
"insBatSoc_uint8": 0,
"insBatTotalElect_uint16": 0,
"insBatLimit_uint16": 86,
"insBatSoc_uint8": 95,
"insBatTotalElect_uint16": 741,
"insChargeState_uint8": 0,
"insCurSocHold1_uint8": 0,
"insCurSocHold2_uint8": 0,
"insCurSocHold3_uint8": 0,
"insCurrent_uint16": 0,
"insCurrent_uint16": 9,
"insLinkVol_uint16": 0,
"insNegRelayState_uint8": 0,
"insNegRes_uint16": 0,
@@ -18,21 +18,21 @@
"insPosRes_uint16": 0,
"insfaultCode_uint8": 0,
"powBatCurElect_uint16": 0,
"powBatSoc_uint8": 0,
"powBatTotalElect_uint16": 0,
"powBatSoc_uint8": 47,
"powBatTotalElect_uint16": 860,
"powChargeState_uint8": 0,
"powCurSocHold1_uint8": 0,
"powCurSocHold2_uint8": 0,
"powCurSocHold3_uint8": 0,
"powCurToInsLimit1_uint8": 0,
"powCurToinsLimit2_uint8": 0,
"powCur_uint16": 0,
"powCur_uint16": 34,
"powLinkVol_uint16": 0,
"powNegRelayState_uint8": 0,
"powNegRes_uint16": 0,
"powPosRelayState_uint8": 0,
"powPosRelayState_uint8": 1,
"powPosRes_uint16": 0,
"powerBatLimit_uint16": 0,
"powerBatLimit_uint16": 65,
"powerPackVol_uint16": 0,
"powfaultCode_uint8": 0
}
+5
View File
@@ -0,0 +1,5 @@
{
"powerCMD":0,
"modCMD":0,
"workCMD":0
}
+9 -5
View File
@@ -24,7 +24,7 @@ int main() {
SQLiteDB db("/home/zjk/project/H100/H100PowerManger/data/power_data.db");
MOOS::MOOSAsyncCommClient moosClient;
moosClient.Run("localhost", 9000, "appPowerMangerWebUI");
std::cout << " Current Path -> " << std::system("pwd") << std::endl;
// 定义路由,处理根路径的请求
@@ -100,8 +100,6 @@ int main() {
return response;
});
// 定义路由,处理 /api/moos-notify 的请求(POST)
CROW_ROUTE(app, "/api/moos-notify").methods("POST"_method)
([&moosClient](const crow::request& req) {
@@ -137,8 +135,14 @@ int main() {
return res;
});
// 启动服务器,监听端口 18080
app.port(18080).multithreaded().run();
// 启动服务器,监听端口 18080 并启动多线程
std::cout << "Server started on port 18080" << std::endl;
// app.port(18080).multithreaded().run();
app.port(18080)
.multithreaded()
.concurrency(16) // 增加并发线程数
.run();
return 0;
}
+148 -11
View File
@@ -584,6 +584,19 @@ bool PowerManger::writeDataToDB()
}
int PowerManger::checkError()
{
//1.检查复合管控器状态
if(m_pmCurrentState.ccustate.fcuGZ_1H != 0 ||
m_pmCurrentState.ccustate.fcuGZ_1L != 0 ||
m_pmCurrentState.ccustate.fcuGZ_2H != 0 ||
m_pmCurrentState.ccustate.fcuGZ_2L != 0 ||
m_pmCurrentState.ccustate.fcuGZ_3H != 0 ||
m_pmCurrentState.ccustate.fcuGZ_3L != 0 ||
m_pmCurrentState.ccustate.insEmergencyStatusWord != 0)
return 0;
//2.检查断路器状态
}
void PowerManger::printState(FSM_State st, string desp){
@@ -619,13 +632,7 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
pm->printState(fsm,desp);
}
//2. 检查复合管控器是否上报故障 如果故障则进入故障状态
if(pm->m_pmCurrentState.ccustate.fcuGZ_1H != 0 ||
pm->m_pmCurrentState.ccustate.fcuGZ_1L != 0 ||
pm->m_pmCurrentState.ccustate.fcuGZ_2H != 0 ||
pm->m_pmCurrentState.ccustate.fcuGZ_2L != 0 ||
pm->m_pmCurrentState.ccustate.fcuGZ_3H != 0 ||
pm->m_pmCurrentState.ccustate.fcuGZ_3L != 0 ||
pm->m_pmCurrentState.ccustate.insEmergencyStatusWord != 0)
if(pm->checkError() < 0)
{
ok = false;
pm->m_faultNum = 2; //能源故障
@@ -633,11 +640,30 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
//3. 初始化系统为待机状态
pm->initControlCmd();
//4.判断关键断路器是否闭合
ok = false;
while (!ok)
{
if(pm->m_currentDisBreakerState.bus3Breaker.unit4InstrumentDC48VCircuitBreaker == 1 ||
pm->m_currentDisBreakerState.bus4Breaker.unit5CircuitBreaker == 1 ||
pm->m_currentDisBreakerState.bus4Breaker.unit2CircuitBreaker == 1 ||
pm->m_currentDisBreakerState.bus4Breaker.unit3CircuitBreaker == 1 ||
pm->m_currentDisBreakerState.bus4Breaker.unit1CircuitBreaker == 1)
{
ok = true;
}
pm->m_pmEvent = "等待关键断路器闭合";
MOOSPause(1000);
pm->printState(fsm,pm->m_pmEvent);
}
//5. 进入下一状态
if(ok)
{
pm->m_pmState = pm->m_Standby_s2;
}
if(!ok)
{
pm->m_pmState = pm->m_Fault_s99;
}
pm->m_pmState = pm->m_Standby_s2;
return 0;
}
@@ -649,6 +675,109 @@ int PowerManger::handleStandby_s2(FSM_State &fsm, void* pData)
{
string desp = "待机状态";
pm->printState(fsm,desp);
//1. 检查当前是否存在故障
if(pm->checkError() < 0)
{
pm->m_pmState = pm->m_Fault_s99;
break;
}
//2. 检查上位机上电控制指令
switch (pm->m_msCmd.powerCMD)
{
case 0:
pm->m_pmEvent = "收到上位机控制指令:关机";
pm->shutdown();
break;
case 1:
pm->m_pmEvent = "动力电上电";
break;
case 2:
pm->m_pmEvent = "锂动力电启动";
break;
case 3:
pm->m_pmEvent = "燃料电池启动";
break;
case 4:
pm->m_pmEvent = "锂动力电关闭";
case 5:
pm->m_pmEvent = "燃料电池停机";
break;
case 6:
pm->m_pmEvent = "燃料电池预热指令";
break;
case 7:
pm->m_pmEvent = "燃料电池自检指令";
break;
case 8:
pm->m_pmEvent = "燃料电池紧急停机";
break;
case 9:
pm->m_pmEvent = "燃料电池复位指令";
break;
case 10:
pm->m_pmEvent = "燃料电池补给指令";
break;
case 11:
pm->m_pmEvent = "燃料电池停机维护";
break;
default:
break;
}
//2. 检查上位机模式切换指令
switch (pm->m_msCmd.modCMD)
{
case 0:
//无效
break;
case 1:
pm->m_pmEvent = "待机工况";
break;
case 2:
pm->m_pmEvent = "岸基备航";
break;
case 3:
pm->m_pmEvent = "水中备航";
break;
case 4:
pm->m_pmEvent = "遥控工况";
break;
case 5:
pm->m_pmEvent = "巡航模式";
break;
case 6:
pm->m_pmEvent = "高速模式";
break;
case 7:
pm->m_pmEvent = "上浮下潜";
break;
case 8:
pm->m_pmEvent = "浮调模式";
break;
case 9:
pm->m_pmEvent = "水下侦查";
break;
case 10:
pm->m_pmEvent = "水面侦查";
break;
case 11:
pm->m_pmEvent = "DJ模式";
break;
default:
break;
}
//3. 检查上位机工作模式切换控制指令
switch (pm->m_msCmd.workCMD)
{
case 0:
pm->m_pmEvent = "正常模式(默认)";
break;
case 1:
pm->m_pmEvent = "试验模式";
break;
case 2:
pm->m_pmEvent = "调试模式";
break;
}
MOOSPause(1000);
}
@@ -673,6 +802,14 @@ int PowerManger::handleFault_s99(FSM_State &fsm, void* pData)
}
//==============================系统操作函数====================
bool PowerManger::shutdown()
{
m_CcuColCmd.masterState = 0xFF; //关机
return true;
}
void PowerManger::initControlCmd()
{
//================初始化配电指令=============================
@@ -724,9 +861,9 @@ void PowerManger::initControlCmd()
m_CcuColCmd.masterState = 0xAA;//主站状态,运行中
//================初始化上位机指令=========================
m_msCmd.modCMD = 0;
m_msCmd.powerCMD = 0;
m_msCmd.workCMD = 0;
m_msCmd.modCMD = 99;
m_msCmd.powerCMD = 99;
m_msCmd.workCMD = 99;
//================初始化设备驱动指令========================
+12 -1
View File
@@ -129,7 +129,6 @@ class PowerManger : public AppCastingMOOSApp
msg_disLowBusFbMsg m_disLowBusState;
//下位机操作函数
//断路器状态
ccuColCmd m_CcuColCmd;
void disSysOption();
void ccuOption();
@@ -172,10 +171,22 @@ class PowerManger : public AppCastingMOOSApp
FSM_State m_Standby_s2;
static int handleStandby_s2(FSM_State &fsm, void* pData);
//岸基备航
// FSM_State m_ShoreReady_s3;
//水中备航
//自动工况
//故障处理
FSM_State m_Fault_s99;
static int handleFault_s99(FSM_State &fsm, void* pData);
//======================================================================================
int checkError();
bool shutdown();
bool powerOn();
bool powerOff();
};
#endif