mirror of
https://github.com/hubaldv/bioz-host-rs.git
synced 2025-12-06 05:11:17 +00:00
Included impedance topic.
This commit is contained in:
@@ -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)
|
||||
|
||||
39
src/main.rs
39
src/main.rs
@@ -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"] => {
|
||||
|
||||
Reference in New Issue
Block a user