Files
OpenDTU/include/Led_Single.h

39 lines
748 B
C
Raw Permalink Normal View History

// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "PinMapping.h"
2023-11-20 21:47:44 +01:00
#include <TaskSchedulerDeclarations.h>
#include <TimeoutHelper.h>
#define LEDSINGLE_UPDATE_INTERVAL 2000
class LedSingleClass {
public:
LedSingleClass();
void init(Scheduler& scheduler);
void turnAllOff();
void turnAllOn();
private:
2023-11-21 21:30:58 +01:00
void setLoop();
void outputLoop();
2023-11-20 21:47:44 +01:00
2023-12-12 00:21:14 +01:00
void setLed(const uint8_t ledNo, const bool ledState);
2023-11-21 21:30:58 +01:00
Task _setTask;
Task _outputTask;
2023-11-20 21:47:44 +01:00
enum class LedState_t {
On,
Off,
Blink,
};
LedState_t _ledMode[PINMAPPING_LED_COUNT];
LedState_t _allMode;
bool _ledStateCurrent[PINMAPPING_LED_COUNT];
TimeoutHelper _blinkTimeout;
};
extern LedSingleClass LedSingle;