@@ -33,7 +33,11 @@ use spidev::SpidevTransfer;
33
33
34
34
mod serial;
35
35
36
+ /// Sysfs Pin wrapper module
37
+ pub mod sysfs_pin;
38
+
36
39
pub use serial:: Serial ;
40
+ pub use sysfs_pin:: Pin ;
37
41
38
42
/// Empty struct that provides delay functionality on top of `thread::sleep`
39
43
pub struct Delay ;
@@ -92,72 +96,6 @@ impl hal::blocking::delay::DelayMs<u64> for Delay {
92
96
}
93
97
}
94
98
95
- /// Newtype around [`sysfs_gpio::Pin`] that implements the `embedded-hal` traits
96
- ///
97
- /// [`sysfs_gpio::Pin`]: https://docs.rs/sysfs_gpio/0.5.1/sysfs_gpio/struct.Pin.html
98
- pub struct Pin ( pub sysfs_gpio:: Pin ) ;
99
-
100
- impl Pin {
101
- /// See [`sysfs_gpio::Pin::new`][0] for details.
102
- ///
103
- /// [0]: https://docs.rs/sysfs_gpio/0.5.1/sysfs_gpio/struct.Pin.html#method.new
104
- pub fn new ( pin_num : u64 ) -> Pin {
105
- Pin ( sysfs_gpio:: Pin :: new ( pin_num) )
106
- }
107
-
108
- /// See [`sysfs_gpio::Pin::from_path`][0] for details.
109
- ///
110
- /// [0]: https://docs.rs/sysfs_gpio/0.5.1/sysfs_gpio/struct.Pin.html#method.from_path
111
- pub fn from_path < P > ( path : P ) -> sysfs_gpio:: Result < Pin >
112
- where
113
- P : AsRef < Path > ,
114
- {
115
- sysfs_gpio:: Pin :: from_path ( path) . map ( Pin )
116
- }
117
- }
118
-
119
- impl hal:: digital:: v2:: OutputPin for Pin {
120
- type Error = sysfs_gpio:: Error ;
121
-
122
- fn set_low ( & mut self ) -> Result < ( ) , Self :: Error > {
123
- self . 0 . set_value ( 0 )
124
- }
125
-
126
- fn set_high ( & mut self ) -> Result < ( ) , Self :: Error > {
127
- self . 0 . set_value ( 1 )
128
- }
129
- }
130
-
131
- impl hal:: digital:: v2:: InputPin for Pin {
132
- type Error = sysfs_gpio:: Error ;
133
-
134
- fn is_high ( & self ) -> Result < bool , Self :: Error > {
135
- if !self . 0 . get_active_low ( ) ? {
136
- self . 0 . get_value ( ) . map ( |val| val != 0 )
137
- } else {
138
- self . 0 . get_value ( ) . map ( |val| val == 0 )
139
- }
140
- }
141
-
142
- fn is_low ( & self ) -> Result < bool , Self :: Error > {
143
- self . is_high ( ) . map ( |val| !val)
144
- }
145
- }
146
-
147
- impl ops:: Deref for Pin {
148
- type Target = sysfs_gpio:: Pin ;
149
-
150
- fn deref ( & self ) -> & Self :: Target {
151
- & self . 0
152
- }
153
- }
154
-
155
- impl ops:: DerefMut for Pin {
156
- fn deref_mut ( & mut self ) -> & mut Self :: Target {
157
- & mut self . 0
158
- }
159
- }
160
-
161
99
/// Newtype around [`i2cdev::linux::LinuxI2CDevice`] that implements the `embedded-hal` traits
162
100
///
163
101
/// [`i2cdev::linux::LinuxI2CDevice`]: https://docs.rs/i2cdev/0.3.1/i2cdev/linux/struct.LinuxI2CDevice.html
0 commit comments