83 lines
1.7 KiB
C++
83 lines
1.7 KiB
C++
#include <Arduino.h>
|
|
#include "hardware.h"
|
|
#include "globals.h"
|
|
#include "config.h"
|
|
|
|
void singleLED(int n, int color) {
|
|
}
|
|
|
|
// 0000 0001
|
|
// 0000 0010
|
|
// 0000 0011
|
|
// 0000 0100
|
|
// ...
|
|
// 0111 0000
|
|
// 0111 1111
|
|
// >> 4 == 0111
|
|
|
|
// 127 -> 255, 255, 255, 255, 255, 255, 255, 255
|
|
// 64 -> 255, 255, 255, 255, 0, 0, 0, 0
|
|
// 64 -> 255, 255, 255, 255, 0, 0, 0, 0
|
|
// 32 -> 255, 255, 0, 0, 0, 0, 0, 0
|
|
// 24 -> 255, 127, 0, 0, 0, 0, 0, 0
|
|
// 16 -> 255, 0, 0, 0, 0, 0, 0, 0
|
|
// 8 -> 127, 0, 0, 0, 0, 0, 0, 0
|
|
// 0 -> 0, 0, 0, 0, 0, 0, 0, 0
|
|
|
|
void ledFullMeter(byte indicatedValue, int color){
|
|
int scaledVal = indicatedValue;
|
|
ledStrip.setBrightness(1);
|
|
for (int i = 0; i < 8; i++) {
|
|
if (scaledVal > 0) {
|
|
ledStrip.setPixel(i, color);
|
|
} else {
|
|
ledStrip.setPixel(i, 0);
|
|
}
|
|
scaledVal -= 16;
|
|
}
|
|
ledStrip.show();
|
|
}
|
|
|
|
void ledHalfMeter(int n, byte indicatedValue, int color){
|
|
}
|
|
|
|
void ledQuarterMeter(int n, byte indicatedValue, int color){
|
|
}
|
|
|
|
void statusLedOn() {
|
|
digitalWrite(statusLedPin, HIGH);
|
|
}
|
|
|
|
void statusLedOff() {
|
|
digitalWrite(statusLedPin, LOW);
|
|
}
|
|
|
|
void statusLed(bool state) {
|
|
digitalWrite(statusLedPin, state);
|
|
}
|
|
|
|
void statusLedFlip() {
|
|
digitalWrite(statusLedPin, !digitalRead(statusLedPin));
|
|
}
|
|
|
|
void statusLedFlash(uint16_t delayTime) {
|
|
for (int i = 0; i < 8; i++) {
|
|
ledStrip.setPixel(i, 0x000400);
|
|
}
|
|
ledStrip.show();
|
|
statusLedOff();
|
|
delay(delayTime/2);
|
|
statusLedOn();
|
|
ledStrip.clear();
|
|
ledStrip.show();
|
|
delay(delayTime/2);
|
|
}
|
|
|
|
void statusLedBlink() {
|
|
statusLedFlash(300);
|
|
statusLedFlash(300);
|
|
}
|
|
|
|
void updateSensorLEDs(instrument_state_t &state) {
|
|
ledFullMeter(state.breathCCVal, 0x0000FF);
|
|
}
|