wongyiekheng fb52c81e52 + Add find bar
+ Add splitter
+ History deletable
2025-12-16 17:25:12 +08:00

74 lines
1.6 KiB
C++

const int PIN_PG = 2; // GPIO 2
const int PIN_RESET = 4; // GPIO 4
String inputCommand = "";
void setup() {
Serial.begin(115200);
delay(1000); // give some time for Serial to attach
pinMode(PIN_PG, OUTPUT);
digitalWrite(PIN_PG, LOW);
pinMode(PIN_RESET, INPUT);
Serial.println("Booting...");
Serial.println("Ready. Commands: 'pg 1', 'pg 0', 'reset'");
}
void loop() {
// Heartbeat
static unsigned long lastBeat = 0;
if (millis() - lastBeat > 2000) {
lastBeat = millis();
}
while (Serial.available() > 0) {
char c = Serial.read();
// Echo back what we received so you can see it
Serial.write(c);
// Check for end of line
if (c == '\n' || c == '\r') {
if (inputCommand.length() > 0) {
Serial.print("\nReceived command: [");
Serial.print(inputCommand);
Serial.println("]");
handleCommand(inputCommand);
inputCommand = "";
}
} else {
inputCommand += c;
}
}
}
void handleCommand(String cmd) {
cmd.trim(); // remove spaces/newlines
if (cmd == "pg 1") {
pinMode(PIN_PG, OUTPUT);
digitalWrite(PIN_PG, HIGH);
Serial.println("PG -> HIGH");
} else if (cmd == "pg 0") {
pinMode(PIN_PG, OUTPUT);
digitalWrite(PIN_PG, LOW);
Serial.println("PG -> LOW");
} else if (cmd == "reset") {
Serial.println("Reset sequence on GPIO 4");
pinMode(PIN_RESET, OUTPUT);
digitalWrite(PIN_RESET, LOW);
delay(500); // 0.5 sec
pinMode(PIN_RESET, INPUT);
Serial.println("GPIO 4 back to INPUT");
} else {
Serial.print("Unknown command: ");
Serial.println(cmd);
}
}