mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-25 01:05:12 +03:00
Filter list of Linux devices to more sane set (front page and SITL)
This commit is contained in:
parent
9c66cd9c0e
commit
3d3f5aac8e
2 changed files with 24 additions and 14 deletions
|
@ -18,13 +18,13 @@ class ConnectionSerial extends Connection {
|
|||
super._type = ConnectionType.Serial;
|
||||
}
|
||||
|
||||
connectImplementation(path, options, callback) {
|
||||
connectImplementation(path, options, callback) {
|
||||
try {
|
||||
this._serialport = new SerialPortStream({binding, path: path, baudRate: options.bitrate, autoOpen: true}, () => {
|
||||
if (callback) {
|
||||
callback({
|
||||
connectionId: ++this._connectionId,
|
||||
bitrate: options.bitrate
|
||||
bitrate: options.bitrate
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -50,12 +50,12 @@ class ConnectionSerial extends Connection {
|
|||
this.abort();
|
||||
console.log("Serial error: " + error);
|
||||
this._onReceiveErrorListeners.forEach(listener => {
|
||||
listener(error);
|
||||
listener(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
disconnectImplementation(callback) {
|
||||
disconnectImplementation(callback) {
|
||||
if (this._serialport && this._serialport.isOpen) {
|
||||
this._serialport.close(error => {
|
||||
if (error) {
|
||||
|
@ -68,7 +68,7 @@ class ConnectionSerial extends Connection {
|
|||
callback(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sendImplementation(data, callback) {
|
||||
if (this._serialport && this._serialport.isOpen) {
|
||||
this._serialport.write(Buffer.from(data), error => {
|
||||
|
@ -105,14 +105,23 @@ class ConnectionSerial extends Connection {
|
|||
this._onReceiveErrorListeners = this._onReceiveErrorListeners.filter(listener => listener !== callback);
|
||||
}
|
||||
|
||||
static async getDevices(callback) {
|
||||
static async getDevices(callback) {
|
||||
SerialPort.list().then((ports, error) => {
|
||||
var devices = [];
|
||||
if (error) {
|
||||
GUI.log("Unable to list serial ports.");
|
||||
} else {
|
||||
ports.forEach(port => {
|
||||
devices.push(port.path);
|
||||
if (GUI.operating_system == 'Linux') {
|
||||
/* Limit to: USB serial, RFCOMM (BT), 6 legacy devices */
|
||||
if (port.pnpId ||
|
||||
port.path.match(/rfcomm\d*/) ||
|
||||
port.path.match(/ttyS[0-5]$/)) {
|
||||
devices.push(port.path);
|
||||
}
|
||||
} else {
|
||||
devices.push(port.path);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (callback)
|
||||
|
|
15
js/sitl.js
15
js/sitl.js
|
@ -138,19 +138,20 @@ var Ser2TCP = {
|
|||
var devices = [];
|
||||
if (error) {
|
||||
GUI.log("Unable to list serial ports.");
|
||||
} else {
|
||||
} else {
|
||||
ports.forEach((device) => {
|
||||
if (GUI.operating_system == 'Windows') {
|
||||
var m = device.path.match(/COM\d?\d/g)
|
||||
if (m)
|
||||
devices.push(m[0]);
|
||||
} else {
|
||||
if (device.displayName != null) {
|
||||
var m = device.path.match(/\/dev\/.*/)
|
||||
if (m)
|
||||
devices.push(m[0]);
|
||||
/* Limit to: USB serial, RFCOMM (BT), 6 legacy devices */
|
||||
if (device.pnpId ||
|
||||
device.path.match(/rfcomm\d*/) ||
|
||||
device.path.match(/ttyS[0-5]$/)) {
|
||||
devices.push(device.path);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
callback(devices);
|
||||
|
@ -231,7 +232,7 @@ var SITLProcess = {
|
|||
if (err)
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
|
||||
} else {
|
||||
alert(GUI.operating_system);
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue