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(()) }