pub struct JointPositionState {
pub hardware_timestamp_us: u64,
pub system_timestamp_us: u64,
pub joint_pos: [f64; 6],
pub frame_valid_mask: u8,
}Expand description
关节位置状态(帧组同步)
更新频率:~500Hz CAN ID:0x2A5-0x2A7
Fields§
§hardware_timestamp_us: u64硬件时间戳(微秒,来自完整帧组的最后一帧)
注意:这是CAN硬件时间戳,反映数据在CAN总线上的实际传输时间。
system_timestamp_us: u64系统接收时间戳(微秒,系统接收到完整帧组的时间)
注意:这是系统时间戳,用于计算接收延迟和系统处理时间。
joint_pos: [f64; 6]关节位置(弧度)[J1, J2, J3, J4, J5, J6]
frame_valid_mask: u8帧组有效性掩码(Bit 0-2 对应 0x2A5, 0x2A6, 0x2A7)
- 1 表示该CAN帧已收到
- 0 表示该CAN帧未收到(可能丢包)
Implementations§
Source§impl JointPositionState
impl JointPositionState
Sourcepub fn is_fully_valid(&self) -> bool
pub fn is_fully_valid(&self) -> bool
检查是否接收到了完整的帧组 (0x2A5, 0x2A6, 0x2A7)
返回值:
true:所有3个CAN帧都已收到,数据完整false:部分CAN帧丢失,数据不完整
Sourcepub fn missing_frames(&self) -> Vec<usize>
pub fn missing_frames(&self) -> Vec<usize>
获取丢失的CAN帧索引(用于调试)
返回值:丢失的CAN帧索引列表(0=0x2A5, 1=0x2A6, 2=0x2A7)
Trait Implementations§
Source§impl Clone for JointPositionState
impl Clone for JointPositionState
Source§fn clone(&self) -> JointPositionState
fn clone(&self) -> JointPositionState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for JointPositionState
impl Debug for JointPositionState
Source§impl Default for JointPositionState
impl Default for JointPositionState
Source§fn default() -> JointPositionState
fn default() -> JointPositionState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for JointPositionState
impl RefUnwindSafe for JointPositionState
impl Send for JointPositionState
impl Sync for JointPositionState
impl Unpin for JointPositionState
impl UnwindSafe for JointPositionState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more