故障来源上报正常信号后,故障自动清除
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
/************************************************************/
|
||||
/* NAME: wade */
|
||||
/* ORGN: MIT */
|
||||
/* ORGN: JHL */
|
||||
/* FILE: FaultHandle.cpp */
|
||||
/* DATE: */
|
||||
/* LAST MODIFY DATE: 20231127 */
|
||||
/************************************************************/
|
||||
|
||||
#include <iterator>
|
||||
@@ -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";
|
||||
@@ -937,6 +938,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);
|
||||
Notify("Current_Time", str_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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user