Skip to content

File LED.h

File List > Firmware > Libraries > PanelGroup > Outputs > LED > LED.h

Go to the documentation of this file


#pragma once
#ifdef ARDUINO_ARCH_STM32

#include <PanelGroup.h>  // OutputBase, PinRef

namespace OpenSkyhawk {

class LED : public OutputBase {
public:
    LED(uint16_t controlId, uint16_t mask, PinRef pin, bool reverse = false);

    void configure() override;

    void onControlPacket(uint16_t controlId, uint16_t value) override;

#ifdef LED_TEST
    uint16_t writeCount() const { return _writeCount; }
#endif

private:
    uint16_t _controlId;
    uint16_t _mask;
    PinRef   _pin;
    bool     _reverse;   
    bool     _lastOn   = false;   
    bool     _hasState = false;   
#ifdef LED_TEST
    uint16_t _writeCount = 0;     
#endif
};

} // namespace OpenSkyhawk

#endif // ARDUINO_ARCH_STM32