用途:本技能提供 moto-hses 系列 Rust crate 的使用指导,用于通过 HSES(High Speed Ethernet Server)协议与安川机器人控制器通信。底层协议规范(消息结构、命令 ID、错误码)参见 hses-protocol 技能。
主要能力:moto_hses_client 为 HSES 客户端;moto_hses_proto 提供协议类型(Status、命令等);moto_hses_mock 提供集成测试用 Mock 服务器。客户端支持状态读取(read_status 及 is_running、is_servo_on、has_alarm 等便捷方法)、伺服/保持/HLOCK/循环模式控制、作业选择与启动、位置读取、报警读取与复位、B/I/D/R/S 型变量的单个与批量读写、I/O 与寄存器读写、文件列表/发送/接收/删除。
使用方式:用 ClientConfig 配置 host、port、timeout、retry_count、retry_delay、buffer_size、text_encoding,再通过 HsesClient::new_with_config(config).await 连接。机器人控制端口常量为 ROBOT_CONTROL_PORT(10040),文件操作使用 FILE_CONTROL_PORT(10041)。并发场景可用 SharedHsesClient 包装并 clone 给多个任务;HsesClientOps trait 可用于抽象与依赖注入。所有异步方法返回 Result<T, ClientError>,常见错误包括 TimeoutError、ConnectionError、ConnectionFailed、ProtocolError、InvalidVariable、SystemError。
测试:单元测试可实现 HsesClientOps 的 mock;集成测试使用 moto_hses_mock::MockServer,通过 MockConfig::new("127.0.0.1", 10040, 10041) 创建,并用 server.state() 读写状态。注意 MockServer 使用固定端口,建议设置 RUST_TEST_THREADS="1" 避免端口冲突,并在服务器启动后加入短暂延迟。
限制:资料未提供收费、价格、平台支持范围等信息;详细 API 规范需参考 crates.io 上的 crate 文档。