M1M3 Support System
|
Controls mirror safety. More...
#include <SafetyController.h>
Public Member Functions | |
SafetyController (SafetyControllerSettings *safetyControllerSettings) | |
void | clearErrorCode () |
void | airControllerNotifyCommandOutputMismatch (bool conditionFlag, bool commanded, bool sensed) |
void | airControllerNotifyCommandSensorMismatch (bool conditionFlag) |
void | displacementNotifySensorReportsInvalidCommand (bool conditionFlag) |
void | displacementNotifySensorReportsCommunicationTimeoutError (bool conditionFlag) |
void | displacementNotifySensorReportsDataLengthError (bool conditionFlag) |
void | displacementNotifySensorReportsNumberOfParametersError (bool conditionFlag) |
void | displacementNotifySensorReportsParameterError (bool conditionFlag) |
void | displacementNotifySensorReportsCommunicationError (bool conditionFlag) |
void | displacementNotifySensorReportsIDNumberError (bool conditionFlag) |
void | displacementNotifySensorReportsExpansionLineError (bool conditionFlag) |
void | displacementNotifySensorReportsWriteControlError (bool conditionFlag) |
void | displacementNotifyResponseTimeoutError (bool conditionFlag) |
void | displacementNotifyInvalidLength (bool conditionFlag) |
void | displacementNotifyInvalidResponse (bool conditionFlag) |
void | displacementNotifyUnknownCommand (bool conditionFlag) |
void | displacementNotifyUnknownProblem (bool conditionFlag) |
void | inclinometerNotifyResponseTimeout (bool conditionFlag) |
void | inclinometerNotifyInvalidCRC (bool conditionFlag) |
void | inclinometerNotifyUnknownAddress (bool conditionFlag) |
void | inclinometerNotifyUnknownFunction (bool conditionFlag) |
void | inclinometerNotifyInvalidLength (bool conditionFlag) |
void | inclinometerNotifySensorReportsIllegalDataAddress (bool conditionFlag) |
void | inclinometerNotifySensorReportsIllegalFunction (bool conditionFlag) |
void | inclinometerNotifyUnknownProblem (bool conditionFlag) |
void | interlockNotifyHeartbeatStateOutputMismatch (bool conditionFlag) |
void | interlockNotifyAuxPowerNetworksOff (bool conditionFlag) |
void | interlockNotifyThermalEquipmentOff (bool conditionFlag) |
void | interlockNotifyAirSupplyOff (bool conditionFlag) |
void | interlockNotifyCabinetDoorOpen (bool conditionFlag) |
void | interlockNotifyTMAMotionStop (bool conditionFlag) |
void | interlockNotifyGISHeartbeatLost (bool conditionFlag) |
void | forceControllerNotifySafetyLimit (bool conditionFlag) |
void | forceControllerNotifyXMomentLimit (bool conditionFlag, std::string failed) |
void | forceControllerNotifyYMomentLimit (bool conditionFlag, std::string failed) |
void | forceControllerNotifyZMomentLimit (bool conditionFlag, std::string failed) |
void | forceControllerNotifyNearNeighborCheck (bool conditionFlag, std::string failed, float nominalZ, float nominalZWarning) |
void | forceControllerNotifyMagnitudeLimit (bool conditionFlag, float globalForce) |
void | forceControllerNotifyFarNeighborCheck (bool conditionFlag, std::string failed) |
void | forceControllerNotifyElevationForceClipping (bool conditionFlag) |
void | forceControllerNotifyAzimuthForceClipping (bool conditionFlag) |
void | forceControllerNotifyThermalForceClipping (bool conditionFlag) |
void | forceControllerNotifyBalanceForceClipping (bool conditionFlag) |
void | forceControllerNotifyAccelerationForceClipping (bool conditionFlag) |
void | forceControllerNotifyActiveOpticNetForceCheck (bool conditionFlag) |
void | forceControllerNotifyActiveOpticForceClipping (bool conditionFlag) |
void | forceControllerNotifyStaticForceClipping (bool conditionFlag) |
void | forceControllerNotifyOffsetForceClipping (bool conditionFlag) |
void | forceControllerNotifyVelocityForceClipping (bool conditionFlag) |
void | forceControllerNotifyForceClipping (bool conditionFlag) |
void | forceControllerNotifyMeasuredXForceLimit (int actuatorId, float xForce, bool conditionFlag) |
void | forceControllerNotifyMeasuredYForceLimit (int actuatorId, float yForce, bool conditionFlag) |
void | forceControllerNotifyMeasuredZForceLimit (int actuatorId, float zForce, bool conditionFlag) |
void | positionControllerNotifyLimitLow (int hp, bool conditionFlag) |
void | positionControllerNotifyLimitHigh (int hp, bool conditionFlag) |
void | positionControllerNotifyUnstable (int hp, int32_t unstableCount, int32_t deltaEncoder) |
void | positionControllerHighTension (int hp, float weightSupportedPercent) |
void | cellLightNotifyOutputMismatch (bool conditionFlag, bool commanded, bool sensed) |
void | cellLightNotifySensorMismatch (bool conditionFlag, bool commanded, bool sensed) |
void | powerControllerNotifyPowerNetworkAOutputMismatch (bool conditionFlag) |
void | powerControllerNotifyPowerNetworkBOutputMismatch (bool conditionFlag) |
void | powerControllerNotifyPowerNetworkCOutputMismatch (bool conditionFlag) |
void | powerControllerNotifyPowerNetworkDOutputMismatch (bool conditionFlag) |
void | powerControllerNotifyAuxPowerNetworkAOutputMismatch (bool conditionFlag) |
void | powerControllerNotifyAuxPowerNetworkBOutputMismatch (bool conditionFlag) |
void | powerControllerNotifyAuxPowerNetworkCOutputMismatch (bool conditionFlag) |
void | powerControllerNotifyAuxPowerNetworkDOutputMismatch (bool conditionFlag) |
void | raiseOperationTimeout (bool conditionFlag) |
void | lowerOperationTimeout (bool conditionFlag) |
void | ilcCommunicationTimeout (bool conditionFlag) |
void | modbusIRQTimeout (uint32_t timeout, uint32_t irqs) |
void | forceActuatorFollowingError (int actuatorId, int actuatorDataIndex, bool countingWarning, bool immediateFault) |
void | hardpointActuatorBreakawayFault (int actuatorDataIndex, bool conditionFlag) |
void | hardpointActuatorMeasuredForce (int actuatorDataIndex, bool warningFlag, bool faultFlag) |
Triggers hardpoint measured force warning and faults. | |
void | hardpointActuatorAirPressure (int actuatorDataIndex, int conditionFlag, float airPressure) |
Checks hardpoint breakway air pressure. | |
void | hardpointActuatorFollowingError (int hp, double fePercent) |
void | tmaAzimuthTimeout (double currentTimeout) |
void | tmaElevationTimeout (double currentTimeout) |
void | tmaInclinometerDeviation (double currentDeviation) |
void | userPanic () |
States::Type | checkSafety (States::Type preferredNextState) |
Check if mirror safety rules are fulfilled. | |
Controls mirror safety.
Sets _errorCodeData->errorCode to the first detected fault. checkSafety() method then sends mirror to fault state if any fault is detected.
This is a layer above computational layer. Its either check some safety rules, or is signaled safety rules violation. If mirror safety rules are violated, checkSafety() method sends the mirror to a fault state.
States::Type SafetyController::checkSafety | ( | States::Type | preferredNextState | ) |
Check if mirror safety rules are fulfilled.
When safety rules are not fulfilled, returns States::LoweringFaultState.
preferredNextState | returns this state if mirror safety is not violated |
void SafetyController::hardpointActuatorAirPressure | ( | int | actuatorDataIndex, |
int | conditionFlag, | ||
float | airPressure ) |
Checks hardpoint breakway air pressure.
Triggers fault if pressure is outside of bounds for more than SafetyControllerSettings/ILC.AirPressureCountThreshold.
actuatorDataIndex | HP actuator index (0-5) |
conditionFlag | -1 if bellow low, 1 if above high, 0 for in bounds |
airPressure | current air pressure |
void SafetyController::hardpointActuatorMeasuredForce | ( | int | actuatorDataIndex, |
bool | warningFlag, | ||
bool | faultFlag ) |
Triggers hardpoint measured force warning and faults.
actuatorDataIndex | hardpoint actuator index (0 based) |
warningFlag | if true, warning was detected |
faultFlag | if true, fault was detected |