From c18326aca482255da951882fb35f2c40d8826662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Sun, 9 Mar 2025 12:04:27 +0800 Subject: [PATCH] =?UTF-8?q?Update:=20=E5=9C=A8=E7=BA=BF=E7=89=88=E6=89=93?= =?UTF-8?q?=E5=BC=80=E4=B8=B2=E5=8F=A3=E6=97=B6=E4=B8=8D=E5=86=8D=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=AE=BE=E7=BD=AEdtr=E5=92=8Crts=20(=E5=AE=9E?= =?UTF-8?q?=E9=AA=8C=E6=80=A7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mixly-modules/common/statusbar-serial.js | 12 +-- .../modules/mixly-modules/web/serialport.js | 81 +++++++------------ 2 files changed, 38 insertions(+), 55 deletions(-) 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) {