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)
|
||||
}
|
||||
|
||||
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 = [
|
||||
layer,
|
||||
0,
|
||||
0,
|
||||
];
|
||||
self.command(Cmd::LedGetMode, &mut data)?;
|
||||
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 = [
|
||||
layer,
|
||||
mode,
|
||||
speed,
|
||||
];
|
||||
|
@ -359,6 +359,10 @@ fn main() {
|
||||
)
|
||||
)
|
||||
.subcommand(SubCommand::with_name("led_mode")
|
||||
.arg(Arg::with_name("layer")
|
||||
.validator(validate_from_str::<u8>)
|
||||
.required(true)
|
||||
)
|
||||
.arg(Arg::with_name("mode")
|
||||
.validator(validate_from_str::<u8>)
|
||||
.requires("speed")
|
||||
@ -543,24 +547,25 @@ fn main() {
|
||||
}
|
||||
},
|
||||
("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 speed = sub_m.value_of("speed").map(|x| x.parse::<u8>().unwrap());
|
||||
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(()) => (),
|
||||
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);
|
||||
},
|
||||
}
|
||||
} else {
|
||||
match unsafe { ec.led_get_mode() } {
|
||||
match unsafe { ec.led_get_mode(layer) } {
|
||||
Ok((mode, speed)) => {
|
||||
println!("mode: {}", mode);
|
||||
println!("speed: {}", speed);
|
||||
},
|
||||
Err(err) => {
|
||||
eprintln!("failed to get mode: {:X?}", err);
|
||||
eprintln!("failed to get mode for layer {}: {:X?}", layer, err);
|
||||
process::exit(1);
|
||||
},
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user