Am I writing slow code? No, it's the keyboard EC who is slow - Seymour

This commit is contained in:
Luke
2020-04-24 23:41:00 +12:00
parent 9846437efb
commit f05103b5c9
4 changed files with 118 additions and 27 deletions

View File

@@ -30,7 +30,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
key_colours.set(Key::X, 255, 0, 0);
per_key_led.push(key_colours.clone());
for _ in 0..49 {
for _ in 0..46 {
*key_colours.key(Key::ROG).0 -= 5;
*key_colours.key(Key::L).0 -= 5;
*key_colours.key(Key::I).0 -= 5;
@@ -39,7 +39,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
*key_colours.key(Key::X).0 -= 5;
per_key_led.push(key_colours.clone());
}
for _ in 0..49 {
for _ in 0..46 {
*key_colours.key(Key::ROG).0 += 5;
*key_colours.key(Key::L).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());
}
let time = time::Duration::from_millis(1000);
let time = time::Duration::from_micros(1600);
let row = KeyColourArray::get_init_msg();
let msg =
@@ -58,22 +58,17 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
loop {
let now = std::time::Instant::now();
thread::sleep(time);
for group in &per_key_led {
let group = group.get();
let msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "ledeffect")?
.append1(&group[0].to_vec())
.append1(&group[1].to_vec())
.append1(&group[2].to_vec())
.append1(&group[3].to_vec())
.append1(&group[4].to_vec())
.append1(&group[5].to_vec())
.append1(&group[6].to_vec())
.append1(&group[7].to_vec())
.append1(&group[8].to_vec())
.append1(&group[9].to_vec());
bus.send(msg).unwrap();
for row in group.get() {
thread::sleep(time);
let msg = Message::new_method_call(DBUS_NAME, DBUS_PATH, DBUS_IFACE, "ledmessage")?
.append1(row.to_vec());
bus.send(msg).unwrap();
// if let Some(reply) = r.get1::<&str>() {
// println!("Success: {:x?}", reply);
// return Ok(());
// }
}
}
let after = std::time::Instant::now();
let diff = after.duration_since(now);