silabs_usb_xpress

Crates.iosilabs_usb_xpress
lib.rssilabs_usb_xpress
version0.3.1
sourcesrc
created_at2020-06-28 13:58:56.145008
updated_at2020-07-02 09:43:36.837593
descriptionSilicon Labs USB Xpress driver
homepage
repositoryhttps://github.com/fMeow/silabs_usb_xpress
max_upload_size
id259098
size90,514
fMeow (fMeow)

documentation

https://docs.rs/silabs_usb_xpress

README

Silicon Labs USB Xpress driver

License: GPL v3 Crates.io silabs_usb_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:

[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


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

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

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

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

// set timeouts
set_timeouts(Duration::from_millis(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

Commit count: 31

cargo fmt