Skip to content

Commit

Permalink
Merge pull request #2047 from iNavFlight/linux_filter_serial_names
Browse files Browse the repository at this point in the history
Filter list of Linux devices to more sane set (front page and SITL)
  • Loading branch information
DzikuVx authored Apr 27, 2024
2 parents 9c66cd9 + 3d3f5aa commit eca90fc
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 14 deletions.
23 changes: 16 additions & 7 deletions js/connection/connectionSerial.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
});
}
});
Expand All @@ -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) {
Expand All @@ -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 => {
Expand Down Expand Up @@ -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)
Expand Down
15 changes: 8 additions & 7 deletions js/sitl.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -231,7 +232,7 @@ var SITLProcess = {
if (err)
console.log(err);
});

} else {
alert(GUI.operating_system);
return;
Expand Down

0 comments on commit eca90fc

Please sign in to comment.