@@ -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 ;
}