diff --git a/rog-platform/examples/ally-gamepad-calibration.rs b/rog-platform/examples/ally-gamepad-calibration.rs new file mode 100644 index 00000000..6846e161 --- /dev/null +++ b/rog-platform/examples/ally-gamepad-calibration.rs @@ -0,0 +1,75 @@ +use std::error::Error; + +use rog_aura::usb::AuraDevice; +use rog_platform::hid_raw::HidRaw; + +pub fn main() -> Result<(), Box> { + let mut usb_node = None; + let prod = AuraDevice::X1abe; + match HidRaw::new(prod.into()) { + Ok(node) => { + usb_node = Some(node); + println!( + "Looked for keyboard controller 0x{}: Found", + <&str>::from(prod) + ); + } + Err(err) => println!( + "Looked for keyboard controller 0x{}: {err}", + <&str>::from(prod) + ), + } + + if usb_node.is_none() { + return Err("RogError::NoAuraKeyboard".into()); + } + + let node = usb_node.unwrap(); + + // - C = command + // - L = length + // - D1, D2 ?? + // LEFT STICK + // C L D1 D2 7 8 9 10 11 12 13 14 15 16 17 18 19 + // 5a,d1,0d,0e,01,01,08,af,03,f9,0d,65,08,38,03,23,0d,4d,e5, + // RIGHT STICK + // 5a,d1,0d,0e,01,02,08,6f,03,ca,0d,15,08,0b,02,f8,0d,1e,9e, + // LEFT TRIGGER + // 5a,d1,0d,06,01,03,0a,2f,0d,e8,2e, + // RIGHT TRIGGER + // 5a,d1,0d,06,01,04,09,f7,0e,56,64, + let mut packet: [u8; 64] = [ + 0x5a, 0xd1, 0x0d, 0x06, 0x01, 0x03, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + + packet[7] = 0x2f; // + packet[8] = 0x0d; // + packet[9] = 0xec; // + packet[10] = 0x33; // packet[11] = 0x00; // + // packet[12] = 0x65; // + // packet[13] = 0x08; // + // packet[14] = 0x38; // + // packet[15] = 0x03; // + // packet[16] = 0x23; // + // packet[17] = 0x0d; // + // packet[18] = 0x4d; // + // packet[19] = 0xe5; // + + node.write_bytes(&packet)?; + + // Apply + let packet: [u8; 64] = [ + 0x5a, 0xd1, 0x0d, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]; + node.write_bytes(&packet)?; + + Ok(()) +} diff --git a/rog-platform/examples/ally-gamepad-mode-changes.rs b/rog-platform/examples/ally-gamepad-mode-changes.rs new file mode 100644 index 00000000..112e71b5 --- /dev/null +++ b/rog-platform/examples/ally-gamepad-mode-changes.rs @@ -0,0 +1,48 @@ +use std::error::Error; +use std::thread::sleep; +use std::time::Duration; + +use rog_aura::usb::AuraDevice; +use rog_platform::hid_raw::HidRaw; + +pub fn main() -> Result<(), Box> { + let mut usb_node = None; + let prod = AuraDevice::X1abe; + match HidRaw::new(prod.into()) { + Ok(node) => { + usb_node = Some(node); + println!( + "Looked for keyboard controller 0x{}: Found", + <&str>::from(prod) + ); + } + Err(err) => println!( + "Looked for keyboard controller 0x{}: {err}", + <&str>::from(prod) + ), + } + + if usb_node.is_none() { + return Err("RogError::NoAuraKeyboard".into()); + } + + let node = usb_node.unwrap(); + + // node.write_bytes(&[0x5a, 0xd1, 0x0a, 0x01])?; // TODO: need to CHECK + println!("Set mouse mode for 10 seconds"); + node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x03])?; + node.write_bytes(&[0x5a, 0xd1, 0x0f, 0x20])?; + node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x00])?; + sleep(Duration::from_secs(10)); + + println!("Set wasd mode for 10 seconds"); + node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x02])?; + node.write_bytes(&[0x5a, 0xd1, 0x0f, 0x20])?; + sleep(Duration::from_secs(10)); + + println!("Set back to gamepad mode"); + node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x01])?; + node.write_bytes(&[0x5a, 0xd1, 0x0f, 0x20])?; + + Ok(()) +} diff --git a/rog-platform/examples/ally-set-qam-secondary.rs b/rog-platform/examples/ally-set-qam-secondary.rs new file mode 100644 index 00000000..2b0720a5 --- /dev/null +++ b/rog-platform/examples/ally-set-qam-secondary.rs @@ -0,0 +1,48 @@ +use std::error::Error; +use std::thread::sleep; +use std::time::Duration; + +use rog_aura::usb::AuraDevice; +use rog_platform::hid_raw::HidRaw; + +pub fn main() -> Result<(), Box> { + let mut usb_node = None; + let prod = AuraDevice::X1abe; + match HidRaw::new(prod.into()) { + Ok(node) => { + usb_node = Some(node); + println!( + "Looked for keyboard controller 0x{}: Found", + <&str>::from(prod) + ); + } + Err(err) => println!( + "Looked for keyboard controller 0x{}: {err}", + <&str>::from(prod) + ), + } + + if usb_node.is_none() { + return Err("RogError::NoAuraKeyboard".into()); + } + + let node = usb_node.unwrap(); + + // node.write_bytes(&[0x5a, 0xd1, 0x0a, 0x01])?; // TODO: need to CHECK + println!("Set mouse mode for 10 seconds"); + node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x03])?; + node.write_bytes(&[0x5a, 0xd1, 0x0f, 0x20])?; + node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x00])?; + // sleep(Duration::from_secs(10)); + + // println!("Set wasd mode for 10 seconds"); + // node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x02])?; + // node.write_bytes(&[0x5a, 0xd1, 0x0f, 0x20])?; + // sleep(Duration::from_secs(10)); + + // println!("Set back to gamepad mode"); + // node.write_bytes(&[0x5a, 0xd1, 0x01, 0x01, 0x01])?; + // node.write_bytes(&[0x5a, 0xd1, 0x0f, 0x20])?; + + Ok(()) +}