diff --git a/src-tauri/src/serial_core/codecs/tactile_a.rs b/src-tauri/src/serial_core/codecs/tactile_a.rs index 1c0e9f3..298831b 100644 --- a/src-tauri/src/serial_core/codecs/tactile_a.rs +++ b/src-tauri/src/serial_core/codecs/tactile_a.rs @@ -216,7 +216,7 @@ impl Codec for TactileACodec { req_bytes.push(f.meta.device_addr); req_bytes.push(f.meta.extend_code); req_bytes.push(f.meta.func_code); - + req_bytes.extend_from_slice(f.meta.start_addr.to_le_bytes().as_slice()); req_bytes.extend_from_slice((f.meta.except_data_len as u16).to_le_bytes().as_slice()); let checksum = calc_crc8_itu(req_bytes.as_slice()); @@ -259,6 +259,7 @@ impl CsvExporter for TactileACsvExporter { } header.push("dts".to_string()); + header.push("summary".to_string()); header } @@ -267,8 +268,10 @@ impl CsvExporter for TactileACsvExporter { item: &RecordedFrame, ) -> anyhow::Result> { let packet = TactileADataPacket::try_from(&item.frame)?; + let summary: i32 = packet.data.iter().sum(); let mut row: Vec = packet.data.iter().map(|x| x.to_string()).collect(); row.push(packet.dts_ms.to_string()); + row.push(summary.to_string()); Ok(row) } }