WPILibC++
2018.4.1-20180930034747-1211-g175c6c1
|
I2C bus interface class. More...
#include <I2C.h>
Public Types | |
enum | Port { kOnboard = 0, kMXP } |
Public Member Functions | |
I2C (Port port, int deviceAddress) | |
Constructor. More... | |
I2C (I2C &&rhs) | |
I2C & | operator= (I2C &&rhs) |
bool | Transaction (uint8_t *dataToSend, int sendSize, uint8_t *dataReceived, int receiveSize) |
Generic transaction. More... | |
bool | AddressOnly () |
Attempt to address a device on the I2C bus. More... | |
bool | Write (int registerAddress, uint8_t data) |
Execute a write transaction with the device. More... | |
bool | WriteBulk (uint8_t *data, int count) |
Execute a bulk write transaction with the device. More... | |
bool | Read (int registerAddress, int count, uint8_t *data) |
Execute a read transaction with the device. More... | |
bool | ReadOnly (int count, uint8_t *buffer) |
Execute a read only transaction with the device. More... | |
bool | VerifySensor (int registerAddress, int count, const uint8_t *expected) |
Verify that a device's registers contain expected values. More... | |
![]() | |
ErrorBase (ErrorBase &&)=default | |
ErrorBase & | operator= (ErrorBase &&)=default |
virtual Error & | GetError () |
Retrieve the current error. More... | |
virtual const Error & | GetError () const |
Retrieve the current error. More... | |
virtual void | ClearError () const |
Clear the current error information associated with this sensor. | |
virtual void | SetErrnoError (const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
Set error information associated with a C library call that set an error to the "errno" global variable. More... | |
virtual void | SetImaqError (int success, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
Set the current error information associated from the nivision Imaq API. More... | |
virtual void | SetError (Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
Set the current error information associated with this sensor. More... | |
virtual void | SetErrorRange (Error::Code code, int32_t minRange, int32_t maxRange, int32_t requestedValue, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
Set the current error information associated with this sensor. More... | |
virtual void | SetWPIError (const wpi::Twine &errorMessage, Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
Set the current error information associated with this sensor. More... | |
virtual void | CloneError (const ErrorBase &rhs) const |
virtual bool | StatusIsFatal () const |
Check if the current error code represents a fatal error. More... | |
Additional Inherited Members | |
![]() | |
static void | SetGlobalError (Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) |
static void | SetGlobalWPIError (const wpi::Twine &errorMessage, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) |
static const Error & | GetGlobalError () |
Retrieve the current global error. | |
![]() | |
Error | m_error |
I2C bus interface class.
This class is intended to be used by sensor (and other I2C device) drivers. It probably should not be used directly.
frc::I2C::I2C | ( | Port | port, |
int | deviceAddress | ||
) |
bool frc::I2C::AddressOnly | ( | ) |
bool frc::I2C::Read | ( | int | registerAddress, |
int | count, | ||
uint8_t * | data | ||
) |
Execute a read transaction with the device.
Read bytes from a device. Most I2C devices will auto-increment the register pointer internally allowing you to read consecutive registers on a device in a single transaction.
registerAddress | The register to read first in the transaction. |
count | The number of bytes to read in the transaction. |
buffer | A pointer to the array of bytes to store the data read from the device. |
bool frc::I2C::ReadOnly | ( | int | count, |
uint8_t * | buffer | ||
) |
Execute a read only transaction with the device.
Read bytes from a device. This method does not write any data to prompt the device.
buffer | A pointer to the array of bytes to store the data read from the device. |
count | The number of bytes to read in the transaction. |
bool frc::I2C::Transaction | ( | uint8_t * | dataToSend, |
int | sendSize, | ||
uint8_t * | dataReceived, | ||
int | receiveSize | ||
) |
Generic transaction.
This is a lower-level interface to the I2C hardware giving you more control over each transaction.
dataToSend | Buffer of data to send as part of the transaction. |
sendSize | Number of bytes to send as part of the transaction. |
dataReceived | Buffer to read data into. |
receiveSize | Number of bytes to read from the device. |
bool frc::I2C::VerifySensor | ( | int | registerAddress, |
int | count, | ||
const uint8_t * | expected | ||
) |
Verify that a device's registers contain expected values.
Most devices will have a set of registers that contain a known value that can be used to identify them. This allows an I2C device driver to easily verify that the device contains the expected value.
registerAddress | The base register to start reading from the device. |
count | The size of the field to be verified. |
expected | A buffer containing the values expected from the device. |
bool frc::I2C::Write | ( | int | registerAddress, |
uint8_t | data | ||
) |
Execute a write transaction with the device.
Write a single byte to a register on a device and wait until the transaction is complete.
registerAddress | The address of the register on the device to be written. |
data | The byte to write to the register on the device. |
bool frc::I2C::WriteBulk | ( | uint8_t * | data, |
int | count | ||
) |
Execute a bulk write transaction with the device.
Write multiple bytes to a device and wait until the transaction is complete.
data | The data to write to the register on the device. |
count | The number of bytes to be written. |