diff --git a/common/modules/mixly-modules/common/statusbar-serial.js b/common/modules/mixly-modules/common/statusbar-serial.js index d312917c..b5954df4 100644 --- a/common/modules/mixly-modules/common/statusbar-serial.js +++ b/common/modules/mixly-modules/common/statusbar-serial.js @@ -458,11 +458,13 @@ class StatusBarSerial extends PageBase { async open() { await this.#serial_.open(this.#config_.baud); - await this.#serial_.sleep(200); - try { - await this.#serial_.setDTRAndRTS(this.#config_.dtr, this.#config_.rts); - } catch (error) { - Debug.error(error); + if (goog.isElectron || Env.hasSocketServer) { + await this.#serial_.sleep(200); + try { + await this.#serial_.setDTRAndRTS(this.#config_.dtr, this.#config_.rts); + } catch (error) { + Debug.error(error); + } } if (SELECTED_BOARD?.serial?.ctrlCBtn) { await this.#serial_.sleep(500); diff --git a/common/modules/mixly-modules/web/serialport.js b/common/modules/mixly-modules/web/serialport.js index c8c0fcb2..f7d8328e 100644 --- a/common/modules/mixly-modules/web/serialport.js +++ b/common/modules/mixly-modules/web/serialport.js @@ -128,30 +128,23 @@ class WebSerialPort extends Serial { } async open(baud) { - return new Promise((resolve, reject) => { - const portsName = Serial.getCurrentPortsName(); - const currentPortName = this.getPortName(); - if (!portsName.includes(currentPortName)) { - reject('no device available'); - return; - } - if (this.isOpened()) { - resolve(); - return; - } - baud = baud ?? this.getBaudRate(); - this.#serialport_ = WebSerialPort.getPort(currentPortName); - this.#serialport_.open({ baudRate: baud }) - .then(() => { - super.open(baud); - super.setBaudRate(baud); - this.#keepReading_ = true; - this.onOpen(); - this.#addEventsListener_(); - resolve(); - }) - .catch(reject); - }); + const portsName = Serial.getCurrentPortsName(); + const currentPortName = this.getPortName(); + if (!portsName.includes(currentPortName)) { + throw Error('no device available'); + return; + } + if (this.isOpened()) { + return; + } + baud = baud ?? this.getBaudRate(); + this.#serialport_ = WebSerialPort.getPort(currentPortName); + await this.#serialport_.open({ baudRate: baud }); + super.open(baud); + super.setBaudRate(baud); + this.#keepReading_ = true; + this.onOpen(); + this.#addEventsListener_(); } async #waitForUnlock_(timeout) { @@ -180,18 +173,13 @@ class WebSerialPort extends Serial { } async setBaudRate(baud) { - return new Promise((resolve, reject) => { - if (!this.isOpened() - || this.getBaudRate() === baud - || !this.baudRateIsLegal(baud)) { - resolve(); - return; - } - this.close() - .then(() => this.open(baud)) - .then(resolve) - .catch(reject); - }); + if (!this.isOpened() + || this.getBaudRate() === baud + || !this.baudRateIsLegal(baud)) { + return; + } + await this.close(); + await this.open(baud); } async sendString(str) { @@ -215,21 +203,14 @@ class WebSerialPort extends Serial { } async setDTRAndRTS(dtr, rts) { - return new Promise((resolve, reject) => { - if (!this.isOpened()) { - resolve(); - return; - } - this.#serialport_.setSignals({ - dataTerminalReady: dtr, - requestToSend: rts - }) - .then(() => { - super.setDTRAndRTS(dtr, rts); - resolve(); - }) - .catch(reject); + if (!this.isOpened()) { + return; + } + await this.#serialport_.setSignals({ + dataTerminalReady: dtr, + requestToSend: rts }); + super.setDTRAndRTS(dtr, rts); } async setDTR(dtr) {