1 #ifndef GCP_UTIL_MONITORPOINT_H
2 #define GCP_UTIL_MONITORPOINT_H
11 #include "gcp/util/common/AxisRange.h"
12 #include "gcp/util/common/DataType.h"
13 #include "gcp/util/common/MonitorCondition.h"
15 #include "gcp/util/common/ArrayMapDataFrameManager.h"
16 #include "gcp/util/common/RegMapDataFrameManager.h"
18 #include "gcp/control/code/unix/libunix_src/common/regmap.h"
22 #define MONITOR_CONDITION_HANDLER(fn) void (fn)(void* arg, bool satisfied, std::string message, std::string script)
27 class ArrayMapDataFrameManager;
30 class RegMapDataFrameManager;
43 RegMapBlock* block,
int index);
46 RegMapBlock* block,
int index);
77 CoordRange* rng = range==0 ? &coordRange_ : range;
80 arrMapFm_->writeReg(regMap_, block_, var, rng);
82 regMapFm_->writeReg(block_, var, rng);
86 if(handlerCount_ > 0) {
93 checkHandlers(isSim, axisRange_);
95 AxisRange axisRange(block_->axes_, range);
96 checkHandlers(isSim, axisRange);
109 template <
class type>
112 CoordRange* rng = range==0 ? &coordRange_ : range;
115 arrMapFm_->readReg(regMap_, block_, ptr, rng);
117 regMapFm_->readReg(block_, ptr, rng);
137 MONITOR_CONDITION_HANDLER(*handler_);
139 std::string message_;
142 unsigned packetCount_;
143 unsigned stablePacketCount_;
144 unsigned giveUpPacketCount_;
157 std::string
format(std::string& reg);
173 std::string
format(std::string& reg);
197 CoordRange coordRange_;
201 AxisRange axisRange_;
205 ArrayMapDataFrameManager* arrMapFm_;
206 RegMapDataFrameManager* regMapFm_;
223 std::vector<std::list<ConditionHandler> > handlers_;
235 void checkHandlers(
bool isSim, AxisRange& range);
239 void updateHandlerCount(
int count);
247 #endif // End #ifndef GCP_UTIL_MONITORPOINT_H
Definition: AxisRange.h:19
RegMapBlock * block()
Definition: MonitorPoint.h:67
Definition: MonitorPoint.h:32
Definition: arraymap.h:63
Definition: CoordRange.h:20
void readReg(type ptr, gcp::util::CoordRange *range)
Definition: MonitorPoint.h:110
virtual ~MonitorPoint()
Definition: MonitorPoint.cc:160
bool operator==(const ConditionHandler &handler)
Definition: MonitorPoint.cc:282
Definition: MonitorCondition.h:20
std::string format(std::string ®)
Definition: MonitorPoint.cc:304
Definition: ArrayMapDataFrameManager.h:28
bool checkCondition(bool isSim, DataType &dataType)
Definition: MonitorPoint.cc:408
void writeReg(bool isSim, type var, gcp::util::CoordRange *range=0)
Definition: MonitorPoint.h:75
MonitorPoint(ArrayMapDataFrameManager *frame, ArrRegMap *regMap, RegMapBlock *block, CoordRange *range=0)
Definition: MonitorPoint.cc:13
Definition: MonitorPoint.h:134
void callHandler(bool conditionWasMet)
Definition: MonitorPoint.cc:294
Definition: DataType.h:27
std::string format(std::string ®)
Definition: MonitorPoint.cc:477
void reset()
Definition: MonitorPoint.cc:389
void registerConditionHandler(MONITOR_CONDITION_HANDLER(*handler), void *arg, std::string message, std::string script, MonitorCondition &condition, bool persistent, CoordRange *coordRange=0)
Definition: MonitorPoint.cc:314
void reset()
Definition: MonitorPoint.cc:466
void setTo(ArrayMapDataFrameManager *frame, ArrRegMap *regMap, RegMapBlock *block, int index)
Definition: MonitorPoint.cc:66
Definition: RegMapDataFrameManager.h:26
void writeDcReg(bool isSim, float f, gcp::util::CoordRange *range=0)
ConditionHandler()
Definition: MonitorPoint.cc:232