Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed ros_lib_kinetic
RGBA_LED.h@1:40bdbe1a93b7, 2018-06-22 (annotated)
- Committer:
- Knillinux
- Date:
- Fri Jun 22 02:09:50 2018 +0000
- Revision:
- 1:40bdbe1a93b7
Updates
Who changed what in which revision?
| User | Revision | Line number | New 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 |