k8056 0.1.0

Code to controll the k8056 relay card
Documentation
  • Coverage
  • 0%
    0 out of 16 items documented0 out of 6 items with examples
  • Size
  • Source code size: 4.37 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.84 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • OGrigorios

k8056

Library crate that implements the communication with a k8056 relay card, written in Rust.

This library provides basic structs and enums that provide the specified ACSII instruction, needed to communicate with the K8056 8-CHANNEL RELAY CARD manufactured by Velleman To send the instructions to the relay card, a serial library like serialport is needed.

Working example using serialport library

use serialport;
use k8056::uart::{Command, Idx};
use std::thread;
use std::time::Duration;  

fn main() {
    let mut port = serialport::new("/dev/ttyUSB0", 2_400)
        .timeout(Duration::from_millis(10))
        .data_bits(serialport::DataBits::Eight)
        .parity(serialport::Parity::None)
        .stop_bits(serialport::StopBits::One)
        .open()
        .expect("Failed to open port");
    // Just a bunch of Commands to show how to initialize them
    let cmd = Command::Byte(0x1C);
    let cmd = Command::Emergency;
    let cmd = Command::Force;
    let cmd = Command::Display;
    let cmd = Command::Address(Idx::new(2));
    port.write(&cmd.to_bytes(1)).expect("Write failed!");
    for i in 1..9 {
        let cmd = Command::Toggle(Idx::new(i));
        port.write(&cmd.to_bytes(1)).expect("Write failed!");
        thread::sleep(Duration::from_millis(1000));
    }

    for i in (1..9).rev() {
        let cmd = Command::Toggle(Idx::new(i));
        port.write(&cmd.to_bytes(1)).expect("Write failed!");
        thread::sleep(Duration::from_millis(1000));
    }
}