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 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)
|
||||||
|
|||||||
39
src/main.rs
39
src/main.rs
@@ -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"] => {
|
||||||
|
|||||||
Reference in New Issue
Block a user