diff options
Diffstat (limited to 'peripheral/libupm/src/ds2413/ds2413.hpp')
-rw-r--r-- | peripheral/libupm/src/ds2413/ds2413.hpp | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/peripheral/libupm/src/ds2413/ds2413.hpp b/peripheral/libupm/src/ds2413/ds2413.hpp deleted file mode 100644 index 1e9e238..0000000 --- a/peripheral/libupm/src/ds2413/ds2413.hpp +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Author: Jon Trulson <jtrulson@ics.com> - * Copyright (c) 2016 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ -#pragma once - -#include <string> -#include <iostream> -#include <map> - -#include <stdlib.h> -#include <unistd.h> -#include <string.h> - -#include <mraa/common.hpp> -#include <mraa/uart_ow.hpp> - -#define DS2413_DEFAULT_UART 0 - -namespace upm { - /** - * @brief DS2413 modules - * @defgroup ds2413 libupm-ds2413 - * @ingroup maxim uart gpio - */ - - /** - * @library ds2413 - * @sensor ds2413 - * @comname DS2413 1-Wire Dual Channel Addressable Switch - * @type gpio - * @man maxim - * @con uart - * @web https://learn.adafruit.com/adafruit-1-wire-gpio-breakout-ds2413/overview - * - * @brief API for the DS2413 1-Wire Dual Channel Addressable Switch - * - * The DS2413 is a dual-channel programmable I/O 1-Wire® 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. - * - * @snippet ds2413.cxx Interesting - */ - - class DS2413 { - public: - - // The family code for these devices. We handle all of them that - // are found on the bus. - static const uint8_t DS2413_FAMILY_CODE = 0x3a; - - // commands - typedef enum { - ACCESS_READ = 0xf5, - ACCESS_WRITE = 0x5a - } DS2413_CMD_T; - - // possible ack responses for gpio writes - typedef enum { - ACK_SUCCESS = 0xaa, - ACK_FAILURE = 0xff - } DS2413_ACK_T; - - /** - * DS2413 object constructor - * - * @param uart Default UART to use (0 or 1). Default is 0. - */ - DS2413(int uart=DS2413_DEFAULT_UART); - - /** - * DS2413 object destructor - */ - ~DS2413(); - - /** - * 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. - */ - void init(); - - /** - * This method will return the number of DS2413 devices that were - * found on the bus. - * - * @return number of DS2413's that were found on the bus - */ - int devicesFound() - { - return m_devicesFound; - } - - /** - * 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> - * - * @param index The device index to access (starts at 0). Default - * is the first device (index = 0) - * @return the 4 bit status of the 2 gpios - */ - int readGpios(int index=0); - - /** - * 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> - * - * @param index The device index to access (starts at 0). - * @param value the value to write to the gpio latches - */ - void writeGpios(int index, int value); - - /** - * 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. - * - * @param index The device index to access (starts at 0). - * @return 8 byte string representing the 1-wire device's unique - * rom code. - */ - std::string getId(int index) - { - return m_deviceMap[index]; - } - - protected: - mraa::UartOW m_uart; - - // the total number of devices found - int m_devicesFound; - - std::map<int, std::string> m_deviceMap; - - private: - }; -} |