UNPKG

@mastashake08/web-iot

Version:

Connect to your IoT devices via usb, serial, NFC or Serial. Allows for callback integration and streaming *coming soon*

48 lines (39 loc) 1.16 kB
import { WebIOT } from './WebIOT' export class USBManager extends WebIOT{ #devices = {} #selectedDevice = {} constructor (debug = false) { if('usb' in navigator) { } else { alert('USB not available on this device') } super(debug) } async getDevices () { this.devices = await navigator.usb.getDevices() return this.devices } async requestDevice(options = {}) { this.selectedDevice = this.selectedDevice = await navigator.usb.requestDevice(options) return this.selectedDevice } async openDevice() { await this.connectDevice() } async closeDevice(options) { await this.selectedDevice.close() } async connectDevice() { await this.selectedDevice.open(); if (this.selectedDevice.configuration === null) await this.selectedDevice.selectConfiguration(1); await this.selectedDevice.claimInterface(0); return this.selectedDevice } async writeData(endpointNumber, data) { return await this.selectedDevice.transferOut(endpointNumber, data) } async readData(endpointNumber, data) { return await this.selectedDevice.transferIn(endpointNumber, data) } }