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
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