pub struct ReplayMode;Expand description
回放模式状态
用于安全地回放预先录制的 CAN 帧。
§设计目的
- 暂停 TX 线程的周期性发送
- 避免双控制流冲突
- 允许精确控制帧发送时机
§转换规则
- 进入: 从
Standby通过enter_replay_mode()进入 - 退出: 通过
stop_replay()返回到Standby
§安全特性
- 在 ReplayMode 下,无法调用
enable_*()方法 - 所有周期性发送的控制指令都会被暂停
- 只能通过
replay_recording()发送预先录制的帧
§使用场景
- 回放预先录制的运动轨迹
- 测试和验证录制的 CAN 帧序列
- 调试和分析工具
§示例
ⓘ
let robot = PiperBuilder::new()
.interface("can0")
.build()?;
let standby = robot.connect()?;
// 进入回放模式
let replay = standby.enter_replay_mode()?;
// 回放录制(1.0x 速度,原始速度)
let standby = replay.replay_recording("recording.bin", 1.0)?;
// 回放完成后自动返回 Standby 状态Auto Trait Implementations§
impl Freeze for ReplayMode
impl RefUnwindSafe for ReplayMode
impl Send for ReplayMode
impl Sync for ReplayMode
impl Unpin for ReplayMode
impl UnwindSafe for ReplayMode
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> 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