123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #pragma once
- #ifndef ATM_FADE_WS2812_H_
- #define ATM_FADE_WS2812_H_
- #include <Automaton.h>
- #include "FastLED.h"
- class Atm_fade_WS2812 : public Machine {
- public:
- enum { IDLE, ON, START, STARTU, UP, STARTD, DOWN, REPEAT, DONE, OSTARTU, OUP, OSTARTD, ODOWN };
- enum { EVT_CNT_FADE, EVT_TM_FADE, EVT_TM_ON, EVT_TM_OFF, EVT_CNT_RPT, EVT_ON, EVT_OFF, EVT_BLINK, EVT_TOGGLE, EVT_TOGGLE_BLINK, ELSE };
- enum { EVT_START = EVT_BLINK };
- Atm_fade_WS2812( CRGB *_leds, int _num_leds, int _offset_leds) ;
- ~Atm_fade_WS2812 (void) ;
- Atm_fade_WS2812& begin();
- Atm_fade_WS2812& trace( Stream& stream );
- Atm_fade_WS2812& blink( uint32_t duration, uint32_t pause_duration, uint16_t repeat_count = ATM_COUNTER_OFF );
- Atm_fade_WS2812& blink( uint32_t duration );
- Atm_fade_WS2812& blink( void );
- Atm_fade_WS2812& pause( uint32_t duration );
- Atm_fade_WS2812& fade( int fade_length);
- Atm_fade_WS2812& fade( int fade_length, bool fade_light, int fade_chase);
- Atm_fade_WS2812& fadeSpeed( float fade_speed);
- Atm_fade_WS2812& fadeSpeed( float fade_speed, bool fade_light, int fade_chase);
- Atm_fade_WS2812& repeat( uint16_t repeat );
- Atm_fade_WS2812& on( void );
- Atm_fade_WS2812& off( void );
- Atm_fade_WS2812& toggle( void );
- Atm_fade_WS2812& toggleBlink( void );
- Atm_fade_WS2812& start( void );
- Atm_fade_WS2812& onFinish( Machine& machine, int event = 0 );
- Atm_fade_WS2812& onFinish( atm_cb_push_t callback, int idx = 0 );
- Atm_fade_WS2812& setColor(int hue, int sat, int val);
- Atm_fade_WS2812& replaceValues(bool replace); // if true replace the array, else just add values
- Atm_fade_WS2812& updateRate(int new_update_rate); // change update rate
- Atm_fade_WS2812& update();
- Atm_fade_WS2812& reversed(bool _reverse);
- private:
- //destination array
- CRGB * leds ;
- int num_leds ;
- int offset_leds ;
- //buffer array
- CRGB * leds_buffer ;
- CHSV color ;
- bool reverse = false ;
- int FADE_STEPS = 254 ;
- uint32_t fade_duration ; //last led to update
- unsigned long fade_start_millis ;
- uint32_t fade_ellapsed_millis ;
- uint32_t fade_update_rate = 22 ;
- bool _fade_light = true ;
- bool _fade_chase = 0 ;
- void update_leds(float fade_value) ;
- bool _replace_array = true ;
- bool update_flag = true; // for synchronised update
- enum { ENT_REPEAT, ENT_OFF, ENT_ON, ENT_UP, ENT_DOWN, ENT_START, ENT_DONE };
-
-
- // short pin;
- uint16_t repeat_count;
- atm_connector onfinish;
- atm_timer_millis timer_fade, timer_on, timer_off, timer_update;
- atm_counter counter_fade, counter_repeat;
- int event( int id );
- void action( int id );
- protected:
- // virtual void initLED();
- // virtual void switchOn();
- // virtual void switchOff();
- // virtual void setBrightness(int value);
- };
- #endif
|