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.cpp
Go to the documentation of this file.
1 #include <FpConfig.hpp>
2 #include <Fw/Types/Assert.hpp>
4 
6 namespace Drv {
7 
8 
9  namespace {
10 
11  class I2cPortBuffer : public Fw::SerializeBufferBase {
12 
13  public:
14  NATIVE_UINT_TYPE getBuffCapacity(void) const {
15  return sizeof(m_buff);
16  }
17 
18  U8* getBuffAddr(void) {
19  return m_buff;
20  }
21 
22  const U8* getBuffAddr(void) const {
23  return m_buff;
24  }
25 
26  private:
27 
29 
30  };
31 
32  }
34  Fw::InputPortBase(),
35  m_func(0) {
36  }
37 
38  void InputI2cPort::init(void) {
40  }
41 
42  void InputI2cPort::addCallComp(Fw::PassiveComponentBase* callComp, CompFuncPtr funcPtr) {
43  FW_ASSERT(callComp);
44  FW_ASSERT(funcPtr);
45 
46  this->m_comp = callComp;
47  this->m_func = funcPtr;
48  this->m_connObj = callComp;
49  }
50 
51  // call virtual logging function for component
52  I2cStatus InputI2cPort::invoke(U32 addr, Fw::Buffer &serBuffer) {
53 
54 #if FW_PORT_TRACING == 1
55  this->trace();
56 #endif
57  FW_ASSERT(this->m_comp);
58  FW_ASSERT(this->m_func);
59  return this->m_func(this->m_comp, this->m_portNum, addr, serBuffer);
60  }
61 
62 #if FW_PORT_SERIALIZATION == 1
63  Fw::SerializeStatus InputI2cPort::invokeSerial(Fw::SerializeBufferBase &buffer) {
64  FW_ASSERT(0);
65 
66  return Fw::FW_SERIALIZE_OK;
67  }
68 #endif
69 
71  Fw::OutputPortBase(),
72  m_port(0) {
73 }
74 
75 void OutputI2cPort::init(void) {
77 }
78 
80  FW_ASSERT(callPort);
81 
82  this->m_port = callPort;
83  this->m_connObj = callPort;
84 #if FW_PORT_SERIALIZATION == 1
85  this->m_serPort = 0;
86 #endif
87 }
88 
90 #if FW_PORT_TRACING == 1
91  this->trace();
92 #endif
93 
94 #if FW_PORT_SERIALIZATION
95  FW_ASSERT(this->m_port||this->m_serPort);
96 #else
97  FW_ASSERT(this->m_port);
98 #endif
99 
100  return this->m_port->invoke(addr, serBuffer);
101 
102 } // end OutputI2cPort::invoke(...)
103 
104 } // end namespace Drv
Fw::InputPortBase::m_portNum
NATIVE_INT_TYPE m_portNum
Definition: InputPortBase.hpp:29
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
Fw::OutputPortBase::init
virtual void init(void)
Definition: OutputPortBase.cpp:23
U8
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.hpp:76
Drv
Definition: BlockDriverComponentAc.cpp:22
Drv::InputI2cPort
Definition: I2cPortAc.hpp:37
Fw::Buffer
Definition: BufferSerializableAc.hpp:24
Drv::I2cStatus
I2cStatus
Definition: I2cPortAc.hpp:25
Assert.hpp
Drv::OutputI2cPort::addCallPort
void addCallPort(InputI2cPort *callPort)
Definition: I2cPortAc.cpp:79
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Fw::PassiveComponentBase
Definition: PassiveComponentBase.hpp:10
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Drv::InputI2cPort::InputI2cPort
InputI2cPort(void)
constructor
Definition: I2cPortAc.cpp:33
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Drv::InputI2cPort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: I2cPortAc.cpp:42
FpConfig.hpp
ISF configuration file.
Fw::InputPortBase::m_comp
PassiveComponentBase * m_comp
Definition: InputPortBase.hpp:28
Drv::OutputI2cPort::invoke
I2cStatus invoke(U32 addr, Fw::Buffer &serBuffer)
Definition: I2cPortAc.cpp:89
Fw::InputPortBase::init
virtual void init(void)
Definition: InputPortBase.cpp:20
Drv::InputI2cPort::invoke
I2cStatus invoke(U32 addr, Fw::Buffer &serBuffer)
invoke port interface
Definition: I2cPortAc.cpp:52
I2cPortAc.hpp
Fw::PortBase::m_connObj
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:33
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
Fw
Definition: BufferGetPortAc.cpp:6