implement boardinfo request routine
This commit is contained in:
parent
c6523b70d3
commit
4a5a7e0f74
27
src/b15f.rs
27
src/b15f.rs
|
@ -119,8 +119,31 @@ impl B15F {
|
||||||
/// .iter()
|
/// .iter()
|
||||||
/// .for_each(|info| println!("{info}"));
|
/// .for_each(|info| println!("{info}"));
|
||||||
/// ```
|
/// ```
|
||||||
pub fn get_board_info(&self) -> Vec<&str> {
|
pub fn get_board_info(&mut self) -> Vec<String> {
|
||||||
todo!();
|
let mut info: Vec<String> = vec![];
|
||||||
|
|
||||||
|
self.usart.write(build_request!(Request::Info)).unwrap();
|
||||||
|
|
||||||
|
let mut data_count: [u8; 1] = [0;1];
|
||||||
|
self.usart.read(&mut data_count).unwrap();
|
||||||
|
|
||||||
|
while data_count[0] > 0 {
|
||||||
|
let mut len: [u8; 1] = [0;1];
|
||||||
|
self.usart.read(&mut len).unwrap();
|
||||||
|
|
||||||
|
let mut data: Vec<u8> = vec![0; len[0] as usize];
|
||||||
|
self.usart.read(data.as_mut_slice()).unwrap();
|
||||||
|
|
||||||
|
info.push(
|
||||||
|
data.into_iter()
|
||||||
|
.map(|c| char::from(c))
|
||||||
|
.collect::<String>()
|
||||||
|
);
|
||||||
|
|
||||||
|
data_count[0] -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
info
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Clears data in the USART buffers on this device and on the B15
|
/// Clears data in the USART buffers on this device and on the B15
|
||||||
|
|
|
@ -18,5 +18,6 @@ macro_rules! build_request {
|
||||||
#[repr(u8)]
|
#[repr(u8)]
|
||||||
pub enum Request {
|
pub enum Request {
|
||||||
Discard = 0,
|
Discard = 0,
|
||||||
Test = 1
|
Test = 1,
|
||||||
|
Info = 2
|
||||||
}
|
}
|
Loading…
Reference in a new issue