upm
1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
|
API for the DS2413 1-Wire Dual Channel Addressable Switch. More...
The DS2413 is a dual-channel programmable I/O 1-Wire(r) chip. The PIO outputs are configured as open-drain and provide up to 20mA continuous sink capability and off-state operating voltage up to 28V. Control and sensing of the PIO pins is performed with a dedicated device-level command protocol.
This device requires the use of a UART to provide access to a Dallas 1-wire bus, via a new facility supported by MRAA (once the relevant PR is accepted), using the UartOW access class. It is important to realize that the UART is only being used to access and control a Dallas 1-wire compliant bus, it is not actually a UART device.
Multiple DS2413 devices can be connected to this bus. This module will identify all such devices connected, and allow you to access them using an index starting at 0.
Public Types | |
enum | DS2413_CMD_T { ACCESS_READ = 0xf5, ACCESS_WRITE = 0x5a } |
enum | DS2413_ACK_T { ACK_SUCCESS = 0xaa, ACK_FAILURE = 0xff } |
Public Member Functions | |
DS2413 (int uart=DS2413_DEFAULT_UART) | |
~DS2413 () | |
void | init () |
int | devicesFound () |
int | readGpios (int index=0) |
void | writeGpios (int index, int value) |
std::string | getId (int index) |
Static Public Attributes | |
static const uint8_t | DS2413_FAMILY_CODE = 0x3a |
Protected Attributes | |
mraa::UartOW | m_uart |
int | m_devicesFound |
std::map< int, std::string > | m_deviceMap |
DS2413 | ( | int | uart = DS2413_DEFAULT_UART | ) |
DS2413 object constructor
uart | Default UART to use (0 or 1). Default is 0. |
void init | ( | ) |
This method will search the 1-wire bus and store information on each device detected on the bus. If no devices are found, an exception is thrown. Once this function completes successfully, you can use devicesFound() to determine how many devices were detected.
|
inline |
int readGpios | ( | int | index = 0 | ) |
Read the GPIO latches and values for a given device. Only the lower 4 bits of the return value have any meaning. The bits are formatted as follows (from msb to lsb): <gpioB latch>=""> <gpioB value>=""> <gpioA latch>=""> <gpioA value>="">
index | The device index to access (starts at 0). Default is the first device (index = 0) |
void writeGpios | ( | int | index, |
int | value | ||
) |
Write the given values to the gpio latches for a given device. Only the lower 2 bits of the value have any meaning. The lsb is gor gpioA and the next lsb is for gpioB: <gpioB latch>=""> <gpioA latch>="">
index | The device index to access (starts at 0). |
value | the value to write to the gpio latches |
|
inline |
Return an 8 byte string representing the unique device ID for a given device index. If the index is invalid, an empty strig will be returned.
index | The device index to access (starts at 0). |