[examples] Fix PinScan telnet functionality

This commit is contained in:
Kuba Szczodrzyński
2022-08-01 11:28:56 +02:00
parent e9511c507a
commit 1b5d6472f7
3 changed files with 22 additions and 10 deletions

View File

@@ -56,17 +56,22 @@ static void irqHandler(void *ptr) {
}
static void digitalAllIrq() {
#if USE_WIFI
LT_I("Disabling logger");
lt_log_disable();
Serial.end();
#endif
for (pin_size_t i = 0; i < NUM_DIGITAL_PINS; i++) {
if (pinSkip[0] == i || pinSkip[1] == i) {
used[i] = false;
continue;
}
pinMode(i, INPUT);
// choose interrupt level according to current state
PinStatus status = digitalRead(i) ? FALLING : RISING;
attachInterruptParam(i, irqHandler, status, pins + i);
used[i] = true;
pins[i] = digitalRead(i);
used[i] = true;
// choose interrupt level according to current state
PinStatus status = pins[i] ? FALLING : RISING;
attachInterruptParam(i, irqHandler, status, pins + i);
}
active = true;
}
@@ -112,6 +117,11 @@ void digitalDetach() {
}
active = false;
pin = -1;
#if USE_WIFI
lt_log_set_port(LT_UART_DEFAULT_LOGGER);
Serial.begin(115200);
LT_I("Logger enabled");
#endif
}
void runDigital() {

View File

@@ -32,7 +32,9 @@ void printHelp(uint8_t mode) {
TAB "d - Check digital pins" EOL
TAB "a - Check analog pins" EOL
// TAB "p - Check PWM outputs" EOL
#if !USE_WIFI
TAB "s - Select UART port" EOL
#endif
TAB "t - Toggle ANSI control codes" EOL
TAB "r - Reboot (for uploading)" EOL
TAB "q - Go back to menu, at any time" EOL

View File

@@ -11,10 +11,10 @@ static WiFiServer server(23);
static WiFiClient client;
#endif
Stream *stream = NULL;
uint8_t mode[] = {'q', '\0', '\0', '\0'};
pin_size_t pinSkip[2];
int output = -1;
Stream *stream = NULL;
uint8_t mode[] = {'?', '\0', '\0', '\0'};
pin_size_t pinSkip[2] = {255, 255};
int output = -1;
static void parseMode();
@@ -54,7 +54,6 @@ void loop() {
}
if (!stream) {
client = server.accept();
delay(500);
if (client) {
stream = &client;
printHelp();
@@ -105,7 +104,8 @@ void loop() {
}
}
parseMode();
if (stream)
parseMode();
}
static void parseMode() {