F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
EventManager.hpp
Go to the documentation of this file.
1 /*
2  * EventManager.hpp
3  *
4  * Created on: Mar 28, 2014
5  * Author: tcanham
6  */
7 
8 #ifndef Svc_EventManager_HPP_
9 #define Svc_EventManager_HPP_
10 
12 #include <Fw/Log/LogPacket.hpp>
13 #include <Os/Mutex.hpp>
16 #include <config/EventManagerCfg.hpp>
17 
18 namespace Svc {
19 
21  public:
22  EventManager(const char* compName);
23  virtual ~EventManager();
24 
25  private:
26  void LogRecv_handler(FwIndexType portNum,
27  FwEventIdType id,
28  Fw::Time& timeTag,
29  const Fw::LogSeverity& severity,
30  Fw::LogBuffer& args);
31 
32  void loqQueue_internalInterfaceHandler(FwEventIdType id,
33  const Fw::Time& timeTag,
34  const Fw::LogSeverity& severity,
35  const Fw::LogBuffer& args);
36 
37  void SET_EVENT_FILTER_cmdHandler(FwOpcodeType opCode,
38  U32 cmdSeq,
39  const EventManager_FilterSeverity& filterLevel,
40  const EventManager_Enabled& filterEnabled);
41 
42  void SET_ID_FILTER_cmdHandler(FwOpcodeType opCode,
43  U32 cmdSeq,
44  FwEventIdType ID,
45  const EventManager_Enabled& idFilterEnabled
46  );
47 
48  void DUMP_FILTER_STATE_cmdHandler(FwOpcodeType opCode,
49  U32 cmdSeq
50  );
51 
53  void run_handler(FwIndexType portNum, U32 context);
54 
57  void pingIn_handler(const FwIndexType portNum,
58  U32 key
59  );
60 
61  // Severity filter state (shared implementation)
62  EventSeverityFilter m_severityFilter;
63 
64  // Working members
65  Fw::LogPacket m_logPacket;
66  Fw::ComBuffer m_comBuffer;
67 
68  // Set of filtered event IDs.
70 
71  // Guards m_filteredIDs: read on the sync LogRecv path, mutated on the command thread
72  Os::Mutex m_idFilterLock;
73 };
74 
75 } // namespace Svc
76 #endif /* Svc_EventManager_HPP_ */
Enabled and disabled state.
FwIdType FwOpcodeType
The type of a command opcode.
EventManager(const char *compName)
constructor
FwIdType FwEventIdType
The type of an event identifier.
Auto-generated base for EventManager component.
Enum representing event severity.
virtual ~EventManager()
destructor
Common severity-based event filtering utility.
PlatformIndexType FwIndexType
RateGroupDivider component implementation.