F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BlockDriverImpl.cpp
Go to the documentation of this file.
2 #include <FpConfig.hpp>
3 #include <Fw/Types/Assert.hpp>
4 
5 namespace Drv {
6 
7  BlockDriverImpl::BlockDriverImpl(const char* compName) :
8  BlockDriverComponentBase(compName), m_cycles(0)
9  {
10 
11  }
12 
14 
15  }
16 
17  void BlockDriverImpl::InterruptReport_internalInterfaceHandler(U32 ip) {
18  // get time
19  Os::RawTime time;
20  time.now();
21  // call output timing signal
22  this->CycleOut_out(0,time);
23  // increment cycles and write channel
24  this->tlmWrite_BD_Cycles(this->m_cycles);
25  this->m_cycles++;
26  }
27 
28  void BlockDriverImpl::BufferIn_handler(NATIVE_INT_TYPE portNum, Drv::DataBuffer& buffer) {
29  // just a pass-through
30  this->BufferOut_out(0,buffer);
31  }
32 
33  void BlockDriverImpl::Sched_handler(NATIVE_INT_TYPE portNum, U32 context) {
34  }
35 
37  s_driverISR(this);
38  }
39 
40  void BlockDriverImpl::s_driverISR(void* arg) {
41  FW_ASSERT(arg);
42  // cast argument to component instance
43  BlockDriverImpl* compPtr = static_cast<BlockDriverImpl*>(arg);
44  compPtr->InterruptReport_internalInterfaceHandler(0);
45  }
46 
47  void BlockDriverImpl::PingIn_handler(
48  const NATIVE_INT_TYPE portNum,
49  U32 key
50  )
51  {
52  // call ping output port
53  this->PingOut_out(0,key);
54  }
55 
56 
57 }
#define FW_ASSERT(...)
Definition: Assert.hpp:14
PlatformIntType NATIVE_INT_TYPE
Definition: BasicTypes.h:55
C++-compatible configuration header for fprime configuration.
Auto-generated base for BlockDriver component.
void BufferOut_out(FwIndexType portNum, Drv::DataBuffer &buff)
Invoke output port BufferOut.
void tlmWrite_BD_Cycles(U32 arg, Fw::Time _tlmTime=Fw::Time())
void CycleOut_out(FwIndexType portNum, Os::RawTime &cycleStart)
Invoke output port CycleOut.
void PingOut_out(FwIndexType portNum, U32 key)
Invoke output port PingOut.
BlockDriverImpl(const char *compName)
Status now() override
Get the current time.
Definition: RawTime.cpp:36