open_dmx 1.1.1

A wrapper around the serialport library to send DMX data over a serial port
Documentation
# open_dmx   [![Latest Release][crates-io-badge]][crates-io-url] [![Documentation][docs-rs-img]][docs-rs-url] [![License][license-badge]]


[crates-io-badge]: https://img.shields.io/crates/v/open_dmx.svg?style=for-the-badge
[crates-io-url]: https://crates.io/crates/open_dmx
[docs-rs-img]: https://img.shields.io/docsrs/open_dmx?style=for-the-badge
[docs-rs-url]: https://docs.rs/open_dmx
[license-badge]: https://img.shields.io/crates/l/open_dmx.svg?style=for-the-badge

A wrapper around the [**serialport**](https://crates.io/crates/serialport) library to send [DMX](https://en.wikipedia.org/wiki/DMX512) data over a serial port via the *Open-DMX(RS-485)* protocol

---
## Basic Setup

```rust
use open_dmx::DMXSerial;

fn main() {
    let mut dmx = DMXSerial::open("COM3").unwrap();
    dmx.set_channels([255; 512]);
    dmx.set_channel(1, 0).unwrap();
}
```

`DMXSerial` updates its channels automatically to the Serial Port for a stable connection. For strobe effects `DMXSerial.update()` can be used, which blocks the main thread until a packet is sent over serial.

The automatic sending can also be disabled with `DMXSerial::open_sync(path)` or `DMXSerial.set_sync()` 

Works with COM-Ports on Windows and TTYPorts on Unix systems.

### Dependencies


For linux `pkg-config` and `libudev` are required.