Update: 在线版打开串口时不再自动设置dtr和rts (实验性)
This commit is contained in:
@@ -458,11 +458,13 @@ class StatusBarSerial extends PageBase {
|
|||||||
|
|
||||||
async open() {
|
async open() {
|
||||||
await this.#serial_.open(this.#config_.baud);
|
await this.#serial_.open(this.#config_.baud);
|
||||||
await this.#serial_.sleep(200);
|
if (goog.isElectron || Env.hasSocketServer) {
|
||||||
try {
|
await this.#serial_.sleep(200);
|
||||||
await this.#serial_.setDTRAndRTS(this.#config_.dtr, this.#config_.rts);
|
try {
|
||||||
} catch (error) {
|
await this.#serial_.setDTRAndRTS(this.#config_.dtr, this.#config_.rts);
|
||||||
Debug.error(error);
|
} catch (error) {
|
||||||
|
Debug.error(error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (SELECTED_BOARD?.serial?.ctrlCBtn) {
|
if (SELECTED_BOARD?.serial?.ctrlCBtn) {
|
||||||
await this.#serial_.sleep(500);
|
await this.#serial_.sleep(500);
|
||||||
|
|||||||
@@ -128,30 +128,23 @@ class WebSerialPort extends Serial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async open(baud) {
|
async open(baud) {
|
||||||
return new Promise((resolve, reject) => {
|
const portsName = Serial.getCurrentPortsName();
|
||||||
const portsName = Serial.getCurrentPortsName();
|
const currentPortName = this.getPortName();
|
||||||
const currentPortName = this.getPortName();
|
if (!portsName.includes(currentPortName)) {
|
||||||
if (!portsName.includes(currentPortName)) {
|
throw Error('no device available');
|
||||||
reject('no device available');
|
return;
|
||||||
return;
|
}
|
||||||
}
|
if (this.isOpened()) {
|
||||||
if (this.isOpened()) {
|
return;
|
||||||
resolve();
|
}
|
||||||
return;
|
baud = baud ?? this.getBaudRate();
|
||||||
}
|
this.#serialport_ = WebSerialPort.getPort(currentPortName);
|
||||||
baud = baud ?? this.getBaudRate();
|
await this.#serialport_.open({ baudRate: baud });
|
||||||
this.#serialport_ = WebSerialPort.getPort(currentPortName);
|
super.open(baud);
|
||||||
this.#serialport_.open({ baudRate: baud })
|
super.setBaudRate(baud);
|
||||||
.then(() => {
|
this.#keepReading_ = true;
|
||||||
super.open(baud);
|
this.onOpen();
|
||||||
super.setBaudRate(baud);
|
this.#addEventsListener_();
|
||||||
this.#keepReading_ = true;
|
|
||||||
this.onOpen();
|
|
||||||
this.#addEventsListener_();
|
|
||||||
resolve();
|
|
||||||
})
|
|
||||||
.catch(reject);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async #waitForUnlock_(timeout) {
|
async #waitForUnlock_(timeout) {
|
||||||
@@ -180,18 +173,13 @@ class WebSerialPort extends Serial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setBaudRate(baud) {
|
async setBaudRate(baud) {
|
||||||
return new Promise((resolve, reject) => {
|
if (!this.isOpened()
|
||||||
if (!this.isOpened()
|
|| this.getBaudRate() === baud
|
||||||
|| this.getBaudRate() === baud
|
|| !this.baudRateIsLegal(baud)) {
|
||||||
|| !this.baudRateIsLegal(baud)) {
|
return;
|
||||||
resolve();
|
}
|
||||||
return;
|
await this.close();
|
||||||
}
|
await this.open(baud);
|
||||||
this.close()
|
|
||||||
.then(() => this.open(baud))
|
|
||||||
.then(resolve)
|
|
||||||
.catch(reject);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async sendString(str) {
|
async sendString(str) {
|
||||||
@@ -215,21 +203,14 @@ class WebSerialPort extends Serial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setDTRAndRTS(dtr, rts) {
|
async setDTRAndRTS(dtr, rts) {
|
||||||
return new Promise((resolve, reject) => {
|
if (!this.isOpened()) {
|
||||||
if (!this.isOpened()) {
|
return;
|
||||||
resolve();
|
}
|
||||||
return;
|
await this.#serialport_.setSignals({
|
||||||
}
|
dataTerminalReady: dtr,
|
||||||
this.#serialport_.setSignals({
|
requestToSend: rts
|
||||||
dataTerminalReady: dtr,
|
|
||||||
requestToSend: rts
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
super.setDTRAndRTS(dtr, rts);
|
|
||||||
resolve();
|
|
||||||
})
|
|
||||||
.catch(reject);
|
|
||||||
});
|
});
|
||||||
|
super.setDTRAndRTS(dtr, rts);
|
||||||
}
|
}
|
||||||
|
|
||||||
async setDTR(dtr) {
|
async setDTR(dtr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user