1#![deny(missing_docs)]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3
4#[cfg(feature = "screen")]
38extern crate framebuffer;
39
40#[cfg(feature = "screen")]
41extern crate image;
42
43#[macro_use]
44extern crate ev3dev_lang_rust_derive;
45extern crate libc;
46extern crate paste;
47
48#[macro_use]
49mod findable;
50
51#[macro_use]
52mod ev3_button_functions;
53
54mod attribute;
55pub use attribute::Attribute;
56mod driver;
57pub use driver::Driver;
58#[cfg(feature = "override-driver-path")]
59pub use driver::DRIVER_PATH;
60mod device;
61pub use device::Device;
62
63mod utils;
64pub use utils::{Ev3Error, Ev3Result};
65
66pub mod wait;
67
68pub mod port;
69pub use port::{LegoPort, Port};
70
71pub mod motors;
72pub mod sensors;
73
74#[cfg(feature = "ev3")]
75mod ev3;
76#[cfg(feature = "ev3")]
77pub use ev3::Button;
78#[cfg(feature = "ev3")]
79pub use ev3::Led;
80#[cfg(feature = "ev3")]
81mod port_constants {
82 pub const OUTPUT_A: &str = "outA";
83 pub const OUTPUT_B: &str = "outB";
84 pub const OUTPUT_C: &str = "outC";
85 pub const OUTPUT_D: &str = "outD";
86
87 pub const INPUT_1: &str = "in1";
88 pub const INPUT_2: &str = "in2";
89 pub const INPUT_3: &str = "in3";
90 pub const INPUT_4: &str = "in4";
91}
92
93#[cfg(feature = "brickpi")]
94mod brickpi;
95#[cfg(feature = "brickpi")]
96pub use brickpi::Led;
97#[cfg(feature = "brickpi")]
98mod port_constants {
99 pub const OUTPUT_A: &str = "serial0-0:MA";
100 pub const OUTPUT_B: &str = "serial0-0:MB";
101 pub const OUTPUT_C: &str = "serial0-0:MC";
102 pub const OUTPUT_D: &str = "serial0-0:MD";
103
104 pub const INPUT_1: &str = "serial0-0:S1";
105 pub const INPUT_2: &str = "serial0-0:S2";
106 pub const INPUT_3: &str = "serial0-0:S3";
107 pub const INPUT_4: &str = "serial0-0:S4";
108}
109
110#[cfg(feature = "brickpi3")]
111mod brickpi3;
112#[cfg(feature = "brickpi3")]
113pub use brickpi3::Led;
114#[cfg(feature = "brickpi3")]
115mod port_constants {
116 pub const OUTPUT_A: &str = "spi0.1:MA";
117 pub const OUTPUT_B: &str = "spi0.1:MB";
118 pub const OUTPUT_C: &str = "spi0.1:MC";
119 pub const OUTPUT_D: &str = "spi0.1:MD";
120
121 pub const INPUT_1: &str = "spi0.1:S1";
122 pub const INPUT_2: &str = "spi0.1:S2";
123 pub const INPUT_3: &str = "spi0.1:S3";
124 pub const INPUT_4: &str = "spi0.1:S4";
125}
126
127pub mod sound;
128
129mod power_supply;
130pub use power_supply::PowerSupply;
131
132#[cfg(feature = "screen")]
133mod screen;
134#[cfg(feature = "screen")]
135pub use screen::Screen;