pelcodrs

Crates.iopelcodrs
lib.rspelcodrs
version0.2.1
sourcesrc
created_at2019-09-07 08:22:50.346159
updated_at2019-10-27 11:56:20.831142
descriptionA library for handling the Pelco D protocol.
homepage
repositoryhttps://github.com/fparat/pelcodrs
max_upload_size
id162943
size43,759
(fparat)

documentation

README

pelcodrs

pelcodrs is a Rust library for communications using the Pelco D protocol.

The Pelco D protocol is widely used for controlling PTZ cameras, especially in the CCTV industry.

Crates.io Documentation

Simple usage

Add this in your application Cargo.toml:

[dependencies]
pelcodrs = "0.2.0"

Create message objects to send to the device:

use pelcodrs::*;

let msg = MessageBuilder::new(10)
    .camera_on()
    .focus_far()
    .down()
    .tilt(Speed::Range(0.5))
    .finalize()?;

assert_eq!(&[0xFF, 0x0A, 0x88, 0x90, 0x00, 0x20, 0x42], msg.as_ref());

A port object can be used with any Read + Write object for communicating with the target device. For example, a SerialPort object from the crate serialport can be used as port:

use serialport;
use pelcodrs::*;

let dev = PelcoDPort::new(serialport::open("/dev/ttyS0"));
dev.send_message(Message::flip_180(10)?)?;

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Disclaimer

This library is not affiliated or associated in any way with Pelco.

All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.

License: MIT OR Apache-2.0

Commit count: 26

cargo fmt