Silicon Labs USB Xpress driver

License: GPL v3 Crates.io silabs<em>usb</em>xpress

| OS | Status | | ---- | ---- | | Linux | Linux Build Status| | Windows (MSVC) | Windows Build Status|

This library port API from SiUSBXp, which is an open source port to SiUSBXp.dll, supplied with SiLabs USBXpress. The underlying USB backend is libusb, which enable the cross platform compilation.

Usage

Add to your Cargo.toml:

toml [dependencies] silabs_usb_xpress = "0.2"

This crate is compatible with Unix and Windows. For unix system, pkg-config are required to link libusb. For windows, you must have vcpkg installed, hook up user-wide integration and install libusb-win32 with it. By default, libusb is linked dynamically, and set environment variable VCPKGRS_DYNAMIC=0 if you want to link statically.

To pack a available driver in Windows, use libusbk' inf wizard.

Example

```rust, ignore

// get device count let num = devices_count();

// print serial number for selected devices let ifsn = productstring(0, ProductStringType::SerialNumber);

// print VID for selected devices let pst = ProductStringType::VID; let ifvid = productstring(0, pst);

// get timeouts let t = timeouts().unwrap();

// set timeouts settimeouts(Duration::frommillis(500), None).unwrap();

// open handle let mut handle = UsbXpress::open(0).unwrap();

// write to device handle let v = vec![0x55, 0x80, 0x00, 0x01, 0x01, 0xAA]; handle.write(&v);

// read 7 bytes from device handle let read_res = handle.read(7);

// close device handle.close(); ```

License

License: GPL v3