F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
I2cPortAc.hpp
Go to the documentation of this file.
1 /*
2  * I2cPort.hpp
3  *
4  * Created on: Wednesday, 14 October 2020
5  * Author: mstarch
6  *
7  */
8 #ifndef DRV_I2C_PORT_HPP_
9 #define DRV_I2C_PORT_HPP_
10 
11 #include <cstring>
12 #include <cstdio>
13 #include <FpConfig.hpp>
17 #include <Fw/Types/BasicTypes.hpp>
19 #include <Fw/Types/StringType.hpp>
21 
22 
23 namespace Drv {
24 
25  typedef enum {
26  I2C_OK, // Transaction okay
27  I2C_ADDRESS_ERR, // I2C address invalid
28  I2C_WRITE_ERR, // I2C write failed
29  I2C_READ_ERR, // I2C read failed
30  I2C_OTHER_ERR, // Other errors that don't fit
33 
36 
38  public:
39  enum {
41  };
42  typedef I2cStatus (*CompFuncPtr)(Fw::PassiveComponentBase* callComp, NATIVE_INT_TYPE portNum, U32 addr, Fw::Buffer &serBuffer);
43 
44  InputI2cPort(void);
45  void init(void);
46  void addCallComp(Fw::PassiveComponentBase* callComp, CompFuncPtr funcPtr);
47  I2cStatus invoke(U32 addr, Fw::Buffer &serBuffer);
48  protected:
49  private:
50  CompFuncPtr m_func;
51 #if FW_PORT_SERIALIZATION == 1
52  Fw::SerializeStatus invokeSerial(Fw::SerializeBufferBase &buffer);
53 #endif
54 };
57 
59  public:
60  OutputI2cPort(void);
61  void init(void);
62  void addCallPort(InputI2cPort* callPort);
63  I2cStatus invoke(U32 addr, Fw::Buffer &serBuffer);
64  protected:
65  private:
66  InputI2cPort* m_port;
67  };
68 } // end namespace Drv
69 #endif /* DRV_I2C_PORT_HPP_ */
70 
StringType.hpp
Declares ISF string base class.
InputPortBase.hpp
Fw::Buffer::SERIALIZED_SIZE
@ SERIALIZED_SIZE
Definition: BufferSerializableAc.hpp:30
PassiveComponentBase.hpp
BufferSerializableAc.hpp
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Drv::OutputI2cPort::OutputI2cPort
OutputI2cPort(void)
Definition: I2cPortAc.cpp:70
Drv::OutputI2cPort::init
void init(void)
Definition: I2cPortAc.cpp:75
Serializable.hpp
Drv
Definition: BlockDriverComponentAc.cpp:22
Drv::InputI2cPort
Definition: I2cPortAc.hpp:37
Drv::InputI2cPort::CompFuncPtr
I2cStatus(* CompFuncPtr)(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, U32 addr, Fw::Buffer &serBuffer)
port callback definition
Definition: I2cPortAc.hpp:42
Drv::I2C_OTHER_ERR
@ I2C_OTHER_ERR
Definition: I2cPortAc.hpp:30
Fw::Buffer
Definition: BufferSerializableAc.hpp:24
Drv::I2cStatus
I2cStatus
Definition: I2cPortAc.hpp:25
Drv::OutputI2cPort::addCallPort
void addCallPort(InputI2cPort *callPort)
Definition: I2cPortAc.cpp:79
Fw::PassiveComponentBase
Definition: PassiveComponentBase.hpp:10
Fw::InputPortBase
Definition: InputPortBase.hpp:14
Drv::InputI2cPort::InputI2cPort
InputI2cPort(void)
constructor
Definition: I2cPortAc.cpp:33
OutputPortBase.hpp
Drv::InputI2cPort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: I2cPortAc.cpp:42
FpConfig.hpp
ISF configuration file.
Drv::I2cStatus_MAX
@ I2cStatus_MAX
Definition: I2cPortAc.hpp:31
Drv::I2C_WRITE_ERR
@ I2C_WRITE_ERR
Definition: I2cPortAc.hpp:28
Fw::OutputPortBase
Definition: OutputPortBase.hpp:13
Drv::OutputI2cPort::invoke
I2cStatus invoke(U32 addr, Fw::Buffer &serBuffer)
Definition: I2cPortAc.cpp:89
Drv::InputI2cPort::invoke
I2cStatus invoke(U32 addr, Fw::Buffer &serBuffer)
invoke port interface
Definition: I2cPortAc.cpp:52
BasicTypes.hpp
Declares ISF basic types.
Drv::I2C_OK
@ I2C_OK
Definition: I2cPortAc.hpp:26
Drv::I2C_ADDRESS_ERR
@ I2C_ADDRESS_ERR
Definition: I2cPortAc.hpp:27
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Drv::I2C_READ_ERR
@ I2C_READ_ERR
Definition: I2cPortAc.hpp:29
Drv::InputI2cPort::init
void init(void)
initialization function
Definition: I2cPortAc.cpp:38
Drv::InputI2cPort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: I2cPortAc.hpp:40
Drv::OutputI2cPort
Definition: I2cPortAc.hpp:58