72 void setMode(uint8_t newMode);
97 uint8_t hardwareAddress,
98 I2CBus bus = I2CBus::SECONDARY,
99 uint8_t factoryAddress = 0b0100000,
116 uint8_t litCount, lastBitePoint;
118 bool displayBitePoint;
157 struct Implementation;
159 ::std::unique_ptr<Implementation> _impl;
163 bool _enableFlashing{
true};
173 inline void draw_battery_level();
177 inline void draw_main_dashboard(
const TelemetryData *pTelemetryData);
181 void draw_alt_dashboard(
const TelemetryData *pTelemetryData);
185 void draw_tire_temp_dashboard(
const TelemetryData *pTelemetryData);
189 void draw_tire_pressure_dashboard(
const TelemetryData *pTelemetryData);
195 void clearFrameBuffer();
212 I2CBus bus = I2CBus::SECONDARY,
213 bool enableFlashing =
true,
232 uint8_t address7bits,
233 I2CBus bus = I2CBus::SECONDARY,
234 bool enableFlashing =
true,
@ VALUE
Unspecified value.
I2CBus
I2C bus controller.
RevLightsMode
Display modes for "rev lights".
@ RIGHT_TO_LEFT
Moving from right to left.
@ IN_OUT
Moving from center to edges.
@ LEFT_TO_RIGHT
Moving from left to right.
@ OUT_IN
Moving from edges to center.
OledDashboard
Available dashboards for monochrome OLED displays.
@ ALTERNATE
RPM, speed, gear, ABS, TC, brake balance, fuel, pit limiter.
@ BATTERY
Current battery level (available only in battery-operated firmwares)
@ STANDARD
RPM bar, gear, TC, ABS, Low fuel, Pit limiter.
@ _DEFAULT
Default dashboard.
@ TIRE_PRESSURE
Tire pressure/wear dashboard.
@ TIRE_TEMP
Tire/brake temperature dashboard.
Abstract interface for notifications and telemetry display.
Telemetry display via 128x64 monochrome OLED.
virtual void shutdown() override
Cut power to the UI hardware.
virtual void onBitePoint(uint8_t bitePoint) override
Notify a change in the current bite point.
virtual void onConnected() override
Notify device is connected.
virtual void onSaveSettings() override
Notify that user settings have been saved to flash memory.
virtual uint16_t getStackSize() override
Get the stack size required by this user interface.
virtual void onUserInput(uint8_t inputNumber) override
Notify user input.
OledTelemetry128x64(const OLEDParameters ¶ms, uint8_t address7bits, I2CBus bus=I2CBus::SECONDARY, bool enableFlashing=true, OledDashboard initialDashboard=OledDashboard::_DEFAULT, InputNumber nextDash=UNSPECIFIED::VALUE)
Create an Oled Telemetry display (128x64)
virtual void onStart() override
Called just once after initialization.
virtual uint8_t getMaxFPS() override
Get the maximum FPS supported by the underlying hardware.
OledTelemetry128x64(const OLEDParameters ¶ms, I2CBus bus=I2CBus::SECONDARY, bool enableFlashing=true, OledDashboard initialDashboard=OledDashboard::_DEFAULT, InputNumber nextDash=UNSPECIFIED::VALUE)
Create an Oled Telemetry display (128x64)
virtual void onTelemetryData(const TelemetryData *pTelemetryData) override
Notify new telemetry data.
virtual void onBLEdiscovering() override
Notify device is in discovery mode.
virtual void serveSingleFrame(uint32_t elapsedMs) override
Draw a single frame.
virtual void onLowBattery() override
Notify low battery.
8-LED driver based on the PCF8574 GPIO expander
Use eight single-color LEDS as "rev lights".
virtual uint16_t getStackSize() override
Get the stack size required by this user interface.
virtual void onBitePoint(uint8_t bitePoint) override
Notify a change in the current bite point.
virtual void shutdown() override
Cut power to the UI hardware.
virtual void onSaveSettings() override
Notify that user settings have been saved to flash memory.
virtual uint8_t getMaxFPS() override
Get the maximum FPS supported by the underlying hardware.
virtual void onStart() override
Called just once after initialization.
virtual void onTelemetryData(const TelemetryData *pTelemetryData) override
Notify new telemetry data.
virtual void onLowBattery() override
Notify low battery.
virtual void serveSingleFrame(uint32_t elapsedMs) override
Draw a single frame.
PCF8574RevLights(uint8_t hardwareAddress, I2CBus bus=I2CBus::SECONDARY, uint8_t factoryAddress=0b0100000, RevLightsMode displayMode=RevLightsMode::LEFT_TO_RIGHT)
Create "rev lights" using PCF8574 and single-color LEDs.
virtual void onConnected() override
Notify device is connected.
Use a single-color LED as a shift light indicator.
virtual uint8_t getMaxFPS() override
Get the maximum FPS supported by the underlying hardware.
virtual void shutdown() override
Cut power to the UI hardware.
SimpleShiftLight(OutputGPIO ledPin)
Create a simple "shift" light.
virtual uint16_t getStackSize() override
Get the stack size required by this user interface.
virtual void onConnected() override
Notify device is connected.
virtual void onTelemetryData(const TelemetryData *pTelemetryData) override
Notify new telemetry data.
virtual void onStart() override
Called just once after initialization.
virtual void serveSingleFrame(uint32_t elapsedMs) override
Draw a single frame.
A simple LED driver for a single LED.
Monochrome OLED working parameters.
Output-capable GPIO pin number.