Thomas Lew / Mbed 2 deprecated FreeFlyerROS

Dependencies:   mbed ros_lib_kinetic

Committer:
Knillinux
Date:
Fri Jun 22 02:09:50 2018 +0000
Revision:
1:40bdbe1a93b7
Updates

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Knillinux 1:40bdbe1a93b7 1 #ifndef RGBA_LED_H
Knillinux 1:40bdbe1a93b7 2 #define RGBA_LED_H
Knillinux 1:40bdbe1a93b7 3
Knillinux 1:40bdbe1a93b7 4 #include "RGBA.h"
Knillinux 1:40bdbe1a93b7 5 #include "PCA9634.h"
Knillinux 1:40bdbe1a93b7 6 #include "colors.h"
Knillinux 1:40bdbe1a93b7 7 #include "defines.h"
Knillinux 1:40bdbe1a93b7 8 #include "mbed.h"
Knillinux 1:40bdbe1a93b7 9 #include "math.h"
Knillinux 1:40bdbe1a93b7 10 #include <vector>
Knillinux 1:40bdbe1a93b7 11 #include <string>
Knillinux 1:40bdbe1a93b7 12
Knillinux 1:40bdbe1a93b7 13 class RGBA_LED
Knillinux 1:40bdbe1a93b7 14 {
Knillinux 1:40bdbe1a93b7 15 public:
Knillinux 1:40bdbe1a93b7 16 RGBA_LED(I2C *i2c, DigitalOut *inv_out_en, int addr, bool amber_enabled);
Knillinux 1:40bdbe1a93b7 17
Knillinux 1:40bdbe1a93b7 18 void disableAmber();
Knillinux 1:40bdbe1a93b7 19 void disableAmber(int stripID);
Knillinux 1:40bdbe1a93b7 20 void enableAmber();
Knillinux 1:40bdbe1a93b7 21 void enableAmber(int stripID);
Knillinux 1:40bdbe1a93b7 22
Knillinux 1:40bdbe1a93b7 23 void setColor(RGBA<float> color);
Knillinux 1:40bdbe1a93b7 24 void setColor(RGBA<float> color, int stripID);
Knillinux 1:40bdbe1a93b7 25 void setBrightness(float alpha);
Knillinux 1:40bdbe1a93b7 26 void setBrightness(float alpha, int stripID);
Knillinux 1:40bdbe1a93b7 27
Knillinux 1:40bdbe1a93b7 28 // TODO
Knillinux 1:40bdbe1a93b7 29 void fadeColor(RGBA<float>, int duration);
Knillinux 1:40bdbe1a93b7 30 void fadeColor(RGBA<float>, int duration, int stripID);
Knillinux 1:40bdbe1a93b7 31 void fadeBrightness(float alpha, int duration);
Knillinux 1:40bdbe1a93b7 32 void fadeBrightness(float alpha, int duration, int stripID);
Knillinux 1:40bdbe1a93b7 33
Knillinux 1:40bdbe1a93b7 34 void setDefaultColorFadeTime(int def_color_fade_time);
Knillinux 1:40bdbe1a93b7 35 void setDefaultBrightnessFadeTime(int def_alpha_fade_time);
Knillinux 1:40bdbe1a93b7 36 void setStepTime(int step_time); // TODO
Knillinux 1:40bdbe1a93b7 37 int getStepTime();
Knillinux 1:40bdbe1a93b7 38 void step();
Knillinux 1:40bdbe1a93b7 39
Knillinux 1:40bdbe1a93b7 40 // TODO
Knillinux 1:40bdbe1a93b7 41 void turnOn();
Knillinux 1:40bdbe1a93b7 42 void turnOn(int stripID);
Knillinux 1:40bdbe1a93b7 43 void turnOff();
Knillinux 1:40bdbe1a93b7 44 void turnOff(int stripID);
Knillinux 1:40bdbe1a93b7 45
Knillinux 1:40bdbe1a93b7 46 // TODO
Knillinux 1:40bdbe1a93b7 47 //void setColorProgram(int preset_id, bool fadeInto);
Knillinux 1:40bdbe1a93b7 48 //void setColorProgram(int preset_id, int stripID, bool fadeInto);
Knillinux 1:40bdbe1a93b7 49 void setColorProgram(vector<RGBA<float> > color_program, vector<float> time_program, bool fadeInto);
Knillinux 1:40bdbe1a93b7 50 void setColorProgram(vector<RGBA<float> > color_program, vector<float> time_program, int stripID, bool fadeInto);
Knillinux 1:40bdbe1a93b7 51 //void setBrightnessProgram(int preset_id, bool fadeInto);
Knillinux 1:40bdbe1a93b7 52 //void setBrightnessProgram(int preset_id, int stripID, bool fadeInto);
Knillinux 1:40bdbe1a93b7 53 void setBrightnessProgram(vector<float> alpha_program, vector<float> time_program, bool fadeInto);
Knillinux 1:40bdbe1a93b7 54 void setBrightnessProgram(vector<float> alpha_program, vector<float> time_program, int stripID, bool fadeInto);
Knillinux 1:40bdbe1a93b7 55
Knillinux 1:40bdbe1a93b7 56 RGBA<float> getPresetColor(char colorID);
Knillinux 1:40bdbe1a93b7 57 vector<RGBA<float> > getPresetColorProgram(int programID);
Knillinux 1:40bdbe1a93b7 58 //vector<RGBA<float> > genColorProgram(string sequence);
Knillinux 1:40bdbe1a93b7 59 //vector<RGBA<float> > genDoubleColorProgram(vector<RGBA<float> > colorProgram); // Dublicates each color in sequence
Knillinux 1:40bdbe1a93b7 60 //vector<RGBA<float> > genHalfColorProgram(vector<RGBA<float> > colorProgram); // For undoing genDoubleColorProgram
Knillinux 1:40bdbe1a93b7 61 vector<float> getPresetAlphaProgram(int programID);
Knillinux 1:40bdbe1a93b7 62 //vector<float> genFadeAlphaProgram(float duration); // For simple fading without breaks
Knillinux 1:40bdbe1a93b7 63 //vector<float> genDelayedFadeAlphaProgram(float duration1, float duration2); // For fading while staying at each color for a while
Knillinux 1:40bdbe1a93b7 64
Knillinux 1:40bdbe1a93b7 65 private:
Knillinux 1:40bdbe1a93b7 66 PCA9634 *led_driver_;
Knillinux 1:40bdbe1a93b7 67
Knillinux 1:40bdbe1a93b7 68 RGBA<ledID> strip_leds_[2]; // Contains ids of LEDs associated with strips
Knillinux 1:40bdbe1a93b7 69
Knillinux 1:40bdbe1a93b7 70 RGBA<float> cur_color_[2], dcolor_[2]; // Colors range from 0 to 255
Knillinux 1:40bdbe1a93b7 71 float cur_alpha_[2], dalpha_[2]; // Brightness ranges from 0.0 to 1.0
Knillinux 1:40bdbe1a93b7 72
Knillinux 1:40bdbe1a93b7 73 int count_color_[2], count_alpha_[2];
Knillinux 1:40bdbe1a93b7 74 int ind_color_program_[2], ind_alpha_program_[2];
Knillinux 1:40bdbe1a93b7 75 int step_time_; // In milliseconds
Knillinux 1:40bdbe1a93b7 76 float def_color_fade_time_, def_alpha_fade_time_;
Knillinux 1:40bdbe1a93b7 77
Knillinux 1:40bdbe1a93b7 78 vector<RGBA<float> > color_program_[2];
Knillinux 1:40bdbe1a93b7 79 vector<float> alpha_program_[2];
Knillinux 1:40bdbe1a93b7 80 vector<float> color_time_program_[2], alpha_time_program_[2];
Knillinux 1:40bdbe1a93b7 81
Knillinux 1:40bdbe1a93b7 82 void updatePWMs();
Knillinux 1:40bdbe1a93b7 83 void updatePWMs(int stripID);
Knillinux 1:40bdbe1a93b7 84
Knillinux 1:40bdbe1a93b7 85 };
Knillinux 1:40bdbe1a93b7 86
Knillinux 1:40bdbe1a93b7 87
Knillinux 1:40bdbe1a93b7 88
Knillinux 1:40bdbe1a93b7 89 #endif