Add LED_SAVE command

This commit is contained in:
Jeremy Soller
2021-03-16 09:44:30 -06:00
committed by Jeremy Soller
parent 17f8e37ed5
commit 0017450cbb
3 changed files with 15 additions and 0 deletions

View File

@ -40,6 +40,8 @@ enum Command {
CMD_LED_SET_MODE = 16, CMD_LED_SET_MODE = 16,
// Get key matrix state // Get key matrix state
CMD_MATRIX_GET = 17, CMD_MATRIX_GET = 17,
// Save LED settings to ROM
CMD_LED_SAVE = 18,
//TODO //TODO
}; };

View File

@ -34,6 +34,7 @@ enum Cmd {
LedGetMode = 15, LedGetMode = 15,
LedSetMode = 16, LedSetMode = 16,
MatrixGet = 17, MatrixGet = 17,
LedSave = 18,
} }
const CMD_SPI_FLAG_READ: u8 = 1 << 0; const CMD_SPI_FLAG_READ: u8 = 1 << 0;
@ -272,6 +273,10 @@ impl<A: Access> Ec<A> {
self.command(Cmd::LedSetMode, &mut data) self.command(Cmd::LedSetMode, &mut data)
} }
pub unsafe fn led_save(&mut self) -> Result<(), Error> {
self.command(Cmd::LedSave, &mut [])
}
pub unsafe fn matrix_get(&mut self, matrix: &mut [u8]) -> Result<(), Error> { pub unsafe fn matrix_get(&mut self, matrix: &mut [u8]) -> Result<(), Error> {
self.command(Cmd::MatrixGet, matrix) self.command(Cmd::MatrixGet, matrix)
} }

View File

@ -371,6 +371,7 @@ fn main() {
.validator(validate_from_str::<u8>) .validator(validate_from_str::<u8>)
) )
) )
.subcommand(SubCommand::with_name("led_save"))
.subcommand(SubCommand::with_name("matrix")) .subcommand(SubCommand::with_name("matrix"))
.subcommand(SubCommand::with_name("print") .subcommand(SubCommand::with_name("print")
.arg(Arg::with_name("message") .arg(Arg::with_name("message")
@ -571,6 +572,13 @@ fn main() {
} }
} }
}, },
("led_save", Some(_sub_m)) => match unsafe { ec.led_save() } {
Ok(()) => (),
Err(err) => {
eprintln!("failed to save LED settings: {:X?}", err);
process::exit(1);
},
},
("matrix", Some(_sub_m)) => match unsafe { matrix(&mut ec) } { ("matrix", Some(_sub_m)) => match unsafe { matrix(&mut ec) } {
Ok(()) => (), Ok(()) => (),
Err(err) => { Err(err) => {