Untitled
unknown
c_cpp
2 years ago
3.3 kB
6
Indexable
/* Reference: https://clover.coex.tech/ru/leds.html */ #ifndef __LED_STRIP_H #define __LED_STRIP_H #include "main.h" #include "color_space.h" #include "led_strip_config.h" typedef enum { /// @brief отключить ленту LED_EFFECT__NONE = 0, /// @brief залить всю ленту цветом LED_EFFECT__FILL, /// @brief мигание цветом LED_EFFECT__BLINK, /// @brief ускоренное мигание цветом LED_EFFECT__BLINK_FAST, /// @brief плавное перетекание в цвет LED_EFFECT__FADE, /// @brief "надвигание" нового цвета LED_EFFECT__WIPE, /// @brief переливание ленты цветами радуги LED_EFFECT__RAINBOW, /// @brief переливать заливку по цветам радуги LED_EFFECT__RAINBOW_FILL, LED_EFFECT__COUNT, } led_effect_type_t; typedef enum { /// @brief Без эффектов LED_EVENT__NONE = 0, /// @brief Запуск всех систем. Белый LED_EVENT__STARTUP, /// @brief Успешное подключение к полетному контроллеру. Эффект радуги LED_EVENT__CONNECTED, /// @brief Разрыв связи с полетным контроллером. Мигание красным LED_EVENT__DISCONNECTED, /// @brief Переход в состояние Armed LED_EVENT__ARMED, /// @brief Переход в состояние Disarmed LED_EVENT__DISARMED, /// @brief Режим Acro. Оранжевый LED_EVENT__ACRO, /// @brief Режим Stabilized. Зеленый LED_EVENT__STABILIZED, /// @brief Режим Altitude. Желтый LED_EVENT__ALTCTL, /// @brief Режим Position. Синий LED_EVENT__POSCTL, /// @brief Режим Offboard. Фиолетовый LED_EVENT__OFFBOARD, /// @brief Переход в соответствующие режимы LED_EVENT__RATTITUDE, LED_EVENT__MISSION, LED_EVENT__RTL, LED_EVENT__LAND, /// @brief Возникновение ошибки в полетном контроллере. Мигнуть красным LED_EVENT__ERROR, /// @brief Низкий заряд батареи. Быстрое мигание красным LED_EVENT__LOW_BATTERY, LED_EVENT__COUNT, } led_event_t; /** * @brief Init all led strips */ void led_strip_init(void); /** * @brief Process all led strips * * @note Should be called LED_STRIP_FPS times per second */ void led_strip_process(void); /** * @brief Post event which should be showed by led strip * @param led_idx index of led_strip * @param event type of posted event * @return 0 - success */ int led_strip_post_event(uint8_t led_idx, led_event_t event); /** * @brief Set new effect to showed by led_strip * @param led_idx index of led_strip * @param effect_type type of effect * @param common_color pointer to color effect, which will be used in effect. * NULL if use color from previous effect, or if effect not use color (like rainbow) * @return 0 - success */ int led_strip_set_effect(uint8_t led_idx, led_effect_type_t effect_type, color_t* common_color); #endif // __LED_STRIP_H
Editor is loading...