Expand description
关节归零确认令牌
安全机制:关节归零是危险操作,可能导致机械臂撞击限位或损坏设备。 因此引入确认令牌机制,强制用户明确确认此操作。
§三种构造方式
-
confirm_from_env()(推荐用于 CLI 应用)- 从环境变量
PIPER_ZEROING_CONFIRM读取确认 - 值必须是 “I_CONFIRM_ZEROING_IS_DANGEROUS”
- 推荐用于生产环境
- 从环境变量
-
unsafe fn new_unchecked()(供 GUI 应用使用)- 不检查任何条件,直接创建令牌
- 用户必须在 UI 中已经确认
- 安全性由 GUI 应用层保证
-
confirm_for_test()(仅测试可用)- 仅在
cfg(test)下可用 - 用于单元测试和集成测试
- 仅在
§使用示例
§CLI 应用
use piper_client::control::ZeroingConfirmToken;
// 用户需要在命令行明确确认:
// export PIPER_ZEROING_CONFIRM=I_CONFIRM_ZEROING_IS_DANGEROUS
let token = ZeroingConfirmToken::confirm_from_env()?;§GUI 应用
use piper_client::control::ZeroingConfirmToken;
use std::io;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// 显示确认对话框,用户点击"我确认"
if show_confirmation_dialog() {
// ⚠️ 用户已在 UI 中确认,这里使用 unsafe 跳过检查
let token = unsafe { ZeroingConfirmToken::new_unchecked() };
} else {
return Err(Box::new(io::Error::new(
io::ErrorKind::Other,
"User cancelled"
)) as Box<dyn std::error::Error>);
}
Ok(())
}§测试代码
ⓘ
use piper_client::control::ZeroingConfirmToken;
#[test]
fn test_zeroing() {
let token = ZeroingConfirmToken::confirm_for_test();
// 执行归零操作...
}Structs§
- Zeroing
Confirm Token - 关节归零确认令牌(Zero-token 类型模式)
Enums§
- Zeroing
Token Error - ZeroingToken 错误