update
This commit is contained in:
97
src/types.rs
97
src/types.rs
@@ -0,0 +1,97 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
|
||||
pub struct Force3D {
|
||||
pub fx: i16,
|
||||
pub fy: i16,
|
||||
pub fz: i16,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
|
||||
pub struct Force3F {
|
||||
pub fx: f32,
|
||||
pub fy: f32,
|
||||
pub fz: f32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
||||
pub enum SensorModule {
|
||||
ThumbProximal = 0,
|
||||
ThumbMiddle = 1,
|
||||
ThumbTip = 2,
|
||||
ThumbNail = 3,
|
||||
|
||||
IndexProximal = 4,
|
||||
IndexMiddle = 5,
|
||||
IndexTip = 6,
|
||||
IndexNail = 7,
|
||||
|
||||
MiddleProximal = 8,
|
||||
MiddleMiddle = 9,
|
||||
MiddleTip = 10,
|
||||
MiddleNail = 11,
|
||||
|
||||
RingProximal = 12,
|
||||
RingMiddle = 13,
|
||||
RingTip = 14,
|
||||
RingNail = 15,
|
||||
|
||||
PinkyProximal = 16,
|
||||
PinkyMiddle = 17,
|
||||
PinkyTip = 18,
|
||||
PinkyNail = 19,
|
||||
|
||||
Palm1 = 20,
|
||||
Palm2 = 21,
|
||||
Palm3 = 22,
|
||||
Palm4 = 23,
|
||||
Palm5 = 24,
|
||||
Palm6 = 25,
|
||||
Palm7 = 26,
|
||||
Palm8 = 27,
|
||||
}
|
||||
|
||||
pub const SENSOR_MODULE_COUNT: usize = 28;
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct DistributionForce {
|
||||
pub module: SensorModule,
|
||||
pub point_count: u16,
|
||||
pub points: Vec<ForcePoint>,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
|
||||
pub struct CombinedForce {
|
||||
pub module: SensorModule,
|
||||
pub force: Force3D,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct FingerSample {
|
||||
pub timestamp_us: u64,
|
||||
pub sequence: u32,
|
||||
pub combined_forces: Vec<CombinedForce>,
|
||||
pub distribution_forces: Vec<DistributionForce>,
|
||||
pub module_errors: Vec<ModuleError>,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
|
||||
pub struct ModuleError {
|
||||
pub module: u8,
|
||||
pub error_code: u16,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
|
||||
pub struct ForcePoint {
|
||||
pub fx: i8,
|
||||
pub fy: i8,
|
||||
pub fz: i8,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user