add stopping state, handle dma drain, improve cli readability (state) by moving state to shared
This commit is contained in:
+5
-5
@@ -4,7 +4,7 @@ use async_hid::{AsyncHidRead, HidBackend, HidResult};
|
||||
use clap::{Parser, ValueEnum};
|
||||
use deku::DekuContainerRead;
|
||||
use futures_lite::StreamExt;
|
||||
use shared::hid::AudioTelemetryReport;
|
||||
use shared::{AudioTelemetrySnapshot, hid::AudioTelemetryReport};
|
||||
|
||||
#[derive(Clone, Copy, Debug, ValueEnum)]
|
||||
enum Format {
|
||||
@@ -23,7 +23,7 @@ trait StateEmitter<W: io::Write> {
|
||||
fn from_writer(writer: W) -> Self
|
||||
where
|
||||
Self: Sized;
|
||||
fn emit(&mut self, r: &AudioTelemetryReport);
|
||||
fn emit(&mut self, r: &AudioTelemetrySnapshot);
|
||||
}
|
||||
|
||||
struct DebugEmitter<T: io::Write> {
|
||||
@@ -34,7 +34,7 @@ impl<W: io::Write> StateEmitter<W> for DebugEmitter<W> {
|
||||
fn from_writer(writer: W) -> Self {
|
||||
Self { writer }
|
||||
}
|
||||
fn emit(&mut self, r: &AudioTelemetryReport) {
|
||||
fn emit(&mut self, r: &AudioTelemetrySnapshot) {
|
||||
writeln!(self.writer, "{r:?}");
|
||||
}
|
||||
}
|
||||
@@ -49,7 +49,7 @@ impl<W: io::Write> StateEmitter<W> for CsvEmitter<W> {
|
||||
csv: csv::Writer::from_writer(writer),
|
||||
}
|
||||
}
|
||||
fn emit(&mut self, r: &AudioTelemetryReport) {
|
||||
fn emit(&mut self, r: &AudioTelemetrySnapshot) {
|
||||
if let Err(e) = self.csv.serialize(r) {
|
||||
eprintln!("Serialization error: {e:?}");
|
||||
} else {
|
||||
@@ -80,7 +80,7 @@ async fn main() -> HidResult<()> {
|
||||
log::debug!("read {}: {:?}", r, &buf[..r]);
|
||||
let buf = &buf[..r];
|
||||
match AudioTelemetryReport::from_bytes((buf, 0)) {
|
||||
Ok((_, r)) => writer.emit(&r),
|
||||
Ok((_, r)) => writer.emit(&r.into()),
|
||||
Err(e) => eprintln!("Unable to parse report: {:?}", e),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user