From 1a10bbedaa34e88a0f2913f060d5bb346b452f1c Mon Sep 17 00:00:00 2001 From: wade Date: Thu, 30 Nov 2023 09:39:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=85=E9=9A=9C=E6=9D=A5=E6=BA=90=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E6=AD=A3=E5=B8=B8=E4=BF=A1=E5=8F=B7=E5=90=8E,?= =?UTF-8?q?=E6=95=85=E9=9A=9C=E8=87=AA=E5=8A=A8=E6=B8=85=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pFaultHandle/FaultHandle.cpp | 99 ++++++++++++++++++++++++-------- 1 file changed, 74 insertions(+), 25 deletions(-) diff --git a/src/pFaultHandle/FaultHandle.cpp b/src/pFaultHandle/FaultHandle.cpp index 6174cbd..27c5580 100644 --- a/src/pFaultHandle/FaultHandle.cpp +++ b/src/pFaultHandle/FaultHandle.cpp @@ -1,8 +1,8 @@ /************************************************************/ /* NAME: wade */ -/* ORGN: MIT */ +/* ORGN: JHL */ /* FILE: FaultHandle.cpp */ -/* DATE: */ +/* LAST MODIFY DATE: 20231127 */ /************************************************************/ #include @@ -169,6 +169,7 @@ bool FaultHandle::Iterate() m_proc_watch_summary_changed = false; CPUTempMonitor();//监控CPU温度并实时反馈 + //---------------------------------------- AppCastingMOOSApp::PostReport(); @@ -890,7 +891,7 @@ void FaultHandle::MoosAppStatusMonitor() if(MoosAppMissing()) { - uFH_errorMsg2_fb["FaultLevel"] = 2; + //uFH_errorMsg2_fb["FaultLevel"] = 2; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"]["uSoftWare_appMiss_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg2_fb["FaultMsgs"]["uSoftWare_appMiss_fault"]["Source"] = "MOOSDB"; @@ -936,6 +937,10 @@ void FaultHandle::MoosAppStatusMonitor() } //APP故障预留ID:906-1000 + } + else if(!MoosAppMissing()) + { + uFH_errorMsg2_fb["FaultMsgs"].removeMember("uSoftWare_appMiss_fault"); } //发布当前时间 string str_time = convertSecondsToString(m_curr_time); @@ -1007,7 +1012,7 @@ void FaultHandle::MoosAppOverloadMonitor() if(MoosAppOverload()) { - uFH_errorMsg1_fb["FaultLevel"] = 1; + //uFH_errorMsg1_fb["FaultLevel"] = 1; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg1_fb["FaultMsgs"]["uSoftWare_appOverload_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg1_fb["FaultMsgs"]["uSoftWare_appOverload_fault"]["Source"] = "MOOSDB"; @@ -1056,6 +1061,11 @@ void FaultHandle::MoosAppOverloadMonitor() // } } +else if(!MoosAppOverload()) +{ + uFH_errorMsg1_fb["FaultMsgs"].removeMember("uSoftWare_appOverload_fault"); +} + } //--------------------------------------------------------------------------- @@ -1072,7 +1082,13 @@ void FaultHandle::MissionFaultMonitor() static int misson_fault_lastTime = 0; - if(m_Mission_fault_fb != 0 & misson_fault_lastTime != m_Mission_fault_fb) + // + if(m_Mission_fault_fb == 0) + { + uFH_errorMsg2_fb["FaultMsgs"].removeMember("uMission_status_fault"); + } + + else if(m_Mission_fault_fb != 0 & misson_fault_lastTime != m_Mission_fault_fb) { //--------------------------------------------------------------- //test @@ -1080,7 +1096,7 @@ void FaultHandle::MissionFaultMonitor() // m_msgs << "FirstRecvTime:" << FirstRecvTime << endl; //---------------------------------------------------------------- - uFH_errorMsg2_fb["FaultLevel"] = 2; + //uFH_errorMsg2_fb["FaultLevel"] = 2; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"]["uMission_status_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg2_fb["FaultMsgs"]["uMission_status_fault"]["Source"] = "TaskManagement"; @@ -1134,7 +1150,7 @@ void FaultHandle::MotionControlMonitor()//20231109未完成 static bool motionFaultFlag1 = false; if((m_Motion_fault_fb == 1) && (motionFaultFlag1 == false)) { - uFH_errorMsg2_fb["FaultLevel"] = 2; + //uFH_errorMsg2_fb["FaultLevel"] = 2; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"]["uMotion_control_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg2_fb["FaultMsgs"]["uMotion_control_fault"]["Source"] = "MotionControl"; @@ -1146,7 +1162,7 @@ void FaultHandle::MotionControlMonitor()//20231109未完成 static bool motionFaultFlag2 = false; if((m_Motion_fault_fb > 2) && (motionFaultFlag2 == false)) { - uFH_errorMsg2_fb["FaultLevel"] = 2; + //uFH_errorMsg2_fb["FaultLevel"] = 2; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"]["uMotion_control_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg2_fb["FaultMsgs"]["uMotion_control_fault"]["Source"] = "MotionControl"; @@ -1158,7 +1174,7 @@ void FaultHandle::MotionControlMonitor()//20231109未完成 if((m_Motion_fault_fb == 2) && (motionFaultFlag3 == false)) { - uFH_errorMsg1_fb["FaultLevel"] = 1; + //uFH_errorMsg1_fb["FaultLevel"] = 1; //uFH_errorMsg1_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg1_fb["FaultMsgs"]["uMotion_control_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg1_fb["FaultMsgs"]["uMotion_control_fault"]["Source"] = "MotionControl"; @@ -1167,6 +1183,11 @@ void FaultHandle::MotionControlMonitor()//20231109未完成 } //此处,关于uMotion_control_fault的FaultID预留了1104-1200,后续有需要可添加。 } + else if(m_Motion_fault_fb == 0) + { + uFH_errorMsg1_fb["FaultMsgs"].removeMember("uMotion_control_fault"); + uFH_errorMsg2_fb["FaultMsgs"].removeMember("uMotion_control_fault"); + } } //------------------------------------------------------------------------- @@ -1186,7 +1207,7 @@ void FaultHandle::DeviceLeakageMonitor() if((m_faultLeakSensor != 0) & (m_faultLeakSensorLastTime != m_faultLeakSensor)) { - uFH_errorMsg3_fb["FaultLevel"] = 3; + //uFH_errorMsg3_fb["FaultLevel"] = 3; //uFH_errorMsg3_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg3_fb["FaultMsgs"]["uSensor_leakage_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg3_fb["FaultMsgs"]["uSensor_leakage_fault"]["Source"] = "AUV"; @@ -1202,6 +1223,10 @@ void FaultHandle::DeviceLeakageMonitor() uFH_errorMsg3_fb["FaultMsgs"]["uSensor_leakage_fault"]["FaultID"] = msg3_faultID_array; m_faultLeakSensorLastTime = m_faultLeakSensor; } + else if(m_faultLeakSensor == 0) + { + uFH_errorMsg3_fb["FaultMsgs"].removeMember("uSensor_leakage_fault"); + } //----------------------changed by zhangwei 20231115--------------------------------------- @@ -1216,13 +1241,17 @@ void FaultHandle::BatteryStatusMonitor() static bool FirstLowPower_flag = false; if((m_batteryLevel < 20) && (FirstLowPower_flag == false)) { - uFH_errorMsg1_fb["FaultLevel"] = 1; + //uFH_errorMsg1_fb["FaultLevel"] = 1; //uFH_errorMsg1_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg1_fb["FaultMsgs"]["uBattery_level_warning"]["FirstRecvTime"] = MOOSTime(); uFH_errorMsg1_fb["FaultMsgs"]["uBattery_level_warning"]["Source"] = "AUV"; uFH_errorMsg1_fb["FaultMsgs"]["uBattery_level_warning"]["FaultID"].append(700); FirstLowPower_flag = true; } + else if(m_batteryLevel >= 20) + { + uFH_errorMsg1_fb["FaultMsgs"].removeMember("uBattery_level_warning"); + } //--------------------------------------------------------------------------------------- //电池状态监控 @@ -1237,7 +1266,7 @@ void FaultHandle::BatteryStatusMonitor() if((m_faultBattery != 0) && (m_faultBatteryLastTime != m_faultBattery)) { - uFH_errorMsg2_fb["FaultLevel"] = 2; + //uFH_errorMsg2_fb["FaultLevel"] = 2; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"]["uBattery_status_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg2_fb["FaultMsgs"]["uBattery_status_fault"]["Source"] = "AUV"; @@ -1253,6 +1282,13 @@ void FaultHandle::BatteryStatusMonitor() uFH_errorMsg2_fb["FaultMsgs"]["uBattery_status_fault"]["FaultID"] = msg2_PSfaultID_array; m_faultBatteryLastTime = m_faultBattery; } + else if(m_faultBattery == 0) + { + uFH_errorMsg2_fb["FaultMsgs"].removeMember("uBattery_status_fault"); + } + +//----------------------changed by zhangwei 20231115--------------------------------------- + } //------------------------------------------------------------------------- //获取AUV设备信息,判断以及反馈应急电池状态//20231110修改 @@ -1271,7 +1307,7 @@ void FaultHandle::EmergencyBatteryMonitor() if((m_faultEmergencyBattery != 0) & (m_faultEmergencyBatteryLastTime != m_faultEmergencyBattery)) { - uFH_errorMsg2_fb["FaultLevel"] = 2; + //uFH_errorMsg2_fb["FaultLevel"] = 2; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"]["uEmergency_Battery_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg2_fb["FaultMsgs"]["uEmergency_Battery_fault"]["Source"] = "AUV"; @@ -1287,6 +1323,10 @@ void FaultHandle::EmergencyBatteryMonitor() uFH_errorMsg2_fb["FaultMsgs"]["uEmergency_Battery_fault"]["FaultID"] = msg2_emergencyPS_array; m_faultEmergencyBatteryLastTime = m_faultEmergencyBattery; } + else if(m_faultEmergencyBattery == 0) + { + uFH_errorMsg2_fb["FaultMsgs"].removeMember("uEmergency_Battery_fault"); + } //----------------------changed by zhangwei 20231115--------------------------------------- } @@ -1304,11 +1344,13 @@ void FaultHandle::ThrustStatusMonitor() firstRecvFlag = true; } +//----------------------changed by zhangwei 20231115--------------------------------------- + static uint32_t m_faultThrustLastTime = m_faultThrust; if((m_faultThrust != 0) & (m_faultThrustLastTime != m_faultThrust)) { - uFH_errorMsg2_fb["FaultLevel"] = 2; + //uFH_errorMsg2_fb["FaultLevel"] = 2; //uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"]["uPropeller_status_fault"]["FirstRecvTime"] = FirstRecvTime; uFH_errorMsg2_fb["FaultMsgs"]["uPropeller_status_fault"]["Source"] = "AUV"; @@ -1326,9 +1368,15 @@ void FaultHandle::ThrustStatusMonitor() uFH_errorMsg2_fb["FaultMsgs"]["uPropeller_status_fault"]["FaultID"] = msg2_thrust_Status_array; m_faultThrustLastTime = m_faultThrust; } + else if(m_faultThrust == 0) + { + uFH_errorMsg2_fb["FaultMsgs"].removeMember("uPropeller_status_fault"); + } } +//----------------------changed by zhangwei 20231115--------------------------------------- + //------------------------------------------------------------------------- @@ -1390,22 +1438,23 @@ void FaultHandle::CPUTempMonitor() { Notify("CPUTemperature", "Failed"); } - } void FaultHandle::errorMsgInit() { - uFH_errorMsg1_fb["FaultLevel"] = 0; + //uFH_errorMsg1_fb["FaultLevel"] = 0; uFH_errorMsg1_fb["CurrentTime"] = convertSecondsToString(m_curr_time); - uFH_errorMsg1_fb["FaultMsgs"]; + uFH_errorMsg1_fb["FaultMsgs"] = Json::objectValue; - uFH_errorMsg2_fb["FaultLevel"] = 0; + //uFH_errorMsg2_fb["FaultLevel"] = 0; uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); - uFH_errorMsg2_fb["FaultMsgs"]; + uFH_errorMsg2_fb["FaultMsgs"] = Json::objectValue; - uFH_errorMsg3_fb["FaultLevel"] = 0; + + //uFH_errorMsg3_fb["FaultLevel"] = 0; uFH_errorMsg3_fb["CurrentTime"] = convertSecondsToString(m_curr_time); - uFH_errorMsg3_fb["FaultMsgs"]; + uFH_errorMsg3_fb["FaultMsgs"] = Json::objectValue; + } //----------------------------------------------------------------------------- @@ -1436,21 +1485,21 @@ bool FaultHandle::MoosAppOverload() return false; } //----------------------------------------------------------------------- -//接收外部故障复位命令,将故障上报信息重置,暂时未启用 20231121 +//接收外部故障复位命令,将故障上报信息重置,暂时未启用 20231121,现已更改为自动恢复故障逻辑 void FaultHandle::FaultReset() { if(m_resetMsg_fb) { Json::Value empty; - uFH_errorMsg1_fb["FaultLevel"] = 0; + //uFH_errorMsg1_fb["FaultLevel"] = 0; uFH_errorMsg1_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg1_fb["FaultMsgs"] = empty; - uFH_errorMsg2_fb["FaultLevel"] = 0; + //uFH_errorMsg2_fb["FaultLevel"] = 0; uFH_errorMsg2_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg2_fb["FaultMsgs"] = empty; - uFH_errorMsg3_fb["FaultLevel"] = 0; + //uFH_errorMsg3_fb["FaultLevel"] = 0; uFH_errorMsg3_fb["CurrentTime"] = convertSecondsToString(m_curr_time); uFH_errorMsg3_fb["FaultMsgs"] = empty; }