2026-09-28 18:14:00 +02:00
|
|
|
#include "SerialConsole.h"
|
|
|
|
|
#include <Arduino.h>
|
|
|
|
|
|
|
|
|
|
bool SerialConsole::poll(UiEvent& ui, Local& local) {
|
|
|
|
|
ui = UiEvent{};
|
|
|
|
|
local = Local::None;
|
|
|
|
|
while (Serial.available()) {
|
|
|
|
|
char c = Serial.read();
|
|
|
|
|
switch (c) {
|
|
|
|
|
case 'a': ui.cmd = UiCmd::ToggleArm; return true;
|
|
|
|
|
case 'k': ui.cmd = UiCmd::Disarm; return true;
|
|
|
|
|
case 's': ui.cmd = UiCmd::ToggleStand; return true;
|
|
|
|
|
case 'g': ui.cmd = UiCmd::ToggleGait; return true;
|
|
|
|
|
case 'm': ui.cmd = UiCmd::ToggleWalkMode; return true;
|
|
|
|
|
case 't': ui.cmd = UiCmd::ToggleRStickXlate; return true;
|
|
|
|
|
case 'r': ui.cmd = UiCmd::ToggleRemoteGyro; return true;
|
|
|
|
|
case 'b': ui.cmd = UiCmd::ToggleRobotGyro; return true;
|
|
|
|
|
case '+': case '=': ui.cmd = UiCmd::SpeedUp; return true;
|
|
|
|
|
case '-': case '_': ui.cmd = UiCmd::SpeedDown; return true;
|
2026-09-29 00:37:12 +02:00
|
|
|
case ']': ui.cmd = UiCmd::HeightUp; return true;
|
|
|
|
|
case '[': ui.cmd = UiCmd::HeightDown; return true;
|
2026-09-28 18:14:00 +02:00
|
|
|
case 'z': ui.cmd = UiCmd::ZeroGyro; return true;
|
|
|
|
|
case 'c': ui.cmd = UiCmd::CalStartSave; return true;
|
|
|
|
|
case 'x': ui.cmd = UiCmd::CalCancel; return true;
|
2026-10-01 15:29:21 +02:00
|
|
|
case 'U': ui.cmd = UiCmd::NextionUpload; return true;
|
2026-09-28 18:14:00 +02:00
|
|
|
case 'p': local = Local::PrintStatus; return true;
|
|
|
|
|
case 'd': local = Local::ToggleDump; return true;
|
|
|
|
|
case 'R': local = Local::ResetCal; return true;
|
|
|
|
|
default: break; // ignore line endings and unknown keys
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|