17#include "pw_bytes/span.h"
18#include "pw_chrono/system_clock.h"
19#include "pw_i2c/address.h"
20#include "pw_i2c/initiator.h"
21#include "pw_status/status.h"
50 : initiator_(initiator), device_address_(device_address) {}
67 device_address_, tx_buffer, rx_buffer, timeout);
89 return initiator_.
WriteFor(device_address_, tx_buffer, timeout);
97 device_address_, tx_buffer, tx_size_bytes, timeout);
102 return initiator_.
ReadFor(device_address_, rx_buffer, timeout);
107 size_t rx_size_bytes,
110 device_address_, rx_buffer, rx_size_bytes, timeout);
The common, base driver interface for initiating thread-safe transactions with devices on an I2C bus....
Definition: initiator.h:52
Definition: span_impl.h:235
std::chrono::duration< rep, period > duration
Alias for durations representable with this clock.
Definition: system_clock.h:90
Status WriteFor(Address device_address, ConstByteSpan tx_buffer, chrono::SystemClock::duration timeout)
Definition: initiator.h:235
void UpdateAddress(Address address)
Updates the I2C address associated with this device.
Definition: device.h:127
Status ReadFor(Address device_address, ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
Definition: initiator.h:281
Status ProbeFor(chrono::SystemClock::duration timeout)
Wraps pw::i2c::Initiator::ProbeDeviceFor.
Definition: device.h:114
constexpr Device(Initiator &initiator, Address device_address)
Definition: device.h:49
Status ReadFor(ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
Wraps pw::i2c::Initiator::ReadFor.
Definition: device.h:101
Status TransferFor(span< const Message > messages, chrono::SystemClock::duration timeout)
Wraps pw::i2c::Initiator::TransferFor.
Definition: device.h:57
Status ProbeDeviceFor(Address device_address, chrono::SystemClock::duration timeout)
Definition: initiator.h:325
Status WriteFor(ConstByteSpan tx_buffer, chrono::SystemClock::duration timeout)
Wraps pw::i2c::Initiator::WriteFor.
Definition: device.h:87
Status WriteFor(const void *tx_buffer, size_t tx_size_bytes, chrono::SystemClock::duration timeout)
Definition: device.h:93
Status WriteReadFor(const void *tx_buffer, size_t tx_size_bytes, void *rx_buffer, size_t rx_size_bytes, chrono::SystemClock::duration timeout)
Definition: device.h:73
Status TransferFor(span< const Message > messages, chrono::SystemClock::duration timeout)
Definition: initiator.h:185
Status WriteReadFor(ConstByteSpan tx_buffer, ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
Wraps pw::i2c::Initiator::WriteReadFor.
Definition: device.h:63
Status ReadFor(void *rx_buffer, size_t rx_size_bytes, chrono::SystemClock::duration timeout)
Definition: device.h:106
Status WriteReadFor(Address device_address, ConstByteSpan tx_buffer, ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
Definition: initiator.h:127
The Pigweed namespace.
Definition: alignment.h:27