moto-hses-mock

Crates.iomoto-hses-mock
lib.rsmoto-hses-mock
version0.0.2
created_at2025-09-21 23:15:37.199447+00
updated_at2025-09-21 23:54:00.94132+00
descriptionMock HSES UDP server for testing and development
homepagehttps://github.com/masayuki-kono/moto-hses
repositoryhttps://github.com/masayuki-kono/moto-hses
max_upload_size
id1849298
size126,342
masayuki-kono (masayuki-kono)

documentation

https://docs.rs/moto-hses-mock

README

moto-hses-mock

Crates.io Documentation License Gate of Main Security Audit

Mock HSES UDP server for testing and development.

Overview

This crate provides a mock implementation of the Yaskawa High-Speed Ethernet Server (HSES) protocol for testing and development purposes. It simulates a real Yaskawa robot's HSES server, allowing you to test your client applications without requiring actual hardware.

Features

  • Full HSES protocol support: Implements all major HSES protocol commands
  • Configurable responses: Customize robot behavior and responses
  • Async implementation: Built on Tokio for high-performance testing

Installation

Add this to your Cargo.toml:

[dev-dependencies]
moto-hses-mock = "0.0.2"
tokio = { version = "1.0", features = ["full"] }

Usage

use moto_hses_mock::{MockServer, MockServerBuilder};
use moto_hses_proto::Alarm;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Start mock server with custom configuration using builder pattern
    let server = MockServerBuilder::new()
        .host("192.168.1.100")
        .robot_port(20000)
        .file_port(20001)
        .with_alarm(Alarm::new(1001, 0, 0, "2024-01-01 12:00:00".to_string(), "Test alarm".to_string()))
        .with_io_state(1, true)
        .build()
        .await?;
    
    // Server will run until the program exits
    server.run().await?;
    
    Ok(())
}

Supported Operations

The mock server supports all major HSES operations:

Variable Operations

  • Read/write integer, real, string, and position variables
  • Configurable variable values
  • Batch operations

I/O Operations

  • Digital I/O simulation
  • Analog I/O operations
  • I/O status monitoring

File Operations

  • File upload/download simulation
  • File management operations
  • Directory operations

Status Operations

  • Robot status simulation
  • Alarm data generation
  • System information

Position Operations

  • Cartesian position simulation
  • Joint position data
  • Position monitoring

Examples

The crate includes examples demonstrating various usage patterns:

  • mock_basic_usage.rs - Basic mock server usage
  • Integration with moto-hses-client for end-to-end testing

Running Examples

# Run the basic usage example
cargo run --example mock_basic_usage

# Run with custom address and port
cargo run --example mock_basic_usage -- 192.168.1.100 10040 10041

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

Related Crates

References

Commit count: 188

cargo fmt