[][src]Crate drs_0x01

This crate provides basic functionnality to communicate with Herkulex DRS (both 0101 and 0201, other model are not supported even if they might partially work) servomotors. It is heavily based on the documentation published by Dongbu Robot which is available here.

Examples

To set a servo to a position, you can use this message :

use drs_0x01::*;

let servo = Servo::new(0x40);
let message = servo.set_speed(512, Rotation::Clockwise);

To reboot all the servomotors you can use this message :

use drs_0x01::builder::MessageBuilder;
// 0xFE is the broadcast ID
let message = MessageBuilder::new().id(0xFE).reboot().build();

Here is how to enable torque for the servomotor labelled 35 :

use drs_0x01::builder::MessageBuilder;
use drs_0x01::WritableRamAddr::TorqueControl;
let message = MessageBuilder::new_with_id(35).write_ram(TorqueControl(1)).build();

Re-exports

pub use addr::ReadableEEPAddr;
pub use addr::ReadableRamAddr;
pub use addr::WritableEEPAddr;
pub use addr::WritableRamAddr;

Modules

addr

All the servomotor addresses mapped to some enums.

builder

A module which implement the builder pattern to create advanced messages

reader

A module which contains a Finite State Machine to transform bytes read form the servomotor into [ACKPacket]s

Structs

Servo

This struct allows you to build messages for a servomotor.

Enums

JogColor

The color of the LED of the servomotor.

JogMode

This represent the servomotor control mode. The servomotor is either controlled in Position or Speed.

Rotation

This represent the rotation sense of the servomotor while controlled in Speed.