// ====================================================================== // \title LinuxI2cDriver.hpp // \author tcanham // \brief hpp file for LinuxI2cDriver component implementation class // // \copyright // Copyright 2009-2015, by the California Institute of Technology. // ALL RIGHTS RESERVED. United States Government Sponsorship // acknowledged. // // ====================================================================== #ifndef LinuxI2cDriver_HPP #define LinuxI2cDriver_HPP #include "Drv/LinuxI2cDriver/LinuxI2cDriverComponentAc.hpp" namespace Drv { class LinuxI2cDriver final : public LinuxI2cDriverComponentBase { public: // ---------------------------------------------------------------------- // Construction, initialization, and destruction // ---------------------------------------------------------------------- //! Construct object LinuxI2cDriver //! LinuxI2cDriver(const char* const compName); bool open(const char* device); //! Destroy object LinuxI2cDriver //! ~LinuxI2cDriver(); private: // ---------------------------------------------------------------------- // Handler implementations for user-defined typed input ports // ---------------------------------------------------------------------- //! Handler implementation for write //! I2cStatus write_handler(const FwIndexType portNum, /*!< The port number*/ U32 addr, Fw::Buffer& serBuffer); //! Handler implementation for read //! I2cStatus read_handler(const FwIndexType portNum, /*!< The port number*/ U32 addr, Fw::Buffer& serBuffer); //! Handler implementation for writeRead //! I2cStatus writeRead_handler(const FwIndexType portNum, /*!< The port number*/ U32 addr, Fw::Buffer& writeBuffer, Fw::Buffer& readBuffer); // Prevent unused field error when using stub #ifndef STUBBED_LINUX_I2C_DRIVER int m_fd; //!< i2c file descriptor #endif }; } // end namespace Drv #endif