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
ActiveLoggerImpl.cpp
Go to the documentation of this file.
1 /*
2  * TestCommand1Impl.cpp
3  *
4  * Created on: Mar 28, 2014
5  * Author: tcanham
6  */
7 
9 #include <Fw/Types/Assert.hpp>
10 #include <Os/File.hpp>
11 
12 namespace Svc {
13 
16  m_fatalHead(0),
17  m_warningHiHead(0),
18  m_warningLoHead(0),
19  m_commandHead(0),
20  m_activityHiHead(0),
21  m_activityLoHead(0),
22  m_diagnosticHead(0)
23  {
24  // set input filter defaults
25  this->m_inFilterState[INPUT_WARNING_HI].enabled =
37  // set send filter defaults
50 
51  memset(m_filteredIDs,0,sizeof(m_filteredIDs));
52 
53  }
54 
56  }
57 
59  NATIVE_INT_TYPE queueDepth,
60  NATIVE_INT_TYPE instance
61  ) {
62  ActiveLoggerComponentBase::init(queueDepth,instance);
63  }
64 
65  void ActiveLoggerImpl::LogRecv_handler(NATIVE_INT_TYPE portNum, FwEventIdType id, Fw::Time &timeTag, Fw::LogSeverity severity, Fw::LogBuffer &args) {
66 
67  // make sure ID is not zero. Zero is reserved for ID filter.
68  FW_ASSERT(id != 0);
69 
70  switch (severity) {
71  case Fw::LOG_FATAL: // always pass FATAL
72  break;
73  case Fw::LOG_WARNING_HI:
74  if (this->m_inFilterState[INPUT_WARNING_HI].enabled == INPUT_DISABLED) {
75  return;
76  }
77  break;
78  case Fw::LOG_WARNING_LO:
79  if (this->m_inFilterState[INPUT_WARNING_LO].enabled == INPUT_DISABLED) {
80  return;
81  }
82  break;
83  case Fw::LOG_COMMAND:
84  if (this->m_inFilterState[INPUT_COMMAND].enabled == INPUT_DISABLED) {
85  return;
86  }
87  break;
89  if (this->m_inFilterState[INPUT_ACTIVITY_HI].enabled == INPUT_DISABLED) {
90  return;
91  }
92  break;
94  if (this->m_inFilterState[INPUT_ACTIVITY_LO].enabled == INPUT_DISABLED) {
95  return;
96  }
97  break;
98  case Fw::LOG_DIAGNOSTIC:
99  if (this->m_inFilterState[INPUT_DIAGNOSTIC].enabled == INPUT_DISABLED) {
100  return;
101  }
102  break;
103  default:
104  FW_ASSERT(0,static_cast<NATIVE_INT_TYPE>(severity));
105  return;
106  }
107 
108  // check ID filters
109  for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
110  if (
111  (m_filteredIDs[entry] == id) &&
113  ) {
114  return;
115  }
116  }
117 
118  // send event to the logger thread
119  this->loqQueue_internalInterfaceInvoke(id,timeTag,static_cast<QueueLogSeverity>(severity),args);
120 
121  // if connected, announce the FATAL
122  if (Fw::LOG_FATAL == severity) {
124  this->FatalAnnounce_out(0,id);
125  }
126  }
127  }
128 
129  void ActiveLoggerImpl::loqQueue_internalInterfaceHandler(FwEventIdType id, Fw::Time &timeTag, QueueLogSeverity severity, Fw::LogBuffer &args) {
130 
131  // Serialize event
132  this->m_logPacket.setId(id);
133  this->m_logPacket.setTimeTag(timeTag);
134  this->m_logPacket.setLogBuffer(args);
135  this->m_comBuffer.resetSer();
137  FW_ASSERT(Fw::FW_SERIALIZE_OK == stat,static_cast<NATIVE_INT_TYPE>(stat));
138 
139  switch (severity) {
140  case QUEUE_LOG_FATAL: // always pass FATAL
141  this->m_fatalCb[this->m_fatalHead] = this->m_comBuffer;
142  this->m_fatalHead = (this->m_fatalHead + 1)%FW_NUM_ARRAY_ELEMENTS(this->m_fatalCb);
143  break;
145  this->m_warningHiCb[this->m_warningHiHead] = this->m_comBuffer;
147  if (this->m_sendFilterState[SEND_WARNING_HI].enabled == SEND_DISABLED) {
148  return;
149  }
150  break;
152  this->m_warningLoCb[this->m_warningLoHead] = this->m_comBuffer;
154  if (this->m_sendFilterState[SEND_WARNING_LO].enabled == SEND_DISABLED) {
155  return;
156  }
157  break;
158  case QUEUE_LOG_COMMAND:
159  this->m_commandCb[this->m_commandHead] = this->m_comBuffer;
161  if (this->m_sendFilterState[SEND_COMMAND].enabled == SEND_DISABLED) {
162  return;
163  }
164  break;
166  this->m_activityHiCb[this->m_activityHiHead] = this->m_comBuffer;
168  if (this->m_sendFilterState[SEND_ACTIVITY_HI].enabled == SEND_DISABLED) {
169  return;
170  }
171  break;
173  this->m_activityLoCb[this->m_activityLoHead] = this->m_comBuffer;
175  if (this->m_sendFilterState[SEND_ACTIVITY_LO].enabled == SEND_DISABLED) {
176  return;
177  }
178  break;
180  this->m_diagnosticCb[this->m_diagnosticHead] = this->m_comBuffer;
182  if (this->m_sendFilterState[SEND_DIAGNOSTIC].enabled == SEND_DISABLED) {
183  return;
184  }
185  break;
186  default:
187  FW_ASSERT(0,static_cast<NATIVE_INT_TYPE>(severity));
188  return;
189  }
190 
191  if (this->isConnected_PktSend_OutputPort(0)) {
192  this->PktSend_out(0, this->m_comBuffer,0);
193  }
194  }
195 
196  void ActiveLoggerImpl::ALOG_SET_EVENT_REPORT_FILTER_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, InputFilterLevel FilterLevel, InputFilterEnabled FilterEnable) {
197  if ( (FilterLevel > INPUT_DIAGNOSTIC) or
198  (FilterLevel < INPUT_WARNING_HI) or
201  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_VALIDATION_ERROR);
202  return;
203  }
205  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_OK);
206  }
207 
209  if ( (FilterLevel > SEND_DIAGNOSTIC) or
213  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_VALIDATION_ERROR);
214  return;
215  }
217  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_OK);
218  }
219 
221  // Walk through each event type and write it to the file
222 
223  static const BYTE delimiter = 0xA5;
224  // open the file
225  Os::File file;
226  Os::File::Status stat = file.open(filename.toChar(),Os::File::OPEN_WRITE);
227  if (stat != Os::File::OP_OK) {
228  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_OPEN,(I32)stat);
229  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
230  return;
231  }
232 
233  NATIVE_UINT_TYPE numRecords = 0;
234 
235  NATIVE_INT_TYPE fileWriteSize;
236  // write FATAL
237  for (NATIVE_UINT_TYPE entry = 0; entry < FW_NUM_ARRAY_ELEMENTS(this->m_fatalCb); entry++) {
238 
239  // if there is data, write it
240  if (this->m_fatalCb[entry].getBuffLength() != 0) {
241  // write delimiter
242  fileWriteSize = sizeof(delimiter);
243  stat = file.write(&delimiter,fileWriteSize);
244  if (stat != Os::File::OP_OK) {
245  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_FATAL_DELIMETER,stat);
246  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
247  file.close();
248  return;
249  }
250 
251  // write event record
252  fileWriteSize = this->m_fatalCb[entry].getBuffLength();
253  stat = file.write(this->m_fatalCb[entry].getBuffAddr(),fileWriteSize);
254  if (stat != Os::File::OP_OK) {
255  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_FATAL_RECORD,stat);
256  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
257  file.close();
258  return;
259  }
260  numRecords++;
261  } else {
262  // if the entry is empty, that means it is only a partially filled list, so quit writing
263  break;
264  }
265  }
266 
267  // write WARNING HI
268  for (NATIVE_UINT_TYPE entry = 0; entry < FW_NUM_ARRAY_ELEMENTS(this->m_warningHiCb); entry++) {
269  // if there is data, write it
270  if (this->m_warningHiCb[entry].getBuffLength() != 0) {
271  // write delimiter
272  fileWriteSize = sizeof(delimiter);
273  stat = file.write(&delimiter,fileWriteSize);
274  if (stat != Os::File::OP_OK) {
275  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_WARNING_HI_DELIMETER,stat);
276  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
277  file.close();
278  return;
279  }
280 
281  // write event record
282  fileWriteSize = this->m_warningHiCb[entry].getBuffLength();
283  stat = file.write(this->m_warningHiCb[entry].getBuffAddr(),fileWriteSize);
284  if (stat != Os::File::OP_OK) {
285  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_WARNING_HI_RECORD,stat);
286  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
287  file.close();
288  return;
289  }
290  numRecords++;
291  } else {
292  // if the entry is empty, that means it is only a partially filled list, so quit writing
293  break;
294  }
295  }
296 
297  // write WARNING LO
298  for (NATIVE_UINT_TYPE entry = 0; entry < FW_NUM_ARRAY_ELEMENTS(this->m_warningLoCb); entry++) {
299  // if there is data, write it
300  if (this->m_warningLoCb[entry].getBuffLength() != 0) {
301  // write delimiter
302  fileWriteSize = sizeof(delimiter);
303  stat = file.write(&delimiter,fileWriteSize);
304  if (stat != Os::File::OP_OK) {
305  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_WARNING_LO_DELIMETER,stat);
306  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
307  file.close();
308  return;
309  }
310 
311  // write event record
312  fileWriteSize = this->m_warningLoCb[entry].getBuffLength();
313  stat = file.write(this->m_warningLoCb[entry].getBuffAddr(),fileWriteSize);
314  if (stat != Os::File::OP_OK) {
315  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_WARNING_LO_RECORD,stat);
316  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
317  file.close();
318  return;
319  }
320  numRecords++;
321  } else {
322  // if the entry is empty, that means it is only a partially filled list, so quit writing
323  break;
324  }
325  }
326 
327  // write COMMAND
328  for (NATIVE_UINT_TYPE entry = 0; entry < FW_NUM_ARRAY_ELEMENTS(this->m_commandCb); entry++) {
329  // if there is data, write it
330  if (this->m_commandCb[entry].getBuffLength() != 0) {
331  // write delimiter
332  fileWriteSize = sizeof(delimiter);
333  stat = file.write(&delimiter,fileWriteSize);
334  if (stat != Os::File::OP_OK) {
335  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_COMMAND_DELIMETER,stat);
336  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
337  file.close();
338  return;
339  }
340 
341  // write event record
342  fileWriteSize = this->m_commandCb[entry].getBuffLength();
343  stat = file.write(this->m_commandCb[entry].getBuffAddr(),fileWriteSize);
344  if (stat != Os::File::OP_OK) {
345  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_COMMAND_RECORD,stat);
346  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
347  file.close();
348  return;
349  }
350  numRecords++;
351  } else {
352  // if the entry is empty, that means it is only a partially filled list, so quit writing
353  break;
354  }
355  }
356 
357  // write ACTIVITY HI
358  for (NATIVE_UINT_TYPE entry = 0; entry < FW_NUM_ARRAY_ELEMENTS(this->m_activityHiCb); entry++) {
359  // if there is data, write it
360  if (this->m_activityHiCb[entry].getBuffLength() != 0) {
361  // write delimiter
362  fileWriteSize = sizeof(delimiter);
363  stat = file.write(&delimiter,fileWriteSize);
364  if (stat != Os::File::OP_OK) {
365  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_ACTIVITY_HI_DELIMETER,stat);
366  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
367  file.close();
368  return;
369  }
370 
371  // write event record
372  fileWriteSize = this->m_activityHiCb[entry].getBuffLength();
373  stat = file.write(this->m_activityHiCb[entry].getBuffAddr(),fileWriteSize);
374  if (stat != Os::File::OP_OK) {
375  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_ACTIVITY_HI_RECORD,stat);
376  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
377  file.close();
378  return;
379  }
380  numRecords++;
381  } else {
382  // if the entry is empty, that means it is only a partially filled list, so quit writing
383  break;
384  }
385  }
386 
387  // write ACTIVITY LO
388  for (NATIVE_UINT_TYPE entry = 0; entry < FW_NUM_ARRAY_ELEMENTS(this->m_activityLoCb); entry++) {
389  // if there is data, write it
390  if (this->m_activityLoCb[entry].getBuffLength() != 0) {
391  // write delimiter
392  fileWriteSize = sizeof(delimiter);
393  stat = file.write(&delimiter,fileWriteSize);
394  if (stat != Os::File::OP_OK) {
395  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_ACTIVITY_LO_DELIMETER,stat);
396  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
397  file.close();
398  return;
399  }
400 
401  // write event record
402  fileWriteSize = this->m_activityLoCb[entry].getBuffLength();
403  stat = file.write(this->m_activityLoCb[entry].getBuffAddr(),fileWriteSize);
404  if (stat != Os::File::OP_OK) {
405  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_ACTIVITY_LO_RECORD,stat);
406  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
407  file.close();
408  return;
409  }
410  numRecords++;
411  } else {
412  // if the entry is empty, that means it is only a partially filled list, so quit writing
413  break;
414  }
415  }
416 
417  // write DIAGNOSTIC
418  for (NATIVE_UINT_TYPE entry = 0; entry < FW_NUM_ARRAY_ELEMENTS(this->m_diagnosticCb); entry++) {
419  // if there is data, write it
420  if (this->m_diagnosticCb[entry].getBuffLength() != 0) {
421  // write delimiter
422  fileWriteSize = sizeof(delimiter);
423  stat = file.write(&delimiter,fileWriteSize);
424  if (stat != Os::File::OP_OK) {
425  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_DIAGNOSTIC_DELIMETER,stat);
426  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
427  file.close();
428  return;
429  }
430 
431  // write event record
432  fileWriteSize = this->m_diagnosticCb[entry].getBuffLength();
433  stat = file.write(this->m_diagnosticCb[entry].getBuffAddr(),fileWriteSize);
434  if (stat != Os::File::OP_OK) {
435  this->log_WARNING_HI_ALOG_FILE_WRITE_ERR(LOG_WRITE_DIAGNOSTIC_RECORD,stat);
436  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
437  file.close();
438  return;
439  }
440  numRecords++;
441  } else {
442  // if the entry is empty, that means it is only a partially filled list, so quit writing
443  break;
444  }
445  }
446 
447  file.close();
448 
450 
451  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_OK);
452  }
453 
455  FwOpcodeType opCode,
456  U32 cmdSeq,
457  U32 ID,
458  IdFilterEnabled IdFilterEnable
459  ) {
460 
461  // check parameter
462  switch (IdFilterEnable) {
463  case ID_ENABLED:
464  case ID_DISABLED:
465  break;
466  default:
467  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_VALIDATION_ERROR);
468  return;
469  }
470 
471  if (ID_ENABLED == IdFilterEnable) { // add ID
472  // search list for existing entry
473  for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
474  if (this->m_filteredIDs[entry] == ID) {
475  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_OK);
477  return;
478  }
479  }
480  // if not already a match, search for an open slot
481  for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
482  if (this->m_filteredIDs[entry] == 0) {
483  this->m_filteredIDs[entry] = ID;
484  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_OK);
486  return;
487  }
488  }
489  // if an empty slot was not found, send an error event
491  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
492  } else { // remove ID
493  // search list for existing entry
494  for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
495  if (this->m_filteredIDs[entry] == ID) {
496  this->m_filteredIDs[entry] = 0; // zero entry
497  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_OK);
499  return;
500  }
501  }
502  // if it gets here, wasn't found
504  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_EXECUTION_ERROR);
505  }
506 
507  }
508 
510  FwOpcodeType opCode,
511  U32 cmdSeq
512  ) {
513 
514  // first, iterate through severity filters
515  for (NATIVE_INT_TYPE filter = 0; filter < InputFilterLevel_MAX; filter++) {
517  static_cast<EventFilterState>(filter),
518  INPUT_ENABLED == this->m_inFilterState[filter].enabled,
519  SEND_ENABLED == this->m_sendFilterState[filter].enabled
520  );
521  }
522 
523  // iterate through ID filter
524  for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
525  if (this->m_filteredIDs[entry] != 0) {
527  }
528  }
529 
530  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_OK);
531  }
532 
534  const NATIVE_INT_TYPE portNum,
535  U32 key
536  )
537  {
538  // return key
539  this->pingOut_out(0,key);
540  }
541 
542 } // namespace Svc
Svc::ActiveLoggerComponentBase::LOG_WRITE_FATAL_DELIMETER
PROTECTED LOG_WRITE_FATAL_DELIMETER
Definition: ActiveLoggerComponentAc.hpp:751
Svc::ActiveLoggerComponentBase::pingOut_out
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
Definition: ActiveLoggerComponentAc.cpp:649
Svc::ActiveLoggerComponentBase::IdFilterEnabled
IdFilterEnabled
Definition: ActiveLoggerComponentAc.hpp:567
Svc::ActiveLoggerImpl::timeTag
PROTECTED FwEventIdType Fw::Time & timeTag
Definition: ActiveLoggerImpl.hpp:27
Svc::ActiveLoggerComponentBase::FilterLevel
PROTECTED U32 InputFilterLevel FilterLevel
Definition: ActiveLoggerComponentAc.hpp:598
Fw::Time
Definition: Time.hpp:10
Fw::LogPacket::serialize
SerializeStatus serialize(SerializeBufferBase &buffer) const
serialize contents
Definition: LogPacket.cpp:20
Svc::ActiveLoggerComponentBase::log_WARNING_LO_ALOG_ID_FILTER_LIST_FULL
void log_WARNING_LO_ALOG_ID_FILTER_LIST_FULL(U32 ID)
Definition: ActiveLoggerComponentAc.cpp:1731
Svc::ActiveLoggerComponentBase::log_WARNING_LO_ALOG_ID_FILTER_NOT_FOUND
void log_WARNING_LO_ALOG_ID_FILTER_NOT_FOUND(U32 ID)
Definition: ActiveLoggerComponentAc.cpp:1927
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Svc::ActiveLoggerComponentBase::SEND_WARNING_HI
@ SEND_WARNING_HI
Definition: ActiveLoggerComponentAc.hpp:552
Svc::ActiveLoggerComponentBase::INPUT_DIAGNOSTIC
PROTECTED INPUT_DIAGNOSTIC
Definition: ActiveLoggerComponentAc.hpp:541
Svc::ActiveLoggerComponentBase::SEND_ACTIVITY_HI
@ SEND_ACTIVITY_HI
Definition: ActiveLoggerComponentAc.hpp:555
Fw::CmdStringArg::toChar
const char * toChar(void) const
Definition: CmdString.cpp:34
Fw::LOG_WARNING_HI
@ LOG_WARNING_HI
Definition: LogPortAc.hpp:28
Os::File::close
void close(void)
close file
Definition: File.cpp:37
Svc::ActiveLoggerImpl::ALOG_DUMP_FILTER_STATE_cmdHandler
void ALOG_DUMP_FILTER_STATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)
Handler for command ALOG_DUMP_FILTER_STATE.
Definition: ActiveLoggerImpl.cpp:509
Svc::ActiveLoggerImpl::m_warningHiCb
Fw::ComBuffer m_warningHiCb[WARNING_HI_EVENT_CB_DEPTH]
Definition: ActiveLoggerImpl.hpp:85
Fw::LOG_WARNING_LO
@ LOG_WARNING_LO
Definition: LogPortAc.hpp:29
FW_NUM_ARRAY_ELEMENTS
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition: BasicTypes.hpp:103
Fw::LOG_FATAL
@ LOG_FATAL
Definition: LogPortAc.hpp:27
Svc::ActiveLoggerComponentBase::LOG_WRITE_DIAGNOSTIC_DELIMETER
PROTECTED LOG_WRITE_DIAGNOSTIC_DELIMETER
Definition: ActiveLoggerComponentAc.hpp:763
Fw::LOG_COMMAND
@ LOG_COMMAND
Definition: LogPortAc.hpp:30
Svc::ActiveLoggerComponentBase::FatalAnnounce_out
void FatalAnnounce_out(NATIVE_INT_TYPE portNum, FwEventIdType Id)
Definition: ActiveLoggerComponentAc.cpp:639
Svc::ActiveLoggerComponentBase::FilterEnable
PROTECTED U32 InputFilterLevel InputFilterEnabled FilterEnable
Definition: ActiveLoggerComponentAc.hpp:600
Svc::ActiveLoggerImpl::m_diagnosticCb
Fw::ComBuffer m_diagnosticCb[DIAGNOSTIC_EVENT_CB_DEPTH]
Definition: ActiveLoggerImpl.hpp:100
SEND_COMMAND_DEFAULT
@ SEND_COMMAND_DEFAULT
COMMAND events are filtered at output.
Definition: ActiveLoggerImplCfg.hpp:25
SEND_WARNING_LO_DEFAULT
@ SEND_WARNING_LO_DEFAULT
WARNING LO events are filtered at output.
Definition: ActiveLoggerImplCfg.hpp:24
Svc::ActiveLoggerComponentBase::LOG_WRITE_ACTIVITY_LO_DELIMETER
PROTECTED LOG_WRITE_ACTIVITY_LO_DELIMETER
Definition: ActiveLoggerComponentAc.hpp:761
Svc::ActiveLoggerComponentBase::INPUT_ENABLED
@ INPUT_ENABLED
Definition: ActiveLoggerComponentAc.hpp:546
Fw::LogBuffer
Definition: LogBuffer.hpp:22
Fw::LogSeverity
LogSeverity
Definition: LogPortAc.hpp:26
Svc::ActiveLoggerComponentBase::QUEUE_LOG_WARNING_LO
PROTECTED QUEUE_LOG_WARNING_LO
Definition: ActiveLoggerComponentAc.hpp:864
Svc::ActiveLoggerComponentBase::LOG_WRITE_WARNING_HI_RECORD
PROTECTED LOG_WRITE_WARNING_HI_RECORD
Definition: ActiveLoggerComponentAc.hpp:754
Svc::ActiveLoggerImpl::t_inputFilterState::enabled
InputFilterEnabled enabled
Definition: ActiveLoggerImpl.hpp:69
Svc::ActiveLoggerImpl::ActiveLoggerImpl
ActiveLoggerImpl(const char *compName)
constructor
Definition: ActiveLoggerImpl.cpp:14
SEND_ACTIVITY_HI_DEFAULT
@ SEND_ACTIVITY_HI_DEFAULT
ACTIVITY HO events are filtered at output.
Definition: ActiveLoggerImplCfg.hpp:26
Svc::ActiveLoggerImpl::m_fatalCb
Fw::ComBuffer m_fatalCb[FATAL_EVENT_CB_DEPTH]
Definition: ActiveLoggerImpl.hpp:82
Svc::ActiveLoggerComponentBase::QUEUE_LOG_WARNING_HI
PROTECTED QUEUE_LOG_WARNING_HI
Definition: ActiveLoggerComponentAc.hpp:863
Svc::ActiveLoggerComponentBase::INPUT_ACTIVITY_LO
PROTECTED INPUT_ACTIVITY_LO
Definition: ActiveLoggerComponentAc.hpp:540
Svc::ActiveLoggerComponentBase::LOG_WRITE_WARNING_LO_DELIMETER
PROTECTED LOG_WRITE_WARNING_LO_DELIMETER
Definition: ActiveLoggerComponentAc.hpp:755
Svc::ActiveLoggerComponentBase::SEND_ENABLED
@ SEND_ENABLED
Definition: ActiveLoggerComponentAc.hpp:562
Svc::ActiveLoggerComponentBase::LOG_WRITE_FATAL_RECORD
PROTECTED LOG_WRITE_FATAL_RECORD
Definition: ActiveLoggerComponentAc.hpp:752
TELEM_ID_FILTER_SIZE
@ TELEM_ID_FILTER_SIZE
Size of telemetry ID filter.
Definition: ActiveLoggerImplCfg.hpp:41
Svc::ActiveLoggerComponentBase::log_ACTIVITY_HI_ALOG_ID_FILTER_REMOVED
void log_ACTIVITY_HI_ALOG_ID_FILTER_REMOVED(U32 ID)
Definition: ActiveLoggerComponentAc.cpp:1829
Fw::SerializeBufferBase::resetSer
void resetSer(void)
reset to beginning of buffer to reuse for serialization
Definition: Serializable.cpp:570
Svc::ActiveLoggerComponentBase::isConnected_FatalAnnounce_OutputPort
bool isConnected_FatalAnnounce_OutputPort(NATIVE_INT_TYPE portNum)
Definition: ActiveLoggerComponentAc.cpp:767
Fw::CmdStringArg
Definition: CmdString.hpp:11
Svc::ActiveLoggerImpl::pingIn_handler
void pingIn_handler(const NATIVE_INT_TYPE portNum, U32 key)
Definition: ActiveLoggerImpl.cpp:533
Svc::ActiveLoggerComponentBase::LOG_WRITE_COMMAND_DELIMETER
PROTECTED LOG_WRITE_COMMAND_DELIMETER
Definition: ActiveLoggerComponentAc.hpp:757
Assert.hpp
INPUT_COMMAND_DEFAULT
@ INPUT_COMMAND_DEFAULT
COMMAND events are filtered at input.
Definition: ActiveLoggerImplCfg.hpp:18
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Svc::ActiveLoggerImpl::ALOG_SET_EVENT_SEND_FILTER_cmdHandler
void ALOG_SET_EVENT_SEND_FILTER_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, SendFilterLevel FilterLevel, SendFilterEnabled FilterEnable)
Handler for command ALOG_SET_EVENT_SEND_FILTER.
Definition: ActiveLoggerImpl.cpp:208
Svc::ActiveLoggerComponentBase::INPUT_WARNING_LO
PROTECTED INPUT_WARNING_LO
Definition: ActiveLoggerComponentAc.hpp:537
SEND_DIAGNOSTIC_DEFAULT
@ SEND_DIAGNOSTIC_DEFAULT
DIAGNOSTIC events are filtered at output.
Definition: ActiveLoggerImplCfg.hpp:28
Svc::ActiveLoggerComponentBase::ID_DISABLED
@ ID_DISABLED
Definition: ActiveLoggerComponentAc.hpp:569
Os::File::write
Status write(const void *buffer, NATIVE_INT_TYPE &size, bool waitForDone=true)
write size; will return amount written or errno
Definition: File.cpp:33
Svc::ActiveLoggerImpl::m_filteredIDs
FwEventIdType m_filteredIDs[TELEM_ID_FILTER_SIZE]
Definition: ActiveLoggerImpl.hpp:105
Svc::ActiveLoggerImpl::loqQueue_internalInterfaceHandler
void loqQueue_internalInterfaceHandler(FwEventIdType id, Fw::Time &timeTag, QueueLogSeverity severity, Fw::LogBuffer &args)
Definition: ActiveLoggerImpl.cpp:129
Svc::ActiveLoggerImpl::ALOG_DUMP_EVENT_LOG_cmdHandler
void ALOG_DUMP_EVENT_LOG_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &filename)
Handler for command ALOG_DUMP_EVENT_LOG.
Definition: ActiveLoggerImpl.cpp:220
Svc::ActiveLoggerComponentBase::LOG_WRITE_COMMAND_RECORD
PROTECTED LOG_WRITE_COMMAND_RECORD
Definition: ActiveLoggerComponentAc.hpp:758
Fw::ObjBase::init
void init(void)
Object initializer.
Definition: ObjBase.cpp:26
Svc::ActiveLoggerComponentBase::LOG_WRITE_ACTIVITY_HI_RECORD
PROTECTED LOG_WRITE_ACTIVITY_HI_RECORD
Definition: ActiveLoggerComponentAc.hpp:760
BYTE
U8 BYTE
byte type
Definition: BasicTypes.hpp:77
SEND_ACTIVITY_LO_DEFAULT
@ SEND_ACTIVITY_LO_DEFAULT
ACTIVITY LO events are filtered at output.
Definition: ActiveLoggerImplCfg.hpp:27
Svc::ActiveLoggerImpl::m_activityHiCb
Fw::ComBuffer m_activityHiCb[ACTIVITY_HI_EVENT_CB_DEPTH]
Definition: ActiveLoggerImpl.hpp:94
Fw::LogPacket::setLogBuffer
void setLogBuffer(LogBuffer &buffer)
Definition: LogPacket.cpp:73
Svc::ActiveLoggerImpl::m_logPacket
Fw::LogPacket m_logPacket
packet buffer for assembling log packets
Definition: ActiveLoggerImpl.hpp:78
Fw::COMMAND_EXECUTION_ERROR
@ COMMAND_EXECUTION_ERROR
Definition: CmdResponsePortAc.hpp:29
INPUT_ACTIVITY_HI_DEFAULT
@ INPUT_ACTIVITY_HI_DEFAULT
ACTIVITY HI events are filtered at input.
Definition: ActiveLoggerImplCfg.hpp:19
Fw::LOG_DIAGNOSTIC
@ LOG_DIAGNOSTIC
Definition: LogPortAc.hpp:33
Svc::ActiveLoggerImpl::m_activityLoHead
NATIVE_UINT_TYPE m_activityLoHead
Definition: ActiveLoggerImpl.hpp:98
Svc::ActiveLoggerImpl::m_sendFilterState
struct Svc::ActiveLoggerImpl::t_sendFilterState m_sendFilterState[SendFilterLevel_MAX]
Svc::ActiveLoggerComponentBase::QUEUE_LOG_COMMAND
PROTECTED QUEUE_LOG_COMMAND
Definition: ActiveLoggerComponentAc.hpp:865
FwOpcodeType
#define FwOpcodeType
Type representation for a command opcode.
Definition: FpConfig.hpp:62
Os::File::OPEN_WRITE
@ OPEN_WRITE
Open file for writing.
Definition: File.hpp:17
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Svc::ActiveLoggerComponentBase::SEND_DISABLED
@ SEND_DISABLED
Definition: ActiveLoggerComponentAc.hpp:563
Svc::ActiveLoggerImpl::args
PROTECTED FwEventIdType Fw::Time Fw::LogSeverity Fw::LogBuffer & args
Definition: ActiveLoggerImpl.hpp:27
Svc::ActiveLoggerComponentBase
Auto-generated base for ActiveLogger component.
Definition: ActiveLoggerComponentAc.hpp:48
Svc::ActiveLoggerComponentBase::log_ACTIVITY_HI_ALOG_FILE_WRITE_COMPLETE
void log_ACTIVITY_HI_ALOG_FILE_WRITE_COMPLETE(U32 records)
Definition: ActiveLoggerComponentAc.cpp:1401
INPUT_WARNING_LO_DEFAULT
@ INPUT_WARNING_LO_DEFAULT
WARNING LO events are filtered at input.
Definition: ActiveLoggerImplCfg.hpp:17
Svc::ActiveLoggerImpl::m_fatalHead
NATIVE_UINT_TYPE m_fatalHead
Definition: ActiveLoggerImpl.hpp:83
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Os::File::open
Status open(const char *fileName, Mode mode)
open file. Writing creates file if it doesn't exist
Definition: File.cpp:13
Svc::ActiveLoggerImpl::m_diagnosticHead
NATIVE_UINT_TYPE m_diagnosticHead
Definition: ActiveLoggerImpl.hpp:101
Fw::SerializeBufferBase::getBuffLength
NATIVE_UINT_TYPE getBuffLength() const
returns current buffer size
Definition: Serializable.cpp:592
Svc::ActiveLoggerComponentBase::ID_ENABLED
@ ID_ENABLED
Definition: ActiveLoggerComponentAc.hpp:568
Fw::LOG_ACTIVITY_HI
@ LOG_ACTIVITY_HI
Definition: LogPortAc.hpp:31
File.hpp
Svc::ActiveLoggerImpl::m_inFilterState
struct Svc::ActiveLoggerImpl::t_inputFilterState m_inFilterState[InputFilterLevel_MAX]
Svc::ActiveLoggerImpl::ALOG_SET_EVENT_REPORT_FILTER_cmdHandler
void ALOG_SET_EVENT_REPORT_FILTER_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, InputFilterLevel FilterLevel, InputFilterEnabled FilterEnable)
Definition: ActiveLoggerImpl.cpp:196
Svc::ActiveLoggerComponentBase::LOG_WRITE_WARNING_LO_RECORD
PROTECTED LOG_WRITE_WARNING_LO_RECORD
Definition: ActiveLoggerComponentAc.hpp:756
Svc::ActiveLoggerImpl::m_warningLoCb
Fw::ComBuffer m_warningLoCb[WARNING_LO_EVENT_CB_DEPTH]
Definition: ActiveLoggerImpl.hpp:88
Svc::ActiveLoggerComponentBase::SEND_DIAGNOSTIC
@ SEND_DIAGNOSTIC
Definition: ActiveLoggerComponentAc.hpp:557
Svc::ActiveLoggerImpl::t_sendFilterState::enabled
SendFilterEnabled enabled
filter is enabled
Definition: ActiveLoggerImpl.hpp:74
Svc::ActiveLoggerComponentBase::QUEUE_LOG_DIAGNOSTIC
PROTECTED QUEUE_LOG_DIAGNOSTIC
Definition: ActiveLoggerComponentAc.hpp:868
Svc::ActiveLoggerComponentBase::QUEUE_LOG_ACTIVITY_HI
PROTECTED QUEUE_LOG_ACTIVITY_HI
Definition: ActiveLoggerComponentAc.hpp:866
Svc::ActiveLoggerComponentBase::LOG_WRITE_WARNING_HI_DELIMETER
PROTECTED LOG_WRITE_WARNING_HI_DELIMETER
Definition: ActiveLoggerComponentAc.hpp:753
Svc::ActiveLoggerComponentBase::INPUT_ACTIVITY_HI
PROTECTED INPUT_ACTIVITY_HI
Definition: ActiveLoggerComponentAc.hpp:539
Svc::ActiveLoggerImpl::ALOG_SET_ID_FILTER_cmdHandler
void ALOG_SET_ID_FILTER_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U32 ID, IdFilterEnabled IdFilterEnable)
Handler for command ALOG_SET_ID_FILTER.
Definition: ActiveLoggerImpl.cpp:454
Svc
Definition: ActiveLoggerComponentAc.cpp:22
Svc::ActiveLoggerComponentBase::LOG_WRITE_ACTIVITY_HI_DELIMETER
PROTECTED LOG_WRITE_ACTIVITY_HI_DELIMETER
Definition: ActiveLoggerComponentAc.hpp:759
Svc::ActiveLoggerComponentBase::SEND_COMMAND
@ SEND_COMMAND
Definition: ActiveLoggerComponentAc.hpp:554
SEND_WARNING_HI_DEFAULT
@ SEND_WARNING_HI_DEFAULT
WARNING HI events are filtered at output.
Definition: ActiveLoggerImplCfg.hpp:23
Svc::ActiveLoggerComponentBase::LOG_WRITE_ACTIVITY_LO_RECORD
PROTECTED LOG_WRITE_ACTIVITY_LO_RECORD
Definition: ActiveLoggerComponentAc.hpp:762
Svc::ActiveLoggerComponentBase::SendFilterLevel
SendFilterLevel
Definition: ActiveLoggerComponentAc.hpp:551
Svc::ActiveLoggerImpl::m_activityLoCb
Fw::ComBuffer m_activityLoCb[ACTIVITY_LO_EVENT_CB_DEPTH]
Definition: ActiveLoggerImpl.hpp:97
Os::File::Status
Status
Definition: File.hpp:24
Svc::ActiveLoggerComponentBase::log_ACTIVITY_HI_ALOG_ID_FILTER_ENABLED
void log_ACTIVITY_HI_ALOG_ID_FILTER_ENABLED(U32 ID)
Definition: ActiveLoggerComponentAc.cpp:1633
Svc::ActiveLoggerImpl::severity
PROTECTED FwEventIdType Fw::Time Fw::LogSeverity severity
Definition: ActiveLoggerImpl.hpp:27
Fw::LogPacket::setId
void setId(FwEventIdType id)
Definition: LogPacket.cpp:69
Svc::ActiveLoggerComponentBase::InputFilterEnabled
InputFilterEnabled
Definition: ActiveLoggerComponentAc.hpp:545
Fw::COMMAND_OK
@ COMMAND_OK
Definition: CmdResponsePortAc.hpp:25
Svc::ActiveLoggerImpl::m_warningHiHead
NATIVE_UINT_TYPE m_warningHiHead
Definition: ActiveLoggerImpl.hpp:86
Os::File::OP_OK
@ OP_OK
Operation was successful.
Definition: File.hpp:25
Svc::ActiveLoggerComponentBase::SEND_WARNING_LO
@ SEND_WARNING_LO
Definition: ActiveLoggerComponentAc.hpp:553
Svc::ActiveLoggerComponentBase::log_ACTIVITY_LO_ALOG_SEVERITY_FILTER_STATE
void log_ACTIVITY_LO_ALOG_SEVERITY_FILTER_STATE(EventFilterState severity, bool recvEnabled, bool sendEnabled)
Definition: ActiveLoggerComponentAc.cpp:1499
FwEventIdType
#define FwEventIdType
Type representation for a event id.
Definition: FpConfig.hpp:70
Fw::LOG_ACTIVITY_LO
@ LOG_ACTIVITY_LO
Definition: LogPortAc.hpp:32
Svc::ActiveLoggerComponentBase::INPUT_DISABLED
@ INPUT_DISABLED
Definition: ActiveLoggerComponentAc.hpp:547
Svc::ActiveLoggerImpl::m_commandHead
NATIVE_UINT_TYPE m_commandHead
Definition: ActiveLoggerImpl.hpp:92
Svc::ActiveLoggerComponentBase::cmdSeq
PROTECTED U32 cmdSeq
Definition: ActiveLoggerComponentAc.hpp:597
Fw::COMMAND_VALIDATION_ERROR
@ COMMAND_VALIDATION_ERROR
Definition: CmdResponsePortAc.hpp:27
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Svc::ActiveLoggerComponentBase::SendFilterEnabled
SendFilterEnabled
Definition: ActiveLoggerComponentAc.hpp:561
Svc::ActiveLoggerComponentBase::INPUT_COMMAND
PROTECTED INPUT_COMMAND
Definition: ActiveLoggerComponentAc.hpp:538
ActiveLoggerImpl.hpp
Svc::ActiveLoggerComponentBase::EventFilterState
EventFilterState
Definition: ActiveLoggerComponentAc.hpp:768
Svc::ActiveLoggerImpl::~ActiveLoggerImpl
virtual ~ActiveLoggerImpl()
destructor
Definition: ActiveLoggerImpl.cpp:55
INPUT_DIAGNOSTIC_DEFAULT
@ INPUT_DIAGNOSTIC_DEFAULT
DIAGNOSTIC events are filtered at input.
Definition: ActiveLoggerImplCfg.hpp:21
Svc::ActiveLoggerImpl::m_commandCb
Fw::ComBuffer m_commandCb[COMMAND_EVENT_CB_DEPTH]
Definition: ActiveLoggerImpl.hpp:91
INPUT_ACTIVITY_LO_DEFAULT
@ INPUT_ACTIVITY_LO_DEFAULT
ACTIVITY LO events are filtered at input.
Definition: ActiveLoggerImplCfg.hpp:20
Svc::ActiveLoggerComponentBase::SEND_ACTIVITY_LO
@ SEND_ACTIVITY_LO
Definition: ActiveLoggerComponentAc.hpp:556
Os::File
Definition: File.hpp:11
Svc::ActiveLoggerImpl::m_comBuffer
Fw::ComBuffer m_comBuffer
com buffer for sending event buffers
Definition: ActiveLoggerImpl.hpp:79
Svc::ActiveLoggerImpl::m_warningLoHead
NATIVE_UINT_TYPE m_warningLoHead
Definition: ActiveLoggerImpl.hpp:89
Svc::ActiveLoggerComponentBase::LOG_WRITE_DIAGNOSTIC_RECORD
PROTECTED LOG_WRITE_DIAGNOSTIC_RECORD
Definition: ActiveLoggerComponentAc.hpp:764
Svc::ActiveLoggerImpl::m_activityHiHead
NATIVE_UINT_TYPE m_activityHiHead
Definition: ActiveLoggerImpl.hpp:95
Fw::LogPacket::setTimeTag
void setTimeTag(Fw::Time &timeTag)
Definition: LogPacket.cpp:77
INPUT_WARNING_HI_DEFAULT
@ INPUT_WARNING_HI_DEFAULT
WARNING HI events are filtered at input.
Definition: ActiveLoggerImplCfg.hpp:16
Svc::ActiveLoggerComponentBase::QUEUE_LOG_ACTIVITY_LO
PROTECTED QUEUE_LOG_ACTIVITY_LO
Definition: ActiveLoggerComponentAc.hpp:867
Svc::ActiveLoggerComponentBase::QueueLogSeverity
PROTECTED QueueLogSeverity_MAX QueueLogSeverity
Definition: ActiveLoggerComponentAc.hpp:870