From fbed17d3260d1fca312d655818cc2394654615aa Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Tue, 2 May 2023 08:47:42 -0600 Subject: D4v2: added the rest of the aux RGB colors as channel modes, and set aux "white" as the mode it uses to blink out numbers --- hwdef-emisar-d4v2.h | 34 ++++++++++++++++++++++------- spaghetti-monster/anduril/cfg-emisar-d4v2.h | 3 +++ spaghetti-monster/chan-rgbaux.c | 22 ++++++++++++++++--- spaghetti-monster/chan-rgbaux.h | 4 ++++ 4 files changed, 52 insertions(+), 11 deletions(-) diff --git a/hwdef-emisar-d4v2.h b/hwdef-emisar-d4v2.h index 813dbf3..a502421 100644 --- a/hwdef-emisar-d4v2.h +++ b/hwdef-emisar-d4v2.h @@ -40,13 +40,23 @@ // channel modes: // * 0. FET+7135 stacked // * 1. aux red -// * 2. aux green -// * 3. aux blue -#define NUM_CHANNEL_MODES 4 -#define CM_MAIN 0 -#define CM_AUXRED 1 -#define CM_AUXGRN 2 -#define CM_AUXBLU 3 +// * 2. aux yellow +// * 3. aux green +// * 4. aux cyan +// * 5. aux blue +// * 6. aux purple +// * 7. aux white +#define NUM_CHANNEL_MODES 8 +enum CHANNEL_MODES { + CM_MAIN = 0, + CM_AUXRED, + CM_AUXYEL, + CM_AUXGRN, + CM_AUXCYN, + CM_AUXBLU, + CM_AUXPRP, + CM_AUXWHT, +}; #define DEFAULT_CHANNEL_MODE CM_MAIN @@ -58,10 +68,18 @@ #define SET_LEVEL_MODES set_level_main, \ set_level_auxred, \ + set_level_auxyel, \ set_level_auxgrn, \ - set_level_auxblu + set_level_auxcyn, \ + set_level_auxblu, \ + set_level_auxprp, \ + set_level_auxwht // gradual ticking for thermal regulation #define GRADUAL_TICK_MODES gradual_tick_main, \ + gradual_tick_null, \ + gradual_tick_null, \ + gradual_tick_null, \ + gradual_tick_null, \ gradual_tick_null, \ gradual_tick_null, \ gradual_tick_null diff --git a/spaghetti-monster/anduril/cfg-emisar-d4v2.h b/spaghetti-monster/anduril/cfg-emisar-d4v2.h index 69023d1..f68e50f 100644 --- a/spaghetti-monster/anduril/cfg-emisar-d4v2.h +++ b/spaghetti-monster/anduril/cfg-emisar-d4v2.h @@ -45,6 +45,9 @@ // show each channel while it scroll by in the menu #define USE_CONFIG_COLORS +// blink numbers on the aux LEDs by default +#define DEFAULT_BLINK_CHANNEL CM_AUXWHT + // use aux red + aux blue for police strobe #define USE_POLICE_COLOR_STROBE_MODE #define POLICE_STROBE_USES_AUX diff --git a/spaghetti-monster/chan-rgbaux.c b/spaghetti-monster/chan-rgbaux.c index 355f246..19d18a6 100644 --- a/spaghetti-monster/chan-rgbaux.c +++ b/spaghetti-monster/chan-rgbaux.c @@ -4,15 +4,31 @@ #pragma once void set_level_auxred(uint8_t level) { - rgb_led_set(!(!(level)) << 1); // red, high (or off) + rgb_led_set(!(!(level)) * 0b000010); // red, high (or off) +} + +void set_level_auxyel(uint8_t level) { + rgb_led_set(!(!(level)) * 0b001010); // red+green, high (or off) } void set_level_auxgrn(uint8_t level) { - rgb_led_set(!(!(level)) << 3); // green, high (or off) + rgb_led_set(!(!(level)) * 0b001000); // green, high (or off) +} + +void set_level_auxcyn(uint8_t level) { + rgb_led_set(!(!(level)) * 0b101000); // green+blue, high (or off) } void set_level_auxblu(uint8_t level) { - rgb_led_set(!(!(level)) << 5); // blue, high (or off) + rgb_led_set(!(!(level)) * 0b100000); // blue, high (or off) +} + +void set_level_auxprp(uint8_t level) { + rgb_led_set(!(!(level)) * 0b100010); // red+blue, high (or off) +} + +void set_level_auxwht(uint8_t level) { + rgb_led_set(!(!(level)) * 0b101010); // red+green+blue, high (or off) } bool gradual_tick_null(uint8_t gt) { return true; } // do nothing diff --git a/spaghetti-monster/chan-rgbaux.h b/spaghetti-monster/chan-rgbaux.h index 5c1c5c3..d19f6ad 100644 --- a/spaghetti-monster/chan-rgbaux.h +++ b/spaghetti-monster/chan-rgbaux.h @@ -4,8 +4,12 @@ #pragma once void set_level_auxred(uint8_t level); +void set_level_auxyel(uint8_t level); void set_level_auxgrn(uint8_t level); +void set_level_auxcyn(uint8_t level); void set_level_auxblu(uint8_t level); +void set_level_auxprp(uint8_t level); +void set_level_auxwht(uint8_t level); bool gradual_tick_null(uint8_t gt); -- cgit v1.2.3