Class WebUSBSerialPort

SerialPort-compatible WebUSB adapter for WCH CH340/CH341. Implements in-place baud changes with vendor request 0x9A so Transport does not need to close and reopen the port.

Constructors

Properties

controlQueue: Promise<void> = ...
currentDtr: boolean = false
currentRts: boolean = false
endpointIn: null | number = null
endpointOut: null | number = null
interfaceNumber: null | number = null
readLoopRunning: boolean = false
readable: null | ReadableStream<Uint8Array> = null
usbDevice: USBDevice

CH340/CH341 USB device.

writable: null | WritableStream<Uint8Array> = null

Methods

  • Locate the vendor class 0xFF bulk IN/OUT interface.

    Returns void

  • Release the USB interface and close the device.

    Returns Promise<void>

  • Create ReadableStream / WritableStream over bulk endpoints.

    Returns void

  • USB vendor and product identifiers.

    Returns SerialPortInfo

    Vendor and product IDs.

  • Open the device, claim the vendor bulk interface, and initialize CH340 UART.

    Parameters

    • options: SerialOptions = {}

      Serial options. Only baudRate is applied on CH340.

    Returns Promise<void>

  • Change baud rate in place using CH340 vendor request 0x9A.

    Parameters

    • baudRate: number

      New baud rate.

    Returns Promise<void>

  • Set DTR/RTS via CH340 handshake request 0xA4.

    Parameters

    • signals: {
          dataTerminalReady?: boolean;
          requestToSend?: boolean;
      }

      Control-line values.

      • Optional dataTerminalReady?: boolean

        DTR line.

      • Optional requestToSend?: boolean

        RTS line.

    Returns Promise<void>

  • Serialize vendor control transfers.

    Parameters

    • request: number

      bRequest.

    • value: number

      wValue.

    • index: number

      wIndex.

    Returns Promise<void>