2023-11-28 01:35:45 +00:00
|
|
|
use crate::{BodyPattern, DashboardPattern, RGB};
|
|
|
|
use fixed::types::{I8F8, U16F0};
|
2023-11-27 01:57:28 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const RGB_OFF: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("0"),
|
|
|
|
g: I8F8::lit("0"),
|
|
|
|
b: I8F8::lit("0"),
|
|
|
|
};
|
2023-11-27 01:57:28 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const RGB_WHITE: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("1"),
|
|
|
|
g: I8F8::lit("1"),
|
|
|
|
b: I8F8::lit("1"),
|
|
|
|
};
|
2023-11-27 01:57:28 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const BRAKES_RED: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("1"),
|
|
|
|
g: I8F8::lit("0"),
|
|
|
|
b: I8F8::lit("0"),
|
|
|
|
};
|
2023-11-27 01:57:28 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const BLINKER_AMBER: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("1"),
|
2023-12-15 03:03:51 +00:00
|
|
|
g: I8F8::lit("0.15"),
|
2023-11-28 01:35:45 +00:00
|
|
|
b: I8F8::lit("0"),
|
|
|
|
};
|
2023-11-27 04:30:45 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const PRIDE_RED: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("0.89"),
|
|
|
|
g: I8F8::lit("0.01"),
|
|
|
|
b: I8F8::lit("0.01"),
|
|
|
|
};
|
|
|
|
|
|
|
|
pub const PRIDE_ORANGE: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("1.0"),
|
|
|
|
g: I8F8::lit("0.54"),
|
|
|
|
b: I8F8::lit("0"),
|
|
|
|
};
|
|
|
|
|
|
|
|
pub const PRIDE_YELLOW: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("1.0"),
|
|
|
|
g: I8F8::lit("0.92"),
|
|
|
|
b: I8F8::lit("0"),
|
|
|
|
};
|
|
|
|
|
|
|
|
pub const PRIDE_GREEN: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("0"),
|
|
|
|
g: I8F8::lit("0.5"),
|
2023-12-14 17:41:13 +00:00
|
|
|
b: I8F8::lit("0.05"),
|
2023-11-28 01:35:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
pub const PRIDE_INDIGO: RGB<I8F8> = RGB {
|
2023-12-14 17:41:13 +00:00
|
|
|
r: I8F8::lit("0.04"),
|
|
|
|
g: I8F8::lit("0.15"),
|
2023-11-28 01:35:45 +00:00
|
|
|
b: I8F8::lit("0.55"),
|
|
|
|
};
|
|
|
|
|
|
|
|
pub const PRIDE_VIOLET: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("0.45"),
|
|
|
|
g: I8F8::lit("0.16"),
|
|
|
|
b: I8F8::lit("0.50"),
|
|
|
|
};
|
|
|
|
|
|
|
|
pub const TRANS_BLUE: RGB<I8F8> = RGB {
|
2023-12-14 17:41:13 +00:00
|
|
|
r: I8F8::lit("0.06"),
|
|
|
|
g: I8F8::lit("0.41"),
|
2023-11-28 01:35:45 +00:00
|
|
|
b: I8F8::lit("0.98"),
|
|
|
|
};
|
|
|
|
|
|
|
|
pub const TRANS_PINK: RGB<I8F8> = RGB {
|
|
|
|
r: I8F8::lit("0.96"),
|
2023-12-14 17:41:13 +00:00
|
|
|
g: I8F8::lit("0.16"),
|
|
|
|
b: I8F8::lit("0.32"),
|
2023-11-28 01:35:45 +00:00
|
|
|
};
|
2023-11-27 01:57:28 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const OFF_DASHBOARD: DashboardPattern = [RGB_OFF; 3];
|
|
|
|
pub const OFF_BODY: BodyPattern = [RGB_OFF; 60];
|
|
|
|
|
|
|
|
pub const DEFAULT_FRAMES: U16F0 = U16F0::lit("30");
|
|
|
|
|
|
|
|
pub const PRIDE_DASHBOARD: DashboardPattern = [PRIDE_RED, PRIDE_GREEN, PRIDE_INDIGO];
|
|
|
|
|
|
|
|
pub const PRIDE_BODY: BodyPattern = [
|
2023-11-27 14:37:36 +00:00
|
|
|
// Left Side
|
|
|
|
// Red
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Orange
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Yellow
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Green
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Indigo
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
|
|
|
// Violet
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Right Side
|
2023-11-28 01:35:45 +00:00
|
|
|
// Violet
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
|
|
|
PRIDE_VIOLET,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Indigo
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
|
|
|
PRIDE_INDIGO,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Green
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
|
|
|
PRIDE_GREEN,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Yellow
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
|
|
|
PRIDE_YELLOW,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Orange
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
|
|
|
PRIDE_ORANGE,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Red
|
2023-11-28 01:35:45 +00:00
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
|
|
|
PRIDE_RED,
|
2023-11-27 14:37:36 +00:00
|
|
|
];
|
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const TRANS_PRIDE_DASHBOARD: DashboardPattern = [TRANS_BLUE, RGB_WHITE, TRANS_PINK];
|
2023-11-27 14:37:36 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const TRANS_PRIDE_BODY: BodyPattern = [
|
2023-11-27 14:37:36 +00:00
|
|
|
// Left Side
|
2023-11-28 01:35:45 +00:00
|
|
|
TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_PINK, TRANS_PINK,
|
|
|
|
TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK, RGB_WHITE, RGB_WHITE, RGB_WHITE, RGB_WHITE,
|
|
|
|
RGB_WHITE, RGB_WHITE, TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK,
|
|
|
|
TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE,
|
2023-11-27 14:37:36 +00:00
|
|
|
// Right side
|
2023-11-28 01:35:45 +00:00
|
|
|
TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_PINK, TRANS_PINK,
|
|
|
|
TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK, RGB_WHITE, RGB_WHITE, RGB_WHITE, RGB_WHITE,
|
|
|
|
RGB_WHITE, RGB_WHITE, TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK, TRANS_PINK,
|
|
|
|
TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE, TRANS_BLUE,
|
2023-11-27 01:57:28 +00:00
|
|
|
];
|
2023-11-27 04:30:45 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const BRAKES_FRAMES: U16F0 = U16F0::lit("15");
|
2023-11-27 04:30:45 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const BRAKES_DASHBOARD: DashboardPattern = [BRAKES_RED; 3];
|
2023-11-27 04:30:45 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const BRAKES_BODY: BodyPattern = [BRAKES_RED; 60];
|
2023-11-27 04:30:45 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const BLINKER_FRAMES: U16F0 = U16F0::lit("15");
|
2023-11-27 04:30:45 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const LEFT_BLINKER_DASHBOARD: DashboardPattern = [BLINKER_AMBER, RGB_OFF, RGB_OFF];
|
2023-11-27 04:30:45 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const LEFT_BLINKER_BODY: BodyPattern = [
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
2023-11-27 04:30:45 +00:00
|
|
|
];
|
2023-11-27 14:37:36 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const RIGHT_BLINKER_DASHBOARD: DashboardPattern = [RGB_OFF, RGB_OFF, BLINKER_AMBER];
|
2023-11-27 14:37:36 +00:00
|
|
|
|
2023-11-28 01:35:45 +00:00
|
|
|
pub const RIGHT_BLINKER_BODY: BodyPattern = [
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
RGB_OFF,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
|
|
|
BLINKER_AMBER,
|
2023-11-27 14:37:36 +00:00
|
|
|
];
|