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

View File

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