Update: Arduino下自动根据代码中设置的串口波特率配置串口监视器 (#IAWTZG)
This commit is contained in:
@@ -29,6 +29,10 @@ class Serial {
|
||||
rts: true,
|
||||
dtr: true
|
||||
};
|
||||
this.AVAILABEL_BAUDS = [
|
||||
300, 600, 750, 1200, 2400, 4800, 9600, 19200, 31250, 38400, 57600,
|
||||
74880, 115200, 230400, 250000, 460800, 500000, 921600, 1000000, 2000000,
|
||||
];
|
||||
|
||||
this.getSelectedPortName = function () {
|
||||
return Nav.getMain().getPortSelector().val();
|
||||
@@ -46,6 +50,10 @@ class Serial {
|
||||
};
|
||||
}
|
||||
|
||||
this.portIsLegal = function (port) {
|
||||
return this.portsName.includes(port);
|
||||
}
|
||||
|
||||
/**
|
||||
* @function 重新渲染串口下拉框
|
||||
* @param {array} 当前可用的所有串口
|
||||
@@ -186,6 +194,10 @@ class Serial {
|
||||
}
|
||||
}
|
||||
|
||||
baudRateIsLegal(baud) {
|
||||
return Serial.AVAILABEL_BAUDS.includes(baud);
|
||||
}
|
||||
|
||||
async setBaudRate(baud) {
|
||||
this.#baud_ = baud;
|
||||
}
|
||||
|
||||
@@ -333,18 +333,7 @@ class StatusBarSerial extends PageBase {
|
||||
const { id } = event.currentTarget.dataset;
|
||||
const { data } = event.params;
|
||||
if (id === 'baud') {
|
||||
const baud = data.id - 0;
|
||||
if (!this.isOpened()) {
|
||||
this.#config_.baud = baud;
|
||||
return;
|
||||
}
|
||||
this.#serial_.setBaudRate(baud)
|
||||
.then(() => {
|
||||
this.#config_.baud = baud;
|
||||
})
|
||||
.catch((error) => {
|
||||
this.#$settingMenu_.filter('[data-id="baud"]').val(data).trigger('change');
|
||||
});
|
||||
this.setBaudRate(data.id - 0).catch(Debug.error);
|
||||
} else if (id === 'send-with') {
|
||||
if (data.id === 'no') {
|
||||
this.#config_.sendWith = '';
|
||||
@@ -521,6 +510,23 @@ class StatusBarSerial extends PageBase {
|
||||
this.#chart_.setStatus(isOpened);
|
||||
}
|
||||
|
||||
async setBaudRate(baud) {
|
||||
if (!this.isOpened()) {
|
||||
this.#config_.baud = baud;
|
||||
return;
|
||||
}
|
||||
if (this.#serial_.baudRateIsLegal(baud)) {
|
||||
try {
|
||||
await this.#serial_.setBaudRate(baud);
|
||||
this.#config_.baud = baud;
|
||||
} catch (error) {
|
||||
Debug.error(error);
|
||||
}
|
||||
}
|
||||
this.#$settingMenu_.filter('[data-id="baud"]').val(this.#config_.baud).trigger('change');
|
||||
this.startRead();
|
||||
}
|
||||
|
||||
isOpened() {
|
||||
return this.#opened_;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user