Crate gpiochip

Crate gpiochip 

Source
Expand description

The gpiochip crate provides access to Linux gpiochip devices from rust. The interface is wrapped, so that rust types are being used instead of C types.

§Examples

extern crate gpiochip as gpio;

/// Print information about first gpiochip
fn main() {
    let chip = gpio::GpioChip::new("/dev/gpiochip0").unwrap();

    println!("GPIOChip 0:");
    println!(" Name:  {:?}", chip.name);
    println!(" Label: {:?}", chip.label);
    println!(" Lines: {:?}", chip.lines);
    println!("");

    for i in 0..chip.lines {
        let info = chip.info(i).unwrap();

        println!(" GPIO {:?}: {:?}", info.gpio, info.name);
        println!("     Consumer: {:?}", info.consumer);
        println!("     Flags: {:?}", info.flags);
    }
}
extern crate gpiochip as gpio;

/// Simple get/set example
fn main() {
    let chip = gpio::GpioChip::new("/dev/gpiochip0").unwrap();
    let gpio_a = chip.request("gpioA", gpio::RequestFlags::INPUT, 0, 0).unwrap();
    let gpio_b = chip.request("gpioA", gpio::RequestFlags::OUTPUT | gpio::RequestFlags::ACTIVE_LOW, 1, 0).unwrap();

    let val = gpio_a.get().unwrap();
    gpio_b.set(val).unwrap();
}
extern crate gpiochip as gpio;

/// GPIO events
fn main() {
    let chip = gpio::GpioChip::new("/dev/gpiochip0").unwrap();

    let gpio_a = chip.request_event("gpioA", 0, gpio::RequestFlags::INPUT, gpio::EventRequestFlags::BOTH_EDGES).unwrap();
    let gpio_b = chip.request_event("gpioB", 1, gpio::RequestFlags::INPUT, gpio::EventRequestFlags::BOTH_EDGES).unwrap();

    let bitmap = gpio::wait_for_event(&[&gpio_a, &gpio_b], 1000).unwrap();

    if bitmap & 0b01 == 0b01 {
        let event = gpio_a.read().unwrap();
        println!("gpioA: event @ {:?} - {:?}", event.timestamp, event.id);
    }

    if bitmap & 0b10 == 0b10 {
        let event = gpio_b.read().unwrap();
        println!("gpioB: event @ {:?} - {:?}", event.timestamp, event.id);
    }
}

Structs§

EventRequestFlags
bitflag describing the events, that should generate a GpioEvent the GpioEventHandle
Flags
bitflag describing the current gpio mode
GpioArrayHandle
A GPIO array handle acquired from the gpiochip
GpioChip
Provide high-level access to Linux gpiochip Driver
GpioEvent
A GPIO event received from a GpioEventHandle
GpioEventHandle
A GPIO event handle acquired from the gpiochip
GpioHandle
A GPIO handle acquired from the gpiochip
LineInfo
Data returned by GpioChip::info()
RequestFlags
bitflag describing the gpio mode, that should be requested

Enums§

EventId

Functions§

wait_for_event
Wait until at least one gpio event has been received or timeout occured.