mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Testing
This commit is contained in:
@@ -22,23 +22,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
|
|
||||||
let mut per_key_led = Vec::new();
|
let mut per_key_led = Vec::new();
|
||||||
let mut key_colours = KeyColourArray::new();
|
let mut key_colours = KeyColourArray::new();
|
||||||
key_colours.set(Key::ROG, 255, 0, 0);
|
|
||||||
key_colours.set(Key::L, 255, 0, 0);
|
|
||||||
key_colours.set(Key::I, 255, 0, 0);
|
|
||||||
key_colours.set(Key::N, 255, 0, 0);
|
|
||||||
key_colours.set(Key::U, 255, 0, 0);
|
|
||||||
key_colours.set(Key::X, 255, 0, 0);
|
|
||||||
per_key_led.push(key_colours.clone());
|
per_key_led.push(key_colours.clone());
|
||||||
|
|
||||||
for _ in 0..49 {
|
|
||||||
*key_colours.key(Key::ROG).0 -= 5;
|
|
||||||
*key_colours.key(Key::L).0 -= 5;
|
|
||||||
*key_colours.key(Key::I).0 -= 5;
|
|
||||||
*key_colours.key(Key::N).0 -= 5;
|
|
||||||
*key_colours.key(Key::U).0 -= 5;
|
|
||||||
*key_colours.key(Key::X).0 -= 5;
|
|
||||||
per_key_led.push(key_colours.clone());
|
|
||||||
}
|
|
||||||
for _ in 0..49 {
|
for _ in 0..49 {
|
||||||
*key_colours.key(Key::ROG).0 += 5;
|
*key_colours.key(Key::ROG).0 += 5;
|
||||||
*key_colours.key(Key::L).0 += 5;
|
*key_colours.key(Key::L).0 += 5;
|
||||||
@@ -49,7 +34,18 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
per_key_led.push(key_colours.clone());
|
per_key_led.push(key_colours.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
let time = time::Duration::from_millis(1200);
|
for _ in 0..49 {
|
||||||
|
*key_colours.key(Key::ROG).0 -= 5;
|
||||||
|
*key_colours.key(Key::L).0 -= 5;
|
||||||
|
*key_colours.key(Key::I).0 -= 5;
|
||||||
|
*key_colours.key(Key::N).0 -= 5;
|
||||||
|
*key_colours.key(Key::U).0 -= 5;
|
||||||
|
*key_colours.key(Key::X).0 -= 5;
|
||||||
|
per_key_led.push(key_colours.clone());
|
||||||
|
}
|
||||||
|
|
||||||
|
// It takes the EC 20ms to process a single colour block
|
||||||
|
let time = time::Duration::from_millis(20);
|
||||||
|
|
||||||
let row = KeyColourArray::get_init_msg();
|
let row = KeyColourArray::get_init_msg();
|
||||||
let msg =
|
let msg =
|
||||||
@@ -61,6 +57,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
thread::sleep(time);
|
thread::sleep(time);
|
||||||
|
|
||||||
for group in &per_key_led {
|
for group in &per_key_led {
|
||||||
|
thread::sleep(time);
|
||||||
let group = group.get();
|
let group = group.get();
|
||||||
let msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "ledeffect")?
|
let msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "ledeffect")?
|
||||||
.append1(&group[0].to_vec())
|
.append1(&group[0].to_vec())
|
||||||
@@ -78,6 +75,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
let after = std::time::Instant::now();
|
let after = std::time::Instant::now();
|
||||||
let diff = after.duration_since(now);
|
let diff = after.duration_since(now);
|
||||||
dbg!(diff.as_millis());
|
dbg!(diff.as_millis());
|
||||||
return Ok(());
|
//return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,24 +22,24 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
|
|
||||||
let mut per_key_led = Vec::new();
|
let mut per_key_led = Vec::new();
|
||||||
let mut key_colours = KeyColourArray::new();
|
let mut key_colours = KeyColourArray::new();
|
||||||
key_colours.set(Key::ROG, 255, 0, 0);
|
// key_colours.set(Key::ROG, 0, 0, 0);
|
||||||
key_colours.set(Key::L, 255, 0, 0);
|
// key_colours.set(Key::L, 0, 0, 0);
|
||||||
key_colours.set(Key::I, 255, 0, 0);
|
// key_colours.set(Key::I, 0, 0, 0);
|
||||||
key_colours.set(Key::N, 255, 0, 0);
|
// key_colours.set(Key::N, 0, 0, 0);
|
||||||
key_colours.set(Key::U, 255, 0, 0);
|
// key_colours.set(Key::U, 0, 0, 0);
|
||||||
key_colours.set(Key::X, 255, 0, 0);
|
// key_colours.set(Key::X, 0, 0, 0);
|
||||||
per_key_led.push(key_colours.clone());
|
per_key_led.push(key_colours.clone());
|
||||||
|
|
||||||
for _ in 0..46 {
|
// for _ in 0..49 {
|
||||||
*key_colours.key(Key::ROG).0 -= 5;
|
// *key_colours.key(Key::ROG).0 -= 5;
|
||||||
*key_colours.key(Key::L).0 -= 5;
|
// *key_colours.key(Key::L).0 -= 5;
|
||||||
*key_colours.key(Key::I).0 -= 5;
|
// *key_colours.key(Key::I).0 -= 5;
|
||||||
*key_colours.key(Key::N).0 -= 5;
|
// *key_colours.key(Key::N).0 -= 5;
|
||||||
*key_colours.key(Key::U).0 -= 5;
|
// *key_colours.key(Key::U).0 -= 5;
|
||||||
*key_colours.key(Key::X).0 -= 5;
|
// *key_colours.key(Key::X).0 -= 5;
|
||||||
per_key_led.push(key_colours.clone());
|
// per_key_led.push(key_colours.clone());
|
||||||
}
|
// }
|
||||||
for _ in 0..46 {
|
for _ in 0..49 {
|
||||||
*key_colours.key(Key::ROG).0 += 5;
|
*key_colours.key(Key::ROG).0 += 5;
|
||||||
*key_colours.key(Key::L).0 += 5;
|
*key_colours.key(Key::L).0 += 5;
|
||||||
*key_colours.key(Key::I).0 += 5;
|
*key_colours.key(Key::I).0 += 5;
|
||||||
@@ -49,7 +49,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
per_key_led.push(key_colours.clone());
|
per_key_led.push(key_colours.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
let time = time::Duration::from_micros(1600);
|
let time = time::Duration::from_millis(2);
|
||||||
|
|
||||||
let row = KeyColourArray::get_init_msg();
|
let row = KeyColourArray::get_init_msg();
|
||||||
let msg =
|
let msg =
|
||||||
@@ -73,5 +73,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
let after = std::time::Instant::now();
|
let after = std::time::Instant::now();
|
||||||
let diff = after.duration_since(now);
|
let diff = after.duration_since(now);
|
||||||
dbg!(diff.as_millis());
|
dbg!(diff.as_millis());
|
||||||
|
//return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
15
src/core.rs
15
src/core.rs
@@ -128,11 +128,24 @@ impl RogCore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn aura_write(&mut self, message: &[u8]) -> Result<(), AuraError> {
|
pub fn aura_write(&mut self, message: &[u8]) -> Result<(), AuraError> {
|
||||||
|
let now = std::time::Instant::now();
|
||||||
match self
|
match self
|
||||||
.handle
|
.handle
|
||||||
.write_interrupt(self.led_endpoint, message, Duration::from_millis(1))
|
.write_interrupt(self.led_endpoint, message, Duration::from_millis(1))
|
||||||
{
|
{
|
||||||
Ok(_) => {}
|
Ok(_) => {
|
||||||
|
let after = std::time::Instant::now();
|
||||||
|
let diff = after.duration_since(now);
|
||||||
|
dbg!(diff.as_micros());
|
||||||
|
// let mut buf = [0u8; 32];
|
||||||
|
// if let Ok(_) = self.handle.read_interrupt(
|
||||||
|
// self.led_endpoint,
|
||||||
|
// &mut buf,
|
||||||
|
// Duration::from_millis(1),
|
||||||
|
// ) {
|
||||||
|
// println!("{:X?}", buf);
|
||||||
|
// }
|
||||||
|
}
|
||||||
Err(err) => match err {
|
Err(err) => match err {
|
||||||
rusb::Error::Timeout => {}
|
rusb::Error::Timeout => {}
|
||||||
_ => error!("Failed to read keyboard interrupt: {:?}", err),
|
_ => error!("Failed to read keyboard interrupt: {:?}", err),
|
||||||
|
|||||||
@@ -130,7 +130,10 @@ pub fn start_daemon() -> Result<(), Box<dyn Error>> {
|
|||||||
// A no-comp loop takes 2 milliseconds
|
// A no-comp loop takes 2 milliseconds
|
||||||
// With effect, up to 16ms
|
// With effect, up to 16ms
|
||||||
// With single write, 3ms
|
// With single write, 3ms
|
||||||
// Actual EC for keyboard seems to take longer to process
|
// Actual EC for keyboard seems to take longer to process, something like
|
||||||
|
// 2ms per line in, so 20ms per colour block?
|
||||||
|
//
|
||||||
|
// rusb is slow. Wireshark caps show speed in nanoseconds
|
||||||
//thread::sleep(Duration::from_millis(2));
|
//thread::sleep(Duration::from_millis(2));
|
||||||
connection
|
connection
|
||||||
.process(Duration::from_millis(20))
|
.process(Duration::from_millis(20))
|
||||||
@@ -142,14 +145,19 @@ pub fn start_daemon() -> Result<(), Box<dyn Error>> {
|
|||||||
// 700u per write
|
// 700u per write
|
||||||
if let Ok(mut lock) = input.try_borrow_mut() {
|
if let Ok(mut lock) = input.try_borrow_mut() {
|
||||||
if let Some(bytes) = &*lock {
|
if let Some(bytes) = &*lock {
|
||||||
|
// It takes up to 10 milliseconds to write a complete colour block here
|
||||||
|
// let now = std::time::Instant::now();
|
||||||
rogcore.aura_set_and_save(&supported, &bytes)?;
|
rogcore.aura_set_and_save(&supported, &bytes)?;
|
||||||
*lock = None;
|
*lock = None;
|
||||||
|
// let after = std::time::Instant::now();
|
||||||
|
// let diff = after.duration_since(now);
|
||||||
|
// dbg!(diff.as_millis());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Ok(mut lock) = effect.try_borrow_mut() {
|
if let Ok(mut lock) = effect.try_borrow_mut() {
|
||||||
if let Some(bytes) = &*lock {
|
if let Some(bytes) = &*lock {
|
||||||
// It takes up to 10 milliseconds to write a complete colour block...
|
// It takes up to 10 milliseconds to write a complete colour block and here
|
||||||
// let now = std::time::Instant::now();
|
// let now = std::time::Instant::now();
|
||||||
for row in bytes {
|
for row in bytes {
|
||||||
rogcore.aura_write(&row)?;
|
rogcore.aura_write(&row)?;
|
||||||
|
|||||||
Reference in New Issue
Block a user