ardupilot/libraries/AP_Notify/RCOutputRGBLed.h

36 lines
1.1 KiB
C++

#pragma once
#include "RGBLed.h"
class RCOutputRGBLed: public RGBLed {
public:
RCOutputRGBLed(uint8_t red_channel, uint8_t green_channel,
uint8_t blue_channel, uint8_t led_off, uint8_t led_full,
uint8_t led_medium, uint8_t led_dim);
RCOutputRGBLed(uint8_t red_channel, uint8_t green_channel,
uint8_t blue_channel);
bool hw_init();
virtual bool hw_set_rgb(uint8_t red, uint8_t green, uint8_t blue);
private:
uint8_t _red_channel;
uint8_t _green_channel;
uint8_t _blue_channel;
};
class RCOutputRGBLedOff : public RCOutputRGBLed {
public:
RCOutputRGBLedOff(uint8_t red_channel, uint8_t green_channel,
uint8_t blue_channel, uint8_t led_off)
: RCOutputRGBLed(red_channel, green_channel, blue_channel,
led_off, led_off, led_off, led_off)
{ }
/* Override the hw_set_rgb method to turn leds off regardless of the
* values passed */
bool hw_set_rgb(uint8_t red, uint8_t green, uint8_t blue) override
{
return RCOutputRGBLed::hw_set_rgb(_led_off, _led_off, _led_off);
}
};