Skip to content

Commit 206fc4a

Browse files
committed
Use different RGB patterns for Active Clearing vs Awaiting Release EStop
1 parent a966680 commit 206fc4a

1 file changed

Lines changed: 21 additions & 6 deletions

File tree

src/VisualStateManager.cpp

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ const char* const TAG = "VisualStateManager";
2222

2323
const uint64_t kCriticalErrorFlag = 1 << 0;
2424
const 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
3233
const 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+
7688
const 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

304319
void _handleOpenShockGatewayStateChanged(void* event_data)

0 commit comments

Comments
 (0)