Untitled
unknown
c_cpp
3 years ago
3.3 kB
9
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...