1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
4 #pragma once
5 #include "controller/System.h"
6 #include "system/equipment/electrocardiogram/SEElectroCardioGram.h"
13 class PULSE_DECL ECG : public SEElectroCardioGram, public PulseElectroCardioGram, public PulseSystem
14 {
15  friend class PBPulseEquipment;//friend the serialization class
16  friend class PulseController;
17  friend class PulseEngineTest;
18 protected:
19  ECG(PulseController& pc);
22 public:
23  virtual ~ECG();
25  void Clear();
27 protected:
28  // Set members to a stable homeostatic state
29  void Initialize();
30  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
31  void SetUp();
33  // main driver function responsible for calling the various ECG functions:
34  void PreProcess();
35  void Process();
36  void PostProcess();
38  // Serializable member variables (Set in Initialize and in schema)
43  // Stateless member variable (Set in SetUp())
44  double m_dt_s;
45 };
virtual void Clear()
Definition: SEElectroCardioGram.cpp:29
PulseController & m_data
Definition: ECG.h:20
Definition: SEElectroCardioGram.h:7
Definition: SEElectroCardioGramWaveformInterpolator.h:7
double m_heartRhythmPeriod_s
Definition: ECG.h:40
Manages and controls execution of all data/systems in Pulse.
Definition: Controller.h:50
Generic ECG machine to assess the heart rhythm.
Definition: ECG.h:13
virtual void SetUp()=0
double m_dt_s
Definition: ECG.h:44
Generic class for handling the Pulse stabilization methodology.
Definition: System.h:10
virtual void Initialize()
Default system values to their homeostatic values
Definition: System.h:16
Definition: PulsePhysiologySystems.h:103
double m_heartRhythmTime_s
Definition: ECG.h:39
virtual void PostProcess()=0
Definition: PBPulseEquipment.h:10
virtual void Process()=0
virtual void PreProcess()=0
SEElectroCardioGramWaveformInterpolator * m_interpolator
Definition: ECG.h:41