allow debug control via serial
parent
91543a4a3d
commit
e342d6f684
|
@ -51,6 +51,19 @@ SwitchEvent handleSwitch() {
|
|||
return isPressed ? SWITCH_PRESSED : SWITCH_RELEASED;
|
||||
}
|
||||
|
||||
bool shouldReleaseDebugSwitch = false;
|
||||
SwitchEvent handleDebugSwitch(char key) {
|
||||
if (shouldReleaseDebugSwitch) {
|
||||
shouldReleaseDebugSwitch = false;
|
||||
return SWITCH_RELEASED;
|
||||
} else if (key == ' ') {
|
||||
shouldReleaseDebugSwitch = true;
|
||||
return SWITCH_PRESSED;
|
||||
} else {
|
||||
return SWITCH_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long lastEncoderChangeAt = 0;
|
||||
|
||||
EncoderEvent handleEncoder() {
|
||||
|
@ -87,3 +100,13 @@ EncoderEvent handleEncoder() {
|
|||
// return event
|
||||
return event;
|
||||
}
|
||||
|
||||
EncoderEvent handleDebugEncoder(char key) {
|
||||
if (key == '[') {
|
||||
return ENCODER_COUNTER_CLOCKWISE;
|
||||
} else if (key == ']') {
|
||||
return ENCODER_CLOCKWISE;
|
||||
} else {
|
||||
return ENCODER_NONE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,4 +13,6 @@ typedef int8_t EncoderEvent;
|
|||
void setupEncoder();
|
||||
|
||||
SwitchEvent handleSwitch();
|
||||
SwitchEvent handleDebugSwitch(char key);
|
||||
EncoderEvent handleEncoder();
|
||||
EncoderEvent handleDebugEncoder(char key);
|
||||
|
|
|
@ -129,3 +129,43 @@ uint8_t getPressedDigit(Key key) {
|
|||
if (key == KEY_NONE) return KEY_NONE;
|
||||
return digits[key];
|
||||
}
|
||||
|
||||
Key handleDebugKeyboard(char key) {
|
||||
if (!key) {
|
||||
return KEY_NONE;
|
||||
} else if (key == '1') {
|
||||
return 0;
|
||||
} else if (key == '2') {
|
||||
return 1;
|
||||
} else if (key == '3') {
|
||||
return 2;
|
||||
} else if (key == '4') {
|
||||
return 3;
|
||||
} else if (key == 'q') {
|
||||
return 4;
|
||||
} else if (key == 'w') {
|
||||
return 5;
|
||||
} else if (key == 'e') {
|
||||
return 6;
|
||||
} else if (key == 'r') {
|
||||
return 7;
|
||||
} else if (key == 'a') {
|
||||
return 8;
|
||||
} else if (key == 's') {
|
||||
return 9;
|
||||
} else if (key == 'd') {
|
||||
return 10;
|
||||
} else if (key == 'f') {
|
||||
return 11;
|
||||
} else if (key == 'z') {
|
||||
return 12;
|
||||
} else if (key == 'x') {
|
||||
return 13;
|
||||
} else if (key == 'c') {
|
||||
return 14;
|
||||
} else if (key == 'v') {
|
||||
return 15;
|
||||
} else {
|
||||
return KEY_NONE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,3 +30,14 @@ Key handleKeyboard();
|
|||
* Returns pressed digit or KEY_NONE if the key is not a digit
|
||||
*/
|
||||
uint8_t getPressedDigit(Key key);
|
||||
|
||||
|
||||
/*
|
||||
|
||||
1234
|
||||
QWER
|
||||
ASDF
|
||||
ZXCV
|
||||
|
||||
*/
|
||||
Key handleDebugKeyboard(char key);
|
||||
|
|
|
@ -32,7 +32,12 @@ void loop() {
|
|||
debugScanI2C();
|
||||
demoTimer();
|
||||
|
||||
char debugKey = Serial.available() > 0 ? Serial.read() : 0;
|
||||
|
||||
auto key = handleKeyboard();
|
||||
if (key == KEY_NONE && debugKey) {
|
||||
key = handleDebugKeyboard(debugKey);
|
||||
}
|
||||
if (key != KEY_NONE) {
|
||||
Serial.print("Key pressed: ");
|
||||
Serial.print(allKeys[key]);
|
||||
|
@ -62,16 +67,24 @@ void loop() {
|
|||
}
|
||||
}
|
||||
|
||||
if (auto event = handleSwitch()) {
|
||||
auto switchEvent = handleSwitch();
|
||||
if (!switchEvent) {
|
||||
switchEvent = handleDebugSwitch(debugKey);
|
||||
}
|
||||
if (switchEvent) {
|
||||
tick();
|
||||
Serial.println(event == SWITCH_PRESSED ? "Pressed" : "Released");
|
||||
Serial.println(switchEvent == SWITCH_PRESSED ? "Pressed" : "Released");
|
||||
}
|
||||
|
||||
if (auto event = handleEncoder()) {
|
||||
auto encoderEvent = handleEncoder();
|
||||
if (!encoderEvent) {
|
||||
encoderEvent = handleDebugEncoder(debugKey);
|
||||
}
|
||||
if (encoderEvent) {
|
||||
tick();
|
||||
Serial.println(event == ENCODER_CLOCKWISE ? "Clockwise" : "Counter-clockwise");
|
||||
// demo_moveBy(event == ENCODER_CLOCKWISE ? 800 : -800);
|
||||
changeFreq(event == ENCODER_CLOCKWISE ? 1 : -1);
|
||||
Serial.println(encoderEvent == ENCODER_CLOCKWISE ? "Clockwise" : "Counter-clockwise");
|
||||
// demo_moveBy(encoderEvent == ENCODER_CLOCKWISE ? 800 : -800);
|
||||
changeFreq(encoderEvent == ENCODER_CLOCKWISE ? 1 : -1);
|
||||
Serial.println(OCR1A);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue