Skip to content

Commit 5344016

Browse files
authored
Merge pull request #142 from adafruit/fix-led-issue-sync
Fix status LED component not re-syncing
2 parents 8dd51b1 + 47af51d commit 5344016

File tree

3 files changed

+17
-24
lines changed

3 files changed

+17
-24
lines changed

src/Wippersnapper.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -860,7 +860,6 @@ void Wippersnapper::runNetFSM() {
860860
WS._mqtt->setKeepAliveInterval(WS_KEEPALIVE_INTERVAL);
861861
mqttRC = WS._mqtt->connect(WS._username, WS._key);
862862
if (mqttRC == WS_MQTT_CONNECTED) {
863-
statusLEDDeinit();
864863
fsmNetwork = FSM_NET_CHECK_MQTT;
865864
break;
866865
}
@@ -933,12 +932,7 @@ void Wippersnapper::pingBroker() {
933932
}
934933
// blink status LED every STATUS_LED_KAT_BLINK_TIME millis
935934
if (millis() > (_prvKATBlink + STATUS_LED_KAT_BLINK_TIME)) {
936-
if (WS.lockStatusLED) {
937-
WS_DEBUG_PRINTLN("Status-LED in-use by WipperSnapper");
938-
} else {
939-
statusLEDBlink(WS_LED_STATUS_KAT);
940-
statusLEDDeinit();
941-
}
935+
statusLEDBlink(WS_LED_STATUS_KAT);
942936
_prvKATBlink = millis();
943937
}
944938
}
@@ -1049,7 +1043,6 @@ void Wippersnapper::connect() {
10491043

10501044
WS_DEBUG_PRINTLN("Registered board with Wippersnapper.");
10511045
statusLEDBlink(WS_LED_STATUS_CONNECTED);
1052-
statusLEDDeinit();
10531046

10541047
WS._mqtt->processPackets(1000);
10551048
}

src/Wippersnapper_StatusLED.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,10 @@ bool Wippersnapper::statusLEDInit() {
6464
#endif
6565

6666
#ifdef USE_STATUS_LED
67-
if (!WS.lockStatusLED) {
68-
pinMode(STATUS_LED_PIN, OUTPUT); // Initialize LED
69-
digitalWrite(STATUS_LED_PIN, 0); // Turn OFF LED
70-
WS.lockStatusLED = true; // set global pin "lock" flag
71-
is_success = true;
72-
}
67+
pinMode(STATUS_LED_PIN, OUTPUT); // Initialize LED
68+
digitalWrite(STATUS_LED_PIN, 0); // Turn OFF LED
69+
WS.lockStatusLED = true; // set global pin "lock" flag
70+
is_success = true;
7371
#endif
7472
return is_success;
7573
}
@@ -96,7 +94,7 @@ void Wippersnapper::statusLEDDeinit() {
9694
digitalWrite(STATUS_LED_PIN, 0); // turn off
9795
pinMode(STATUS_LED_PIN,
9896
INPUT); // "release" for use by setting to input (hi-z)
99-
WS.lockStatusLED = false; // release global pin lock flag
97+
WS.lockStatusLED = false; // un-set global pin "lock" flag
10098
#endif
10199
}
102100

@@ -146,6 +144,11 @@ void Wippersnapper::setStatusLEDColor(uint32_t color) {
146144
*/
147145
/****************************************************************************/
148146
void Wippersnapper::statusLEDBlink(ws_led_status_t statusState) {
147+
#ifdef USE_STATUS_LED
148+
if (!WS.lockStatusLED)
149+
return;
150+
#endif
151+
149152
int blinkNum = 0;
150153
uint32_t ledBlinkColor;
151154
switch (statusState) {

src/components/Wippersnapper_DigitalGPIO.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,9 @@ void Wippersnapper_DigitalGPIO::initDigitalPin(
6161
wippersnapper_pin_v1_ConfigurePinRequest_Direction_DIRECTION_OUTPUT) {
6262

6363
#ifdef STATUS_LED_PIN
64-
// lock status LED pin for use as a digitalIO component
65-
if (pinName == STATUS_LED_PIN) {
66-
WS_DEBUG_PRINTLN("* Using status LED as a digital output");
67-
WS.lockStatusLED = true;
68-
}
64+
// deinit status led, use it as a dio component instead
65+
if (pinName == STATUS_LED_PIN)
66+
WS.statusLEDDeinit();
6967
#endif
7068
WS_DEBUG_PRINT("Configured digital output pin on D");
7169
WS_DEBUG_PRINTLN(pinName);
@@ -131,11 +129,10 @@ void Wippersnapper_DigitalGPIO::deinitDigitalPin(
131129
itoa(pinName, cstr, 10);
132130
pinMode(pinName, INPUT); // hi-z
133131

132+
// if prv. in-use by DIO, release pin back to application
134133
#ifdef STATUS_LED_PIN
135-
// release status LED pin back for signaling
136-
if (pinName == STATUS_LED_PIN) {
137-
WS.lockStatusLED = false;
138-
}
134+
if (pinName == STATUS_LED_PIN)
135+
WS.statusLEDInit();
139136
#endif
140137
}
141138

0 commit comments

Comments
 (0)