@@ -55,6 +55,14 @@ const uint32_t cloud[][4] = {
55
55
#define SLOWBLINK_INTERVAL 2000
56
56
#define ALWAYS_ON_INTERVAL -1
57
57
58
+ /* The BLE_AVAILABLE animation follows the pattern:
59
+ * _|¯|_|¯|_|¯¯¯¯¯¯¯¯¯¯¯|_
60
+ * HIGH: led on
61
+ * LOW: led off
62
+ */
63
+ #define N_IMPULSES_START_ON_PERIOD 5
64
+ #define N_IMPULSES_END_ON_PERIOD 15
65
+
58
66
LEDFeedbackClass &LEDFeedbackClass::getInstance () {
59
67
static LEDFeedbackClass instance;
60
68
return instance;
@@ -172,14 +180,15 @@ void LEDFeedbackClass::setMode(LEDFeedbackMode mode) {
172
180
#ifdef BOARD_HAS_RGB
173
181
turnOFF ();
174
182
_ledPin = RED_LED;
183
+ _ledChangeInterval = SLOWBLINK_INTERVAL;
175
184
#else
176
185
_ledPin = GREEN_LED;
186
+ _ledChangeInterval = FASTBLINK_INTERVAL;
177
187
#endif
178
188
#ifdef BOARD_HAS_LED_MATRIX
179
189
_framePtr = (uint32_t *)LEDMATRIX_EMOJI_SAD;
180
190
matrix.loadFrame (LEDMATRIX_EMOJI_SAD);
181
191
#endif
182
- _ledChangeInterval = FASTBLINK_INTERVAL;
183
192
}
184
193
break ;
185
194
default :
@@ -212,16 +221,17 @@ void LEDFeedbackClass::update() {
212
221
213
222
if (millis () - _lastUpdate > _ledChangeInterval/2 ) {
214
223
_lastUpdate = millis ();
224
+ // Implement the pattern for BLE_AVAILABLE
215
225
if (_mode == LEDFeedbackMode::BLE_AVAILABLE) {
216
226
if (_count == 0 ){
217
227
turnOFF ();
218
228
_count++;
219
229
return ;
220
- }else if (_count >= 5 && _count < 15 ){
230
+ }else if (_count >= N_IMPULSES_START_ON_PERIOD && _count < N_IMPULSES_END_ON_PERIOD ){
221
231
turnON ();
222
232
_count++;
223
233
return ;
224
- }else if (_count >= 15 ){
234
+ }else if (_count >= N_IMPULSES_END_ON_PERIOD ){
225
235
_count = 0 ;
226
236
return ;
227
237
}else {
0 commit comments