Blackbox device type 'file' (SITL) considered working when file handler is available
[inav.git] / src / main / io / statusindicator.c
blobc9ff19607f665cbc93f97b9bd5ea3e530efa7137
1 /*
2 * This file is part of Cleanflight.
4 * Cleanflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Cleanflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
18 #include <stdbool.h>
19 #include <stdint.h>
21 #include "platform.h"
23 #include "drivers/time.h"
24 #include "drivers/light_led.h"
26 #include "statusindicator.h"
28 static uint32_t warningLedTimer = 0;
30 typedef enum {
31 WARNING_LED_OFF = 0,
32 WARNING_LED_ON,
33 WARNING_LED_FLASH
34 } warningLedState_e;
36 static warningLedState_e warningLedState = WARNING_LED_OFF;
38 void warningLedResetTimer(void) {
39 uint32_t now = millis();
40 warningLedTimer = now + 500000;
43 void warningLedEnable(void)
45 warningLedState = WARNING_LED_ON;
48 void warningLedDisable(void)
50 warningLedState = WARNING_LED_OFF;
53 void warningLedFlash(void)
55 warningLedState = WARNING_LED_FLASH;
58 void warningLedRefresh(void)
60 switch (warningLedState) {
61 case WARNING_LED_OFF:
62 LED0_OFF;
63 break;
64 case WARNING_LED_ON:
65 LED0_ON;
66 break;
67 case WARNING_LED_FLASH:
68 LED0_TOGGLE;
69 break;
72 timeUs_t now = micros();
73 warningLedTimer = now + 500000;
76 void warningLedUpdate(void)
78 timeUs_t now = micros();
80 if (cmpTimeUs(now, warningLedTimer) < 0) {
81 return;
84 warningLedRefresh();