Included impedance topic.

This commit is contained in:
2025-08-06 15:45:06 +02:00
parent 4512191795
commit 2d8c6d23fd
2 changed files with 17 additions and 35 deletions

View File

@@ -5,8 +5,8 @@ use postcard_rpc::{
}; };
use std::convert::Infallible; use std::convert::Infallible;
use bioz_icd_rs::{ use bioz_icd_rs::{
AccelRange, PingEndpoint, GetUniqueIdEndpoint, SetGreenLedEndpoint, StartAccel, StartAccelerationEndpoint, PingEndpoint, GetUniqueIdEndpoint, SetGreenLedEndpoint, StartImpedance, StartImpedanceEndpoint,
StopAccelerationEndpoint, StopImpedanceEndpoint,
}; };
#[derive(Debug)] #[derive(Debug)]
@@ -80,22 +80,21 @@ impl WorkbookClient {
Ok(()) Ok(())
} }
pub async fn start_accelerometer( pub async fn start_impedancemeter(
&self, &self,
interval_ms: u32, interval_ms: u32,
range: AccelRange,
) -> Result<(), WorkbookError<Infallible>> { ) -> Result<(), WorkbookError<Infallible>> {
self.client self.client
.send_resp::<StartAccelerationEndpoint>(&StartAccel { interval_ms, range }) .send_resp::<StartImpedanceEndpoint>(&StartImpedance { interval_ms })
.await?; .await?;
Ok(()) Ok(())
} }
pub async fn stop_accelerometer(&self) -> Result<bool, WorkbookError<Infallible>> { pub async fn stop_impedancemeter(&self) -> Result<bool, WorkbookError<Infallible>> {
let res = self let res = self
.client .client
.send_resp::<StopAccelerationEndpoint>(&()) .send_resp::<StopImpedanceEndpoint>(&())
.await?; .await?;
Ok(res) Ok(res)

View File

@@ -57,7 +57,7 @@ async fn main() {
client.set_green_led(freq).await.unwrap(); client.set_green_led(freq).await.unwrap();
} }
["accel", "listen", ms, range, dur] => { ["imp", "listen", ms, dur] => {
let Ok(ms) = ms.parse::<u32>() else { let Ok(ms) = ms.parse::<u32>() else {
println!("Bad ms: {ms}"); println!("Bad ms: {ms}");
continue; continue;
@@ -66,23 +66,13 @@ async fn main() {
println!("Bad dur: {dur}"); println!("Bad dur: {dur}");
continue; continue;
}; };
let range = match *range {
"2" => icd::AccelRange::G2,
"4" => icd::AccelRange::G4,
"8" => icd::AccelRange::G8,
"16" => icd::AccelRange::G16,
_ => {
println!("Bad range: {range}");
continue;
}
};
let mut sub = client let mut sub = client
.client .client
.subscribe_multi::<icd::AccelTopic>(8) .subscribe_multi::<icd::ImpedanceTopic>(8)
.await .await
.unwrap(); .unwrap();
client.start_accelerometer(ms, range).await.unwrap(); client.start_impedancemeter(ms).await.unwrap();
println!("Started!"); println!("Started!");
let dur = Duration::from_millis(dur.into()); let dur = Duration::from_millis(dur.into());
let start = Instant::now(); let start = Instant::now();
@@ -90,30 +80,23 @@ async fn main() {
let val = sub.recv().await.unwrap(); let val = sub.recv().await.unwrap();
println!("acc: {val:?}"); println!("acc: {val:?}");
} }
client.stop_accelerometer().await.unwrap(); client.stop_impedancemeter().await.unwrap();
println!("Stopped!"); println!("Stopped!");
} }
["accel", "start", ms, range] => { ["imp", "start", ms] => {
let Ok(ms) = ms.parse::<u32>() else { let Ok(ms) = ms.parse::<u32>() else {
println!("Bad ms: {ms}"); println!("Bad ms: {ms}");
continue; continue;
}; };
let range = match *range {
"2" => icd::AccelRange::G2, match client.start_impedancemeter(ms).await {
"4" => icd::AccelRange::G4, Ok(_) => println!("Started!"),
"8" => icd::AccelRange::G8, Err(e) => println!("Error starting impedancemeter: {:?}", e),
"16" => icd::AccelRange::G16,
_ => {
println!("Bad range: {range}");
continue;
}
}; };
client.start_accelerometer(ms, range).await.unwrap();
println!("Started!");
} }
["accel", "stop"] => { ["imp", "stop"] => {
let res = client.stop_accelerometer().await.unwrap(); let res = client.stop_impedancemeter().await.unwrap();
println!("Stopped: {res}"); println!("Stopped: {res}");
} }
["schema"] => { ["schema"] => {