Skip to content

File AnalogOutput.h

File List > AnalogOutput > AnalogOutput.h

Go to the documentation of this file

#pragma once
#ifdef ARDUINO_ARCH_STM32

#include <PanelGroup.h>  // OutputBase

namespace OpenSkyhawk {

class AnalogOutput : public OutputBase {
public:
    void onControlPacket(uint16_t controlId, uint16_t value) final;

protected:
    AnalogOutput(uint16_t controlId, uint16_t mask = 0xFFFF, uint8_t shift = 0);

    virtual void apply(uint16_t value) = 0;

private:
    uint16_t _controlId;
    uint16_t _mask;
    uint8_t  _shift;
    uint16_t _lastValue = 0;      
    bool     _hasValue  = false;  
};

} // namespace OpenSkyhawk

#endif // ARDUINO_ARCH_STM32