Reads data from [HidDevice]. Blocking mode is used if timeout is specified
(device: &HidDevice, length: usize, timeout: Option<Duration>)
| 23 | |
| 24 | /// Reads data from [HidDevice]. Blocking mode is used if timeout is specified |
| 25 | pub fn read_data(device: &HidDevice, length: usize, timeout: Option<Duration>) -> Result<Vec<u8>, HidError> { |
| 26 | device.set_blocking_mode(timeout.is_some())?; |
| 27 | |
| 28 | let mut buf = vec![0u8; length]; |
| 29 | |
| 30 | match timeout { |
| 31 | Some(timeout) => device.read_timeout(buf.as_mut_slice(), timeout.as_millis() as i32), |
| 32 | None => device.read(buf.as_mut_slice()), |
| 33 | }?; |
| 34 | |
| 35 | Ok(buf) |
| 36 | } |
| 37 | |
| 38 | /// Writes data to [HidDevice] |
| 39 | pub fn write_data(device: &HidDevice, payload: &[u8]) -> Result<usize, HidError> { |