F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
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