fprime/Drv/LinuxI2cDriver/LinuxI2cDriver.hpp
Thomas Boyer-Chammard e17d42a9ff
Format Drv module (#3960)
* Format Drv module

* Add Drv to format CI check

* Fix double // in include path
2025-07-31 15:49:45 -07:00

68 lines
2.1 KiB
C++

// ======================================================================
// \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