Skip to content

v0.1.2

Choose a tag to compare

@MagicalTux MagicalTux released this 23 Sep 17:12
· 10 commits to master since this release
49cc0a2

Other

  • Add USB Ethernet devices (ECM, NCM, RNDIS) and pktkit integration
  • Let class helpers share a taken device and discover every interface
  • Add class-helper examples and document the new features
  • Add the uvc feature: video descriptors, controls and frame streaming
  • Fix redundant doc links in the serial module
  • Add the serial feature: CDC-ACM and FTDI behind one SerialPort
  • Add the msc feature: bulk-only transport, SCSI commands, block device
  • Add the hid feature: HID interfaces, report descriptor parser, report I/O

Added

  • Class helpers, each behind its own opt-in feature:
    • hid: HidDevice (report I/O with hidapi's report-ID conventions,
      GET/SET_REPORT, idle and protocol requests) and ReportDescriptor, a
      report descriptor parser that yields every field's offset, size,
      usages and logical range.
    • msc: MassStorage, SCSI over the bulk-only transport with stall and
      reset recovery, sense decoding and UNIT ATTENTION retries, and
      BlockDevice, a Read + Write + Seek view of a logical unit.
    • serial: SerialPort for CDC-ACM devices and FTDI chips, with line
      settings, flow control, modem lines and status, break, purging,
      std::io::Read/Write, and FTDI chip detection, baud divisors, latency
      timer and bit modes.
    • uvc: Camera with format/frame/control descriptors and unit controls,
      and Stream, which negotiates, streams over isochronous or bulk
      endpoints and reassembles frames.
  • net feature: NetDevice drives CDC-ECM, CDC-NCM (16-bit transfer
    blocks) and RNDIS functions, with a non-blocking send path, a receive
    callback or queue, link state and counters; net::interfaces lists a
    device's network functions.
  • pktkit feature: NetDevice implements pktkit::L2Device. This is the
    only feature that adds a dependency.
  • DeviceHandle::claim_all_interfaces takes a whole device (detaching every
    kernel driver) so several class helpers can run on it; helpers lease
    their interfaces exclusively and borrow the handle's claims when present.
    DeviceHandle::is_claimed reports a claim.
  • Discovery for composite devices: hid::interfaces, msc::interfaces,
    serial::ports, uvc::interfaces, plus HidDevice::open_all,
    SerialPort::open_all and SerialPort::open_interface (CDC-ACM or FTDI,
    detected).
  • hid_dump, msc_info, serial_monitor and uvc_capture examples, and a
    class-helper hardware test suite driven by environment variables.