F´ Flight Software - C/C++ Documentation  NASA-v2.0.1
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TlmChanImplGet.cpp
Go to the documentation of this file.
1 /*
2  * TelemChanImpl.cpp
3  *
4  * Created on: Mar 28, 2014
5  * Author: tcanham
6  */
7 
9 #include <cstring>
10 #include <Fw/Types/BasicTypes.hpp>
11 #include <Fw/Types/Assert.hpp>
12 
13 #include <stdio.h>
14 
15 namespace Svc {
16 
17  void TlmChanImpl::TlmGet_handler(NATIVE_INT_TYPE portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) {
18 
19  // Compute index for entry
20 
21  NATIVE_UINT_TYPE index = this->doHash(id);
22 
23  // Search to see if channel has been stored
24  TlmEntry *entryToUse = this->m_tlmEntries[this->m_activeBuffer].slots[index];
25  for (NATIVE_UINT_TYPE bucket = 0; bucket < TLMCHAN_HASH_BUCKETS; bucket++) {
26  if (entryToUse) { // If bucket exists, check id
27  if (entryToUse->id == id) {
28  break;
29  } else { // otherwise go to next bucket
30  entryToUse = entryToUse->next;
31  }
32  } else { // no buckets left to search
33  break;
34  }
35  }
36 
37  if (entryToUse) {
38  val = entryToUse->buffer;
39  timeTag = entryToUse->lastUpdate;
40  } else { // requested entry may not be written yet; empty buffer
41  val.resetSer();
42  }
43 
44  }
45 }
Fw::Time
Definition: Time.hpp:10
TlmChanImpl.hpp
Component that stores telemetry channel values.
Fw::TlmBuffer
Definition: TlmBuffer.hpp:21
FwChanIdType
#define FwChanIdType
Type representation for a channel id.
Definition: FpConfig.hpp:66
Fw::SerializeBufferBase::resetSer
void resetSer(void)
reset to beginning of buffer to reuse for serialization
Definition: Serializable.cpp:565
Assert.hpp
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Svc
Definition: ActiveRateGroupImplCfg.hpp:18
BasicTypes.hpp
Declares ISF basic types.
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Svc::TlmChanImpl::doHash
virtual NATIVE_UINT_TYPE doHash(FwChanIdType id)
Definition: TlmChanImpl.cpp:61