Line data Source code
1 : /* 2 : This program is free software: you can redistribute it and/or modify 3 : it under the terms of the GNU General Public License as published by 4 : the Free Software Foundation, either version 3 of the License, or 5 : (at your option) any later version. 6 : 7 : This program is distributed in the hope that it will be useful, 8 : but WITHOUT ANY WARRANTY; without even the implied warranty of 9 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 : GNU General Public License for more details. 11 : 12 : You should have received a copy of the GNU General Public License 13 : along with this program. If not, see <http://www.gnu.org/licenses/>. 14 : */ 15 : #pragma once 16 : 17 : #include "AP_Notify_config.h" 18 : 19 : #if AP_NOTIFY_SERIALLED_ENABLED 20 : 21 : #include "RGBLed.h" 22 : #include <AP_Common/AP_Common.h> 23 : #include <AP_SerialLED/AP_SerialLED.h> 24 : 25 : class SerialLED: public RGBLed { 26 : public: 27 : SerialLED(uint8_t led_off, uint8_t led_bright, uint8_t led_medium, uint8_t led_dim); 28 : 29 : struct { 30 : uint8_t b; 31 : uint8_t r; 32 : uint8_t g; 33 : } RGB; 34 : 35 : bool init(void) override; 36 : 37 0 : virtual uint16_t init_ports() { return 0; }; 38 : 39 : protected: 40 : 41 : bool hw_set_rgb(uint8_t r, uint8_t g, uint8_t b) override; 42 : 43 : private: 44 : uint16_t enable_mask; 45 : 46 : HAL_Semaphore _sem; 47 : }; 48 : 49 : #endif // AP_NOTIFY_SERIALLED_ENABLED