FIX: Nanodevices listing
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
import { SerialPort } from 'serialport'
|
import { SerialPort } from 'serialport'
|
||||||
|
import { PortInfo } from '@serialport/bindings-interface'
|
||||||
import { EventEmitter } from 'events'
|
import { EventEmitter } from 'events'
|
||||||
|
|
||||||
// JTAG interface, TODO: change me!
|
// JTAG interface, TODO: change me!
|
||||||
const NANO_PRODUCT_ID = '1001'
|
const NANO_PRODUCT_ID = '1001'
|
||||||
const NANO_VENDOR_ID = '303a'
|
const NANO_VENDOR_ID = '303A'
|
||||||
const NANO_BAUD_RATE = 115200
|
const NANO_BAUD_RATE = 115200
|
||||||
|
|
||||||
class NanoDevices extends EventEmitter {
|
class NanoDevices extends EventEmitter {
|
||||||
@@ -15,13 +16,14 @@ class NanoDevices extends EventEmitter {
|
|||||||
|
|
||||||
_list() {
|
_list() {
|
||||||
const p = new Promise((resolve, reject) => {
|
const p = new Promise((resolve, reject) => {
|
||||||
SerialPort.list().then((ports, err) => {
|
SerialPort.list()
|
||||||
if (err) {
|
.then((ports: PortInfo[]) => {
|
||||||
reject(err) // TODO format for errors?
|
|
||||||
} else {
|
|
||||||
const found_nano_devices = []
|
const found_nano_devices = []
|
||||||
for (const port of ports) {
|
for (const port of ports) {
|
||||||
if (port.productId === NANO_PRODUCT_ID && port.vendorId === NANO_VENDOR_ID) {
|
if (
|
||||||
|
port.productId?.toUpperCase() === NANO_PRODUCT_ID &&
|
||||||
|
port.vendorId?.toUpperCase() === NANO_VENDOR_ID
|
||||||
|
) {
|
||||||
found_nano_devices.push(port.serialNumber)
|
found_nano_devices.push(port.serialNumber)
|
||||||
if (this.all_nano_devices[port.serialNumber] === undefined) {
|
if (this.all_nano_devices[port.serialNumber] === undefined) {
|
||||||
this.all_nano_devices[port.serialNumber] = port
|
this.all_nano_devices[port.serialNumber] = port
|
||||||
@@ -38,8 +40,10 @@ class NanoDevices extends EventEmitter {
|
|||||||
console.log('detached', serialNumber)
|
console.log('detached', serialNumber)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
.catch((error) => {
|
||||||
|
reject(error)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user