@@ -22,11 +22,12 @@ const char* const TAG = "VisualStateManager";
2222
2323const uint64_t kCriticalErrorFlag = 1 << 0 ;
2424const uint64_t kEmergencyStoppedFlag = 1 << 1 ;
25- const uint64_t kEmergencyStopAwaitingReleaseFlag = 1 << 2 ;
26- const uint64_t kWebSocketConnectedFlag = 1 << 3 ;
27- const uint64_t kHasIpAddressFlag = 1 << 4 ;
28- const uint64_t kWiFiConnectedFlag = 1 << 5 ;
29- const uint64_t kWiFiScanningFlag = 1 << 6 ;
25+ const uint64_t kEmergencyStopActiveClearingFlag = 1 << 2 ;
26+ const uint64_t kEmergencyStopAwaitingReleaseFlag = 1 << 3 ;
27+ const uint64_t kWebSocketConnectedFlag = 1 << 4 ;
28+ const uint64_t kHasIpAddressFlag = 1 << 5 ;
29+ const uint64_t kWiFiConnectedFlag = 1 << 6 ;
30+ const uint64_t kWiFiScanningFlag = 1 << 7 ;
3031
3132// Bitmask of when the system is running normally
3233const uint64_t kStatusOKMask = kWebSocketConnectedFlag | kHasIpAddressFlag | kWiFiConnectedFlag ;
@@ -73,6 +74,17 @@ const PinPatternManager::State kEmergencyStopAwaitingReleasePattern[] = {
7374 { true , 150 },
7475 {false , 150 }
7576};
77+ const RGBPatternManager::RGBState kEmergencyStopActiveClearingRGBPattern [] = {
78+ {0 , 0 , 0 , 50 },
79+ {64 , 0 , 0 , 50 },
80+ {128 , 0 , 0 , 50 },
81+ {192 , 0 , 0 , 50 },
82+ {255 , 0 , 0 , 50 },
83+ {192 , 0 , 0 , 50 },
84+ {128 , 0 , 0 , 50 },
85+ {64 , 0 , 0 , 50 },
86+ };
87+
7688const RGBPatternManager::RGBState kEmergencyStopAwaitingReleaseRGBPattern [] = {
7789 {0 , 255 , 0 , 150 },
7890 {0 , 0 , 0 , 150 }
@@ -188,6 +200,7 @@ void _updateVisualStateGPIO()
188200{
189201 CSR_PATTERN (s_builtInLedManager, kCriticalErrorFlag , kCriticalErrorPattern );
190202 CSR_PATTERN (s_builtInLedManager, kEmergencyStopAwaitingReleaseFlag , kEmergencyStopAwaitingReleasePattern );
203+ CSR_PATTERN (s_builtInLedManager, kEmergencyStopActiveClearingFlag , kEmergencyStopAwaitingReleasePattern );
191204 CSR_PATTERN (s_builtInLedManager, kEmergencyStoppedFlag , kEmergencyStoppedPattern );
192205 CSR_PATTERN (s_builtInLedManager, kWebSocketConnectedFlag , kWebSocketConnectedPattern );
193206 CSR_PATTERN (s_builtInLedManager, kHasIpAddressFlag , kWiFiConnectedWithoutWSPattern );
@@ -200,6 +213,7 @@ void _updateVisualStateRGB()
200213{
201214 CSR_PATTERN (s_RGBLedManager, kCriticalErrorFlag , kCriticalErrorRGBPattern );
202215 CSR_PATTERN (s_RGBLedManager, kEmergencyStopAwaitingReleaseFlag , kEmergencyStopAwaitingReleaseRGBPattern );
216+ CSR_PATTERN (s_RGBLedManager, kEmergencyStopActiveClearingFlag , kEmergencyStopActiveClearingRGBPattern );
203217 CSR_PATTERN (s_RGBLedManager, kEmergencyStoppedFlag , kEmergencyStoppedRGBPattern );
204218 CSR_PATTERN (s_RGBLedManager, kWebSocketConnectedFlag , kWebSocketConnectedRGBPattern );
205219 CSR_PATTERN (s_RGBLedManager, kHasIpAddressFlag , kWiFiConnectedWithoutWSRGBPattern );
@@ -298,7 +312,8 @@ void _handleOpenShockEStopStateChanged(void* event_data)
298312 auto state = *reinterpret_cast <EStopState*>(event_data);
299313
300314 _setStateFlag (kEmergencyStoppedFlag , state != EStopState::Idle);
301- _setStateFlag (kEmergencyStopAwaitingReleaseFlag , state == EStopState::ActiveClearing);
315+ _setStateFlag (kEmergencyStopActiveClearingFlag , state == EStopState::ActiveClearing);
316+ _setStateFlag (kEmergencyStopAwaitingReleaseFlag , state == EStopState::AwaitingRelease);
302317}
303318
304319void _handleOpenShockGatewayStateChanged (void * event_data)
0 commit comments