Add layer parameter for LED_GET_MODE and LED_SET_MODE commands
This commit is contained in:
parent
301eef6f21
commit
aab45bfcc1
@ -250,20 +250,22 @@ impl<A: Access> Ec<A> {
|
|||||||
self.command(Cmd::LedSetColor, &mut data)
|
self.command(Cmd::LedSetColor, &mut data)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn led_get_mode(&mut self) -> Result<(u8, u8), Error> {
|
pub unsafe fn led_get_mode(&mut self, layer: u8) -> Result<(u8, u8), Error> {
|
||||||
let mut data = [
|
let mut data = [
|
||||||
|
layer,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
];
|
];
|
||||||
self.command(Cmd::LedGetMode, &mut data)?;
|
self.command(Cmd::LedGetMode, &mut data)?;
|
||||||
Ok((
|
Ok((
|
||||||
data[0],
|
data[1],
|
||||||
data[1]
|
data[2]
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn led_set_mode(&mut self, mode: u8, speed: u8) -> Result<(), Error> {
|
pub unsafe fn led_set_mode(&mut self, layer: u8, mode: u8, speed: u8) -> Result<(), Error> {
|
||||||
let mut data = [
|
let mut data = [
|
||||||
|
layer,
|
||||||
mode,
|
mode,
|
||||||
speed,
|
speed,
|
||||||
];
|
];
|
||||||
|
@ -359,6 +359,10 @@ fn main() {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
.subcommand(SubCommand::with_name("led_mode")
|
.subcommand(SubCommand::with_name("led_mode")
|
||||||
|
.arg(Arg::with_name("layer")
|
||||||
|
.validator(validate_from_str::<u8>)
|
||||||
|
.required(true)
|
||||||
|
)
|
||||||
.arg(Arg::with_name("mode")
|
.arg(Arg::with_name("mode")
|
||||||
.validator(validate_from_str::<u8>)
|
.validator(validate_from_str::<u8>)
|
||||||
.requires("speed")
|
.requires("speed")
|
||||||
@ -543,24 +547,25 @@ fn main() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
("led_mode", Some(sub_m)) => {
|
("led_mode", Some(sub_m)) => {
|
||||||
|
let layer = sub_m.value_of("layer").unwrap().parse::<u8>().unwrap();
|
||||||
let mode = sub_m.value_of("mode").map(|x| x.parse::<u8>().unwrap());
|
let mode = sub_m.value_of("mode").map(|x| x.parse::<u8>().unwrap());
|
||||||
let speed = sub_m.value_of("speed").map(|x| x.parse::<u8>().unwrap());
|
let speed = sub_m.value_of("speed").map(|x| x.parse::<u8>().unwrap());
|
||||||
if let (Some(mode), Some(speed)) = (mode, speed) {
|
if let (Some(mode), Some(speed)) = (mode, speed) {
|
||||||
match unsafe { ec.led_set_mode(mode, speed) } {
|
match unsafe { ec.led_set_mode(layer, mode, speed) } {
|
||||||
Ok(()) => (),
|
Ok(()) => (),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
eprintln!("failed to set mode {} at speed {}: {:X?}", mode, speed, err);
|
eprintln!("failed to set layer {} mode {} at speed {}: {:X?}", layer, mode, speed, err);
|
||||||
process::exit(1);
|
process::exit(1);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
match unsafe { ec.led_get_mode() } {
|
match unsafe { ec.led_get_mode(layer) } {
|
||||||
Ok((mode, speed)) => {
|
Ok((mode, speed)) => {
|
||||||
println!("mode: {}", mode);
|
println!("mode: {}", mode);
|
||||||
println!("speed: {}", speed);
|
println!("speed: {}", speed);
|
||||||
},
|
},
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
eprintln!("failed to get mode: {:X?}", err);
|
eprintln!("failed to get mode for layer {}: {:X?}", layer, err);
|
||||||
process::exit(1);
|
process::exit(1);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user