Add more debug printing and delays
This commit is contained in:
@@ -14,6 +14,7 @@ const VENDOR_IDS: [u16; 2] = [0x0951, 0x03F0];
|
|||||||
const PRODUCT_IDS: [u16; 5] = [0x1718, 0x018B, 0x0D93, 0x0696, 0x0b92];
|
const PRODUCT_IDS: [u16; 5] = [0x1718, 0x018B, 0x0D93, 0x0696, 0x0b92];
|
||||||
|
|
||||||
const RESPONSE_BUFFER_SIZE: usize = 256;
|
const RESPONSE_BUFFER_SIZE: usize = 256;
|
||||||
|
const RESPONSE_DELAY: Duration = Duration::from_millis(50);
|
||||||
|
|
||||||
pub fn connect_compatible_device() -> Result<Box<dyn Device>, DeviceError> {
|
pub fn connect_compatible_device() -> Result<Box<dyn Device>, DeviceError> {
|
||||||
let state = DeviceState::new(&PRODUCT_IDS, &VENDOR_IDS)?;
|
let state = DeviceState::new(&PRODUCT_IDS, &VENDOR_IDS)?;
|
||||||
@@ -366,7 +367,9 @@ pub trait Device {
|
|||||||
self.prepare_write();
|
self.prepare_write();
|
||||||
println!("writing Packet {packet:?}");
|
println!("writing Packet {packet:?}");
|
||||||
self.get_device_state().hid_device.write(&packet)?;
|
self.get_device_state().hid_device.write(&packet)?;
|
||||||
|
std::thread::sleep(RESPONSE_DELAY);
|
||||||
if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) {
|
if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) {
|
||||||
|
println!("{:?}", events);
|
||||||
for event in events {
|
for event in events {
|
||||||
self.get_device_state_mut().update_self_with_event(&event);
|
self.get_device_state_mut().update_self_with_event(&event);
|
||||||
}
|
}
|
||||||
@@ -389,13 +392,17 @@ pub trait Device {
|
|||||||
/// Refreshes the state by listening for events
|
/// Refreshes the state by listening for events
|
||||||
/// Only the battery level is actively queried because it is not communicated by the device on its own
|
/// Only the battery level is actively queried because it is not communicated by the device on its own
|
||||||
fn passive_refresh_state(&mut self) -> Result<(), DeviceError> {
|
fn passive_refresh_state(&mut self) -> Result<(), DeviceError> {
|
||||||
|
println!("passive refresh");
|
||||||
if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) {
|
if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) {
|
||||||
|
println!("{:?}", events);
|
||||||
for event in events {
|
for event in events {
|
||||||
self.get_device_state_mut().update_self_with_event(&event);
|
self.get_device_state_mut().update_self_with_event(&event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
println!("passive refresh get battery level");
|
||||||
if let Some(batter_packet) = self.get_battery_packet() {
|
if let Some(batter_packet) = self.get_battery_packet() {
|
||||||
self.get_device_state().hid_device.write(&batter_packet)?;
|
self.get_device_state().hid_device.write(&batter_packet)?;
|
||||||
|
std::thread::sleep(RESPONSE_DELAY);
|
||||||
if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) {
|
if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) {
|
||||||
for event in events {
|
for event in events {
|
||||||
self.get_device_state_mut().update_self_with_event(&event);
|
self.get_device_state_mut().update_self_with_event(&event);
|
||||||
|
|||||||
Reference in New Issue
Block a user