pub trait OneWire {
type Status: OneWireStatus;
type BusError;
// Required methods
fn reset(&mut self) -> OneWireResult<Self::Status, Self::BusError>;
fn write_byte(&mut self, byte: u8) -> OneWireResult<(), Self::BusError>;
fn read_byte(&mut self) -> OneWireResult<u8, Self::BusError>;
fn write_bit(&mut self, bit: bool) -> OneWireResult<(), Self::BusError>;
fn read_bit(&mut self) -> OneWireResult<bool, Self::BusError>;
fn get_overdrive_mode(&mut self) -> bool;
fn set_overdrive_mode(
&mut self,
enable: bool,
) -> OneWireResult<(), Self::BusError>;
// Provided method
fn address(&mut self, rom: Option<u64>) -> OneWireResult<(), Self::BusError> { ... }
}Expand description
Trait for 1-Wire communication. This trait defines the basic operations required for 1-Wire communication, such as resetting the bus, writing and reading bytes, and writing and reading bits.
Required Associated Types§
Sourcetype Status: OneWireStatus
type Status: OneWireStatus
The status type returned by the reset operation. This type must implement the OneWireStatus trait.
Required Methods§
Sourcefn reset(&mut self) -> OneWireResult<Self::Status, Self::BusError>
fn reset(&mut self) -> OneWireResult<Self::Status, Self::BusError>
Sourcefn write_byte(&mut self, byte: u8) -> OneWireResult<(), Self::BusError>
fn write_byte(&mut self, byte: u8) -> OneWireResult<(), Self::BusError>
Writes a byte to the device addressed using OneWire::address on the 1-Wire bus.
Multiple bytes can be written in succession after addressing the device.
§Arguments
byte- The byte to write to the bus.
§Errors
This method returns an error if the write operation fails.
Sourcefn read_byte(&mut self) -> OneWireResult<u8, Self::BusError>
fn read_byte(&mut self) -> OneWireResult<u8, Self::BusError>
Reads a byte from the device addressed using OneWire::address on the 1-Wire bus.
Multiple bytes can be read in succession after addressing the device.
§Note
If there are more than one devices on the bus and OneWire::address was not called
with a specific ROM address, the read operation will return garbage data.
§Returns
Byte read from the bus.
§Errors
This method returns an error if the read operation fails.
Sourcefn write_bit(&mut self, bit: bool) -> OneWireResult<(), Self::BusError>
fn write_bit(&mut self, bit: bool) -> OneWireResult<(), Self::BusError>
Write a single bit to the device addressed using OneWire::address on the 1-Wire bus.
Multiple bits can be written in succession after addressing the device.
§Arguments
bit- The byte to write.
§Errors
This method returns an error if the read operation fails.
Sourcefn read_bit(&mut self) -> OneWireResult<bool, Self::BusError>
fn read_bit(&mut self) -> OneWireResult<bool, Self::BusError>
Reads a single bit from the device addressed using OneWire::address on the 1-Wire bus.
Multiple bits can be read in succession after addressing the device.
§Note
If there are more than one devices on the bus and OneWire::address was not called
with a specific ROM address, the read operation will return garbage data.
§Returns
The bit read from the bus.
§Errors
This method returns an error if the read operation fails.
Sourcefn get_overdrive_mode(&mut self) -> bool
fn get_overdrive_mode(&mut self) -> bool
Check if the 1-Wire bus is in overdrive mode.
§Returns
A result containing a boolean indicating whether the bus is in overdrive mode.
Sourcefn set_overdrive_mode(
&mut self,
enable: bool,
) -> OneWireResult<(), Self::BusError>
fn set_overdrive_mode( &mut self, enable: bool, ) -> OneWireResult<(), Self::BusError>
Provided Methods§
Sourcefn address(&mut self, rom: Option<u64>) -> OneWireResult<(), Self::BusError>
fn address(&mut self, rom: Option<u64>) -> OneWireResult<(), Self::BusError>
Addresses devices on the 1-Wire bus.
The first OneWire::read_byte, OneWire::read_bit, OneWire::write_byte, OneWire::write_bit operation should be preceded by this method to address devices on the bus.
Note: A OneWire::read_byte or OneWire::read_bit call will return garbage data if this method is called without specifying a ROM address on a bus with multiple devices.
§Arguments
rom- The ROM address of the device to address. PassNoneto skip ROM addressing and address all devices on the bus.
§Returns
A result indicating the success or failure of the operation.
If the device is successfully addressed, the method returns Ok(()).