mirror of
https://github.com/OpenEPaperLink/OpenEPaperLink.git
synced 2026-03-21 10:06:07 +01:00
webflasher serial passthrough, work in progress, turned off for now
This commit is contained in:
@@ -404,8 +404,8 @@ build_flags =
|
||||
-D FLASHER_EXT_MISO=42
|
||||
-D FLASHER_EXT_RESET=5
|
||||
-D FLASHER_EXT_POWER={6}
|
||||
-D FLASHER_EXT_TXD=39
|
||||
-D FLASHER_EXT_RXD=38
|
||||
-D FLASHER_EXT_TXD=38
|
||||
-D FLASHER_EXT_RXD=39
|
||||
-D FLASHER_EXT_TEST=4
|
||||
-D FLASHER_ALT_SS=-1
|
||||
-D FLASHER_ALT_CLK=-1
|
||||
|
||||
@@ -47,7 +47,7 @@ void delayedStart(void* parameter) {
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
#ifdef ARDUINO_USB_CDC_ON_BOOT
|
||||
#if ARDUINO_USB_CDC_ON_BOOT == 1
|
||||
Serial.setTxTimeoutMs(0); // workaround bug in USB CDC that slows down serial output when no usb connected
|
||||
#endif
|
||||
Serial.print(">\n");
|
||||
|
||||
@@ -81,7 +81,7 @@ void powerControl(bool powerState, uint8_t* pin, uint8_t pincount) {
|
||||
if (pin == nullptr) return;
|
||||
|
||||
static bool currentState = false;
|
||||
if (currentState == true && powerState == true) return;
|
||||
if (currentState == powerState) return;
|
||||
currentState = powerState;
|
||||
|
||||
#ifdef POWER_RAMPING
|
||||
|
||||
@@ -226,7 +226,7 @@ void flasherDataHandler(uint8_t* data, size_t len, uint8_t transportType) {
|
||||
|
||||
void resetFlasherState() {
|
||||
if (serialPassthroughState) {
|
||||
Serial0.end();
|
||||
Serial2.end();
|
||||
}
|
||||
serialPassthroughState = false;
|
||||
}
|
||||
@@ -280,7 +280,7 @@ static void usbEventCallback(void* arg, esp_event_base_t event_base, int32_t eve
|
||||
uint8_t buf[data->rx.len];
|
||||
size_t len = cmdSerial.read(buf, data->rx.len);
|
||||
if (serialPassthroughState) {
|
||||
Serial0.write(buf, len);
|
||||
Serial2.write(buf, len);
|
||||
} else {
|
||||
flasherDataHandler(buf, len, TRANSPORT_USB);
|
||||
}
|
||||
@@ -581,7 +581,13 @@ void processFlasherCommand(struct flasherCommand* cmd, uint8_t transportType) {
|
||||
break;
|
||||
case CMD_PASS_THROUGH:
|
||||
wsSerial("> pass through");
|
||||
Serial0.begin(115200, SERIAL_8N1, FLASHER_EXT_RXD, FLASHER_EXT_TXD);
|
||||
|
||||
extern bool rxSerialStopTask2;
|
||||
rxSerialStopTask2 = true;
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
|
||||
if (Serial2) Serial2.end();
|
||||
Serial2.begin(115200, SERIAL_8N1, FLASHER_EXT_RXD, FLASHER_EXT_TXD);
|
||||
cmdSerial.println(">>>");
|
||||
serialPassthroughState = true;
|
||||
break;
|
||||
@@ -616,16 +622,28 @@ void flasherCommandTimeout() {
|
||||
}
|
||||
|
||||
void tagDebugPassthrough() {
|
||||
uint16_t len = Serial0.available();
|
||||
// static String accumulatedData = "";
|
||||
// static unsigned long flushTimer = 0;
|
||||
uint16_t len = Serial2.available();
|
||||
|
||||
if (len > 0) {
|
||||
uint8_t* buf = (uint8_t*)malloc(len);
|
||||
Serial0.read(buf, len);
|
||||
Serial.write(buf, len);
|
||||
Serial2.readBytes(buf, len);
|
||||
cmdSerial.printf("%d bytes: ", len);
|
||||
cmdSerial.write(buf, len);
|
||||
String dataString((char*)buf, len);
|
||||
wsSerial(dataString, "cyan");
|
||||
cmdSerial.print("\n");
|
||||
//String dataString((char*)buf, len);
|
||||
//wsSerial(dataString, "cyan");
|
||||
// accumulatedData += dataString;
|
||||
free(buf);
|
||||
}
|
||||
/*
|
||||
if (millis() - flushTimer > 500 && accumulatedData.length() > 0) {
|
||||
// wsSerial("*", "cyan");
|
||||
flushTimer = millis();
|
||||
accumulatedData = "";
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
#ifdef HAS_USB
|
||||
|
||||
@@ -445,21 +445,23 @@ void webFlasherTask(void* parameter) {
|
||||
}
|
||||
|
||||
case AUTOFLASH_USBFLASHER_RUNNING: {
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
break;
|
||||
}
|
||||
|
||||
case AUTOFLASH_END_USBFLASHER: {
|
||||
autoFlashStep = AUTOFLASH_STEP_FINISHED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* work in progress
|
||||
if (serialPassthroughState) {
|
||||
tagDebugPassthrough();
|
||||
vTaskDelay(1 / portTICK_PERIOD_MS);
|
||||
} else {
|
||||
*/
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
}
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -508,20 +510,38 @@ void handleWSdata(uint8_t* data, size_t len, AsyncWebSocketClient* client) {
|
||||
break;
|
||||
case WEBFLASH_POWER_ON: {
|
||||
wsSerial("Power up", "yellow");
|
||||
|
||||
extern bool rxSerialStopTask2;
|
||||
if (rxSerialStopTask2 == false) {
|
||||
rxSerialStopTask2 = true;
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
}
|
||||
|
||||
int8_t powerPins2[] = FLASHER_EXT_POWER;
|
||||
uint8_t numPowerPins = sizeof(powerPins2);
|
||||
powerControl(true, (uint8_t*)powerPins2, numPowerPins);
|
||||
|
||||
Serial0.begin(115200, SERIAL_8N1, FLASHER_EXT_RXD, FLASHER_EXT_TXD);
|
||||
/* work in progress
|
||||
if (Serial2) Serial2.end();
|
||||
Serial2.begin(115200, SERIAL_8N1, FLASHER_EXT_RXD, FLASHER_EXT_TXD);
|
||||
Serial.println(">>>");
|
||||
serialPassthroughState = true;
|
||||
*/
|
||||
break;
|
||||
}
|
||||
case WEBFLASH_POWER_OFF: {
|
||||
wsSerial("Power down", "yellow");
|
||||
serialPassthroughState = false;
|
||||
vTaskDelay(50 / portTICK_PERIOD_MS);
|
||||
if (Serial0) Serial0.end();
|
||||
if (serialPassthroughState) {
|
||||
serialPassthroughState = false;
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
}
|
||||
extern bool rxSerialStopTask2;
|
||||
if (rxSerialStopTask2 == false) {
|
||||
rxSerialStopTask2 = true;
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
}
|
||||
|
||||
if (Serial2) Serial2.end();
|
||||
pinMode(FLASHER_EXT_MISO, INPUT);
|
||||
pinMode(FLASHER_EXT_CLK, INPUT);
|
||||
pinMode(FLASHER_EXT_TEST, INPUT);
|
||||
|
||||
@@ -747,7 +747,7 @@ document.addEventListener("loadTab", function (event) {
|
||||
loadOTA();
|
||||
break;
|
||||
case 'flashtab':
|
||||
$('#flashconsole').innerHTML = '';
|
||||
// $('#flashconsole').innerHTML = '';
|
||||
loadFlash();
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user