F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
TlmChanImpl.hpp
Go to the documentation of this file.
1 
13 #ifndef TELEMCHANIMPL_HPP_
14 #define TELEMCHANIMPL_HPP_
15 
17 #include <TlmChanImplCfg.hpp>
18 #include <Os/Mutex.hpp>
19 #include <Fw/Tlm/TlmPacket.hpp>
20 
21 namespace Svc {
22 
24  public:
25  friend class TlmChanImplTester;
26  TlmChanImpl(const char* compName);
27  virtual ~TlmChanImpl();
28  void init(
29  NATIVE_INT_TYPE queueDepth,
30  NATIVE_INT_TYPE instance
31  );
33 
34  // can be overridden for alternate algorithms
35  virtual NATIVE_UINT_TYPE doHash(FwChanIdType id);
36 
38 
39  // Port functions
45  void pingIn_handler(
46  const NATIVE_INT_TYPE portNum,
47  U32 key
48  );
49 
50  typedef struct tlmEntry {
52  bool updated;
56  bool used;
59 
60  struct TlmSet {
61  TlmEntry* slots[TLMCHAN_NUM_TLM_HASH_SLOTS];
62  TlmEntry buckets[TLMCHAN_HASH_BUCKETS];
65 
66  U32 m_activeBuffer; // !< which buffer is active for storing telemetry
67 
68  // work variables
71 
72  };
73 
74 }
75 
76 #endif /* TELEMCHANIMPL_HPP_ */
PRIVATE
#define PRIVATE
overridable private for unit testing
Definition: BasicTypes.hpp:118
Fw::Time
Definition: Time.hpp:10
Svc::TlmChanImpl::tlmEntry::lastUpdate
Fw::Time lastUpdate
last updated time
Definition: TlmChanImpl.hpp:53
Svc::TlmChanImpl::TlmEntry
struct Svc::TlmChanImpl::tlmEntry TlmEntry
Fw::TlmBuffer
Definition: TlmBuffer.hpp:21
FwChanIdType
#define FwChanIdType
Type representation for a channel id.
Definition: FpConfig.hpp:66
Svc::TlmChanImpl::tlmEntry::updated
bool updated
set whenever a value has been written. Used to skip if writing out values for downlinking
Definition: TlmChanImpl.hpp:52
Svc::TlmChanImpl::TlmSet::free
NATIVE_INT_TYPE free
next free bucket
Definition: TlmChanImpl.hpp:63
PROTECTED
#define PROTECTED
overridable protected for unit testing
Definition: BasicTypes.hpp:114
Svc::TlmChanImpl::m_activeBuffer
U32 m_activeBuffer
Definition: TlmChanImpl.hpp:66
Svc::TlmChanComponentBase::portNum
PRIVATE NATIVE_INT_TYPE portNum
Definition: TlmChanComponentAc.hpp:438
Svc::TlmChanComponentBase::context
PROTECTED NATIVE_UINT_TYPE context
Definition: TlmChanComponentAc.hpp:267
Svc::TlmChanImpl::TlmSet::slots
TlmEntry * slots[TLMCHAN_NUM_TLM_HASH_SLOTS]
set of hash slots in hash table
Definition: TlmChanImpl.hpp:61
Svc::TlmChanImpl
Definition: TlmChanImpl.hpp:23
Svc::TlmChanImpl::tlmEntry::used
bool used
if entry has been used
Definition: TlmChanImpl.hpp:56
Fw::ObjBase::init
void init(void)
Object initializer.
Definition: ObjBase.cpp:26
Svc::TlmChanImpl::tlmEntry::bucketNo
NATIVE_UINT_TYPE bucketNo
for testing
Definition: TlmChanImpl.hpp:57
Svc::TlmChanImpl::tlmEntry
Definition: TlmChanImpl.hpp:50
TlmChanImplCfg.hpp
Configuration file for Telemetry Channel component.
Svc::TlmChanImpl::TlmChanImplTester
friend class TlmChanImplTester
Definition: TlmChanImpl.hpp:25
Svc::TlmChanImpl::val
PRIVATE FwChanIdType Fw::Time Fw::TlmBuffer & val
Definition: TlmChanImpl.hpp:40
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Svc::TlmChanImpl::TlmSet
Definition: TlmChanImpl.hpp:60
Svc::TlmChanImpl::TlmGet_handler
void TlmGet_handler(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler for input port TlmGet.
Definition: TlmChanImplGet.cpp:17
Svc::TlmChanImpl::m_comBuffer
Fw::ComBuffer m_comBuffer
Definition: TlmChanImpl.hpp:69
Svc::TlmChanComponentBase
Auto-generated base for TlmChan component.
Definition: TlmChanComponentAc.hpp:36
Svc::TlmChanImpl::tlmEntry::id
FwChanIdType id
telemetry id stored in slot
Definition: TlmChanImpl.hpp:51
TlmPacket.hpp
Svc::TlmChanImpl::m_tlmPacket
Fw::TlmPacket m_tlmPacket
Definition: TlmChanImpl.hpp:70
Svc::TlmChanImpl::pingIn_handler
void pingIn_handler(const NATIVE_INT_TYPE portNum, U32 key)
Definition: TlmChanImpl.cpp:65
Svc::TlmChanImpl::tlmEntry::buffer
Fw::TlmBuffer buffer
buffer to store serialized telemetry
Definition: TlmChanImpl.hpp:54
Svc::TlmChanImpl::TlmChanImpl
TlmChanImpl(const char *compName)
Definition: TlmChanImpl.cpp:22
Svc
Definition: ActiveLoggerComponentAc.cpp:22
Fw::TlmPacket
Definition: TlmPacket.hpp:17
Svc::TlmChanImpl::tlmEntry::next
tlmEntry * next
pointer to next bucket in table
Definition: TlmChanImpl.hpp:55
Svc::TlmChanImpl::~TlmChanImpl
virtual ~TlmChanImpl()
Definition: TlmChanImpl.cpp:51
Svc::TlmChanImpl::Run_handler
void Run_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler for input port Run.
Definition: TlmChanImplTask.cpp:24
Svc::TlmChanImpl::TlmSet::buckets
TlmEntry buckets[TLMCHAN_HASH_BUCKETS]
set of buckets used in hash table
Definition: TlmChanImpl.hpp:62
Mutex.hpp
Svc::TlmChanImpl::m_tlmEntries
struct Svc::TlmChanImpl::TlmSet m_tlmEntries[2]
TlmChanComponentAc.hpp
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Svc::TlmChanImpl::timeTag
PRIVATE FwChanIdType Fw::Time & timeTag
Definition: TlmChanImpl.hpp:40
Fw::ComBuffer
Definition: ComBuffer.hpp:21