#ifndef DMX_RGB_h #define DMX_RGB_h #include #include #if ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif #define MASTER_TIMER 100 #define MAX_FADE_ELEMENTS 10 class DMX_RGB { private: byte _red; byte _green; byte _blue; byte _dim; byte _red_memory; byte _green_memory; byte _blue_memory; byte _dim_memory; float _steps; int _addr_red; int _addr_green; int _addr_blue; int _addr_dim; int _addr_mode; float _stepping_red; float _stepping_green; float _stepping_blue; byte _queue_red[MAX_FADE_ELEMENTS]; byte _queue_green[MAX_FADE_ELEMENTS]; byte _queue_blue[MAX_FADE_ELEMENTS]; float _queue_time[MAX_FADE_ELEMENTS]; int _queue_counter; int _q; int _step_counter; IPAddress remote_ip; uint16_t remote_port; void _DMXNet_send(uint16_t addr,uint8_t data); public: DMX_RGB(char* ip, uint16_t port,int addr_red, int addr_green, int addr_blue, int addr_dim,int addr_mode); void set_rgb(byte r, byte g, byte b); void set_red(byte r); void set_green(byte g); void set_blue(byte b); void set_dim(byte d); int get_steps(void); void fade_to(byte r, byte g, byte b, float time); void flash(byte flashes, int min_time, int max_time, int fade_time); void worker(void); void init(int cmd); }; #endif