feat: alert user when connection failed, resolves #53

This commit is contained in:
2023-12-02 21:18:56 +01:00
parent c51bcc8ff0
commit c2ec460c8c

View File

@@ -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() {