ifw-slm 0.1.2
 
Loading...
Searching...
No Matches
loopStateData.hpp
Go to the documentation of this file.
1
7
8#ifndef IFWSLM_LOOP_STATE_DATA_HPP
9#define IFWSLM_LOOP_STATE_DATA_HPP
10
11#include <string>
13
14namespace ifw::slm {
15
16class OldbInterface;
17
23public:
24 LoopStateData(int loop_index, OldbInterface& oldb);
25
26 // State management
27 void SetActive(bool active);
28 void SetState(LoopState state);
29 LoopState GetState() const;
30
31 // Cycle management
32 void CycleUpdate(); // Called at start of cycle
33 void CycleExec(); // Called when cycle executes (update cycle_last)
34 void CycleReset(); // Called on loop deactivation
35
36 // Error tracking
37 void SetFail(bool failed);
38 int GetNumErrors() const;
39
44 void SetLastError(const std::string& message);
45
50 void IncrementSuccess();
51
52 // Value tracking
53 void SetValue(double value);
54 double GetValue() const;
55
56 // Check if should stop due to max errors
57 bool CheckStop(int max_errors) const;
58
59private:
60 int m_loop_index;
61 OldbInterface& m_oldb;
62 LoopState m_state;
63 bool m_active;
64 int m_cycle_counter;
65 int m_cycle_errors;
66 int m_cycle_nsuccess;
67 double m_cycle_value;
68
69 void WriteStateToOldb();
70 std::string GetCurrentTimestamp();
71};
72
82void ResetAllLoopStates(OldbInterface& oldb, const rad::Config& config);
83
84} // namespace ifw::slm
85
86#endif
void IncrementSuccess()
Definition loopStateData.cpp:116
int GetNumErrors() const
Definition loopStateData.cpp:107
void CycleReset()
Definition loopStateData.cpp:80
void SetLastError(const std::string &message)
Definition loopStateData.cpp:111
LoopState GetState() const
Definition loopStateData.cpp:52
void SetFail(bool failed)
Definition loopStateData.cpp:96
double GetValue() const
Definition loopStateData.cpp:127
void SetState(LoopState state)
Definition loopStateData.cpp:46
bool CheckStop(int max_errors) const
Definition loopStateData.cpp:131
void SetValue(double value)
Definition loopStateData.cpp:122
void CycleUpdate()
Definition loopStateData.cpp:56
void CycleExec()
Definition loopStateData.cpp:73
LoopStateData(int loop_index, OldbInterface &oldb)
Definition loopStateData.cpp:17
void SetActive(bool active)
Definition loopStateData.cpp:29
Definition oldbInterface.hpp:44
Definition actionMgr.cpp:29
void ResetAllLoopStates(OldbInterface &oldb, const rad::Config &config)
Definition loopStateData.cpp:141
LoopState
Definition slConfig.hpp:63
Secondary Loop configuration constants and helper functions.