Struct ev3dev_lang_rust::Attribute [−][src]
pub struct Attribute { /* fields omitted */ }A wrapper to a attribute file in the /sys/class/ directory.
Implementations
impl Attribute[src]
impl Attribute[src]pub fn from_path(path: &str) -> Ev3Result<Attribute>[src]
Create a new Attribute instance for the given path.
pub fn from_sys_class(
class_name: &str,
name: &str,
attribute_name: &str
) -> Ev3Result<Attribute>[src]
class_name: &str,
name: &str,
attribute_name: &str
) -> Ev3Result<Attribute>
Create a new Attribute instance that wrappes
the file /sys/class/{class_name}/{name}{attribute_name}.
pub fn from_path_with_discriminator(
root_path: &str,
attribute_path: &str,
discriminator_path: &str,
discriminator_value: &str
) -> Ev3Result<Attribute>[src]
root_path: &str,
attribute_path: &str,
discriminator_path: &str,
discriminator_value: &str
) -> Ev3Result<Attribute>
Create a new Attribute instance by a discriminator attribute.
This can be used to manually access driver files or advances features like raw encoder values.
To find the correct file, this function iterates over all directories $d in root_path and
checks if the content of root_path/$d/discriminator_path equals discriminator_value. When a
match is found it returns an Attribute for file root_path/$d/attribute_path.
Example
use ev3dev_lang_rust::Attribute; // Get value0 of first connected color sensor. let color_sensor_value = Attribute::from_path_with_discriminator( "/sys/class/lego-sensor", "value0", "driver_name", "lego-ev3-color" )?; println!("value0 of color sensor: {}", color_sensor_value.get::<i32>()?); // Get raw rotation count of motor in port `A`. // See https://github.com/ev3dev/ev3dev/wiki/Internals:-ev3dev-stretch for more infomation. let rotation_count = Attribute::from_path_with_discriminator( "/sys/bus/iio/devices", "in_count0_raw", "name", "ev3-tacho" )?; println!("Raw rotation count: {}", rotation_count.get::<i32>()?);
pub fn get<T>(&self) -> Ev3Result<T> where
T: FromStr,
<T as FromStr>::Err: Error, [src]
T: FromStr,
<T as FromStr>::Err: Error,
Returns the current value of the wrapped file.
The value is parsed to the type T.
Returns a Ev3Result::InternalError if the current value is not parsable to type T.
pub fn set<T>(&self, value: T) -> Ev3Result<()> where
T: ToString, [src]
T: ToString,
Sets the value of the wrapped file.
The value is parsed from the type T.
Returns a Ev3Result::InternalError if the file is not writable.
pub fn set_str_slice(&self, value: &str) -> Ev3Result<()>[src]
Sets the value of the wrapped file.
This function skips the string parsing of the self.set<T>() function.
Returns a Ev3Result::InternalError if the file is not writable.
pub fn get_vec(&self) -> Ev3Result<Vec<String>>[src]
Returns a string vector representation of the wrapped file. The file value is splitet at whitespaces.
pub fn get_raw_fd(&self) -> RawFd[src]
Returns a C pointer to the wrapped file.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Attribute
impl RefUnwindSafe for Attributeimpl UnwindSafe for Attribute
impl UnwindSafe for Attribute