mirror of
https://github.com/hubaldv/bioz-host-rs.git
synced 2026-07-24 00:57:44 +00:00
Pass electrode config from GUI to hardware.
This commit is contained in:
@@ -5,10 +5,10 @@ use postcard_rpc::{
|
||||
};
|
||||
use std::convert::Infallible;
|
||||
use bioz_icd_rs::{
|
||||
BioImpedanceLeadMode, GetUniqueIdEndpoint, ImpedanceInitResult, SweepImpedanceInitResult, SweepImpedanceStartRequest, PingEndpoint, SetGreenLedEndpoint, SingleImpedanceStartRequest, StartSweepImpedanceEndpoint, StartSingleImpedanceEndpoint, StopImpedanceEndpoint
|
||||
BioImpedanceLeadMode, ElectrodeConfiguration, GetMultiplexerCapabilityEndpoint, GetUniqueIdEndpoint, ImpedanceInitResult, PingEndpoint, SetGreenLedEndpoint, SingleImpedanceStartRequest, StartSingleImpedanceEndpoint, StartSweepImpedanceEndpoint, StopImpedanceEndpoint, SweepImpedanceInitResult, SweepImpedanceStartRequest
|
||||
};
|
||||
|
||||
use crate::icd::{IcdDftNum, MeasurementPointSet};
|
||||
use crate::icd::{IcdDftNum, MeasurementPointSet, MultiplexerCapability};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct WorkbookClient {
|
||||
@@ -54,6 +54,11 @@ impl WorkbookClient {
|
||||
Ok(id)
|
||||
}
|
||||
|
||||
pub async fn get_device_info(&self) -> Result<MultiplexerCapability, WorkbookError<Infallible>> {
|
||||
let info = self.client.send_resp::<GetMultiplexerCapabilityEndpoint>(&()).await?;
|
||||
Ok(info)
|
||||
}
|
||||
|
||||
pub async fn set_green_led(
|
||||
&self,
|
||||
frequency: f32,
|
||||
@@ -66,10 +71,11 @@ impl WorkbookClient {
|
||||
&self,
|
||||
frequency: u32,
|
||||
lead_mode: BioImpedanceLeadMode,
|
||||
electrode_config: Option<ElectrodeConfiguration>,
|
||||
dft_number: IcdDftNum,
|
||||
) -> Result<ImpedanceInitResult, WorkbookError<Infallible>> {
|
||||
let response = self.client
|
||||
.send_resp::<StartSingleImpedanceEndpoint>(&SingleImpedanceStartRequest { update_frequency: 60, sinus_frequency: frequency, lead_mode, dft_number})
|
||||
.send_resp::<StartSingleImpedanceEndpoint>(&SingleImpedanceStartRequest { update_frequency: 60, sinus_frequency: frequency, lead_mode, electrode_config, dft_number})
|
||||
.await?;
|
||||
Ok(response)
|
||||
}
|
||||
@@ -77,10 +83,11 @@ impl WorkbookClient {
|
||||
pub async fn start_impedancemeter_sweep(
|
||||
&self,
|
||||
lead_mode: BioImpedanceLeadMode,
|
||||
electrode_config: Option<ElectrodeConfiguration>,
|
||||
points: MeasurementPointSet,
|
||||
) -> Result<SweepImpedanceInitResult, WorkbookError<Infallible>> {
|
||||
let response = self.client
|
||||
.send_resp::<StartSweepImpedanceEndpoint>(&SweepImpedanceStartRequest { lead_mode, points })
|
||||
.send_resp::<StartSweepImpedanceEndpoint>(&SweepImpedanceStartRequest { lead_mode, electrode_config, points })
|
||||
.await?;
|
||||
Ok(response)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user