mirror of
https://github.com/CharaChorder/DeviceManager.git
synced 2026-01-10 20:12:48 +00:00
feat: alert user when connection failed, resolves #53
This commit is contained in:
@@ -54,31 +54,37 @@ export class CharaDevice {
|
|||||||
constructor(private readonly baudRate = 115200) {}
|
constructor(private readonly baudRate = 115200) {}
|
||||||
|
|
||||||
async init(manual = false) {
|
async init(manual = false) {
|
||||||
const ports = await getViablePorts()
|
try {
|
||||||
this.port =
|
const ports = await getViablePorts()
|
||||||
!manual && ports.length === 1
|
this.port =
|
||||||
? ports[0]
|
!manual && ports.length === 1
|
||||||
: await navigator.serial.requestPort({filters: [...PORT_FILTERS.values()]})
|
? ports[0]
|
||||||
|
: await navigator.serial.requestPort({filters: [...PORT_FILTERS.values()]})
|
||||||
|
|
||||||
await this.port.open({baudRate: this.baudRate})
|
await this.port.open({baudRate: this.baudRate})
|
||||||
const info = this.port.getInfo()
|
const info = this.port.getInfo()
|
||||||
serialLog.update(it => {
|
serialLog.update(it => {
|
||||||
it.push({
|
it.push({
|
||||||
type: "system",
|
type: "system",
|
||||||
value: `Connected; ID: 0x${info.usbProductId?.toString(16)}; Vendor: 0x${info.usbVendorId?.toString(
|
value: `Connected; ID: 0x${info.usbProductId?.toString(16)}; Vendor: 0x${info.usbVendorId?.toString(
|
||||||
16,
|
16,
|
||||||
)}`,
|
)}`,
|
||||||
|
})
|
||||||
|
return it
|
||||||
})
|
})
|
||||||
return it
|
await this.port.close()
|
||||||
})
|
|
||||||
await this.port.close()
|
|
||||||
|
|
||||||
this.version = new SemVer(await this.send("VERSION").then(([version]) => version))
|
this.version = new SemVer(await this.send("VERSION").then(([version]) => version))
|
||||||
const [company, device, chipset] = await this.send("ID")
|
const [company, device, chipset] = await this.send("ID")
|
||||||
this.company = company as "CHARACHORDER"
|
this.company = company as "CHARACHORDER"
|
||||||
this.device = device as "ONE" | "LITE"
|
this.device = device as "ONE" | "LITE"
|
||||||
this.chipset = chipset as "M0" | "S2"
|
this.chipset = chipset as "M0" | "S2"
|
||||||
this.keyCount = this.device === "ONE" ? 90 : 67
|
this.keyCount = this.device === "ONE" ? 90 : 67
|
||||||
|
} catch (e) {
|
||||||
|
alert(e)
|
||||||
|
console.error(e)
|
||||||
|
throw e
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async suspend() {
|
private async suspend() {
|
||||||
|
|||||||
Reference in New Issue
Block a user