Trait OneWire

Source
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) -> OneWireResult<bool, Self::BusError>;

    // Provided methods
    fn set_overdrive_mode(
        &mut self,
        _enable: bool,
    ) -> OneWireResult<(), Self::BusError> { ... }
    fn addrss(&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§

Source

type Status: OneWireStatus

The status type returned by the reset operation. This type must implement the OneWireStatus trait.

Source

type BusError

The error type returned by the operations of this trait. This type is used to indicate errors in the underlying hardware or communication.

Required Methods§

Source

fn reset(&mut self) -> OneWireResult<Self::Status, Self::BusError>

Resets the 1-Wire bus and returns the status of the bus.

§Returns

A result containing the status of the bus after the reset operation.

§Errors

This method returns an error if the reset operation fails.

Source

fn write_byte(&mut self, byte: u8) -> OneWireResult<(), Self::BusError>

Writes a byte to the 1-Wire bus.

§Arguments
  • byte - The byte to write to the bus.
§Errors

This method returns an error if the write operation fails.

Source

fn read_byte(&mut self) -> OneWireResult<u8, Self::BusError>

Reads a byte from the 1-Wire bus.

§Returns

Byte read from the bus.

§Errors

This method returns an error if the read operation fails.

Source

fn write_bit(&mut self, bit: bool) -> OneWireResult<(), Self::BusError>

Write a single bit to the 1-Wire bus.

§Arguments
  • bit - The byte to write.
§Errors

This method returns an error if the read operation fails.

Source

fn read_bit(&mut self) -> OneWireResult<bool, Self::BusError>

Reads a single bit from the 1-Wire bus.

§Returns

The bit read from the bus.

§Errors

This method returns an error if the read operation fails.

Source

fn get_overdrive_mode(&mut self) -> OneWireResult<bool, Self::BusError>

Check if the 1-Wire bus is in overdrive mode.

§Returns

A result containing a boolean indicating whether the bus is in overdrive mode.

Provided Methods§

Source

fn set_overdrive_mode( &mut self, _enable: bool, ) -> OneWireResult<(), Self::BusError>

Set the 1-Wire bus to overdrive mode.

§Arguments
  • enable - A boolean indicating whether to enable or disable overdrive mode.
§Returns

A result indicating the success or failure of the operation.

Source

fn addrss(&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. Pass None to 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(()).

Implementors§