1 #ifndef GCP_UTIL_MONITOR_H
2 #define GCP_UTIL_MONITOR_H
15 #include "gcp/control/code/unix/libmonitor_src/monitor_stream.h"
17 #include "gcp/util/common/DataType.h"
18 #include "gcp/util/common/RegDate.h"
19 #include "gcp/util/common/RegDescription.h"
20 #include "gcp/util/common/MonitorDataType.h"
31 Monitor(std::string arcDir, std::string calFile, std::string host,
32 std::string start,
bool startWasSet,
33 std::string stop,
bool stopWasSet,
39 Monitor(std::string arcDir, std::string calFile,
40 std::string startMjd, std::string stopMjd);
45 Monitor(std::string host, std::string calFile);
56 std::string boardName,
58 RegAspect aspect=REG_PLAIN,
59 MonitorDataType::FormatType=MonitorDataType::FM_UNKNOWN,
61 MonitorDataType::FormatType=MonitorDataType::FM_UNKNOWN,
78 void getRegister(std::string regmapName, std::string boardName,
82 void getRegister(std::string regmapName, std::string boardName,
86 void getRegister(std::string regmapName, std::string boardName,
90 void getRegister(std::string regmapName, std::string boardName,
94 void getRegister(std::string regmapName, std::string boardName,
98 void getRegister(std::string regmapName, std::string boardName,
134 std::vector<gcp::util::RegDescription> selectedRegs() {
135 return selectedRegs_;
138 std::vector<gcp::util::MonitorDataType::FormatType> selectedFormats() {
139 return selectedFormats_;
142 std::vector<gcp::util::MonitorDataType::FormatType> nativeFormats() {
143 return nativeFormats_;
166 void printArrayMap(
bool arcvhivedOnly);
167 std::vector<std::string> getArrayMapRegisters(
bool archivedOnly);
170 return ms_->arraymap;
186 static Keyword keywords[];
191 MonitorDataType::FormatType type;
194 static Monitor::Format formats[];
200 MS_BOTH = MS_FILE | MS_NET
203 Monitor::StreamType type_;
206 char fmtString_[100];
210 std::map<std::string, std::map<std::string, std::map<std::string, RegDescription* > > > regMap_;
212 std::map<std::string, std::map<std::string, std::map<std::string, MonitorDataType::FormatType > > > regSelFormat_;
214 std::map<std::string, std::map<std::string, std::map<std::string, MonitorDataType::FormatType > > > regNatFormat_;
216 std::map<std::string, std::map<std::string, std::map<std::string, RegAspect > > > regAspect_;
218 std::vector<RegDescription> selectedRegs_;
219 std::vector<RegAxisRange> regAxisRanges_;
220 std::vector<RegAspect> aspects_;
221 std::vector<MonitorDataType::FormatType> selectedFormats_;
222 std::vector<MonitorDataType::FormatType> nativeFormats_;
223 std::vector<MonitorSelection> selections_;
224 std::vector<std::string> formatStrings_;
225 std::vector<bool> hasFormatString_;
227 std::string calFile_;
229 std::string regFile_;
230 bool readRegSpecFromFile_;
239 void privateConstructor(std::string arcDir, std::string calFile,
241 std::string start,
bool startWasSet,
242 std::string stop,
bool stopWasSet,
243 std::string regFile);
245 void setMonitoringInterval(
unsigned interval);
247 void sendMonitoringInterval();
249 void sendRegisterSelection();
253 void changeMonitorStream();
261 static MonitorDataType::FormatType parseFormat(std::string format);
272 MonitorDataType::FormatType readFormat(
InputStream* stream);
290 void addRegisters(std::vector<RegDescription>& regs,
291 MonitorDataType::FormatType format,
309 void getRegisterVals(std::vector<MonitorDataType>& data,
315 static MonitorDataType::FormatType
317 MonitorDataType::FormatType format=MonitorDataType::FM_UNKNOWN);
320 std::string formatStringOf(MonitorDataType::FormatType format,
323 void outputReg(
MonitorDataType val, RegAspect aspect,
char* formatPtr);
329 void formatRegs(std::vector<MonitorDataType>& vals,
331 RegAspect aspect, std::string& formatStr);
341 void convertComplexFloatToType(
MonitorDataType& val, RegAspect aspect);
353 #endif // End #ifndef GCP_UTIL_MONITOR_H
void getRegister(std::string regmapName, std::string boardName, std::string regname, unsigned *data, CoordRange *range)
Definition: Monitor.cc:687
std::vector< std::vector< double > > readRegsAsDoubles()
Definition: Monitor.cc:1575
void printUnsignedIntRegs()
Definition: Monitor.cc:809
void run()
Definition: Monitor.cc:1736
Definition: MonitorDataType.h:16
void reinitialize()
Definition: Monitor.cc:361
Monitor(std::string arcDir, std::string calFile, std::string host, std::string start, bool startWasSet, std::string stop, bool stopWasSet, std::string regFile)
gcp::control::MsReadState readNextFrame()
Definition: Monitor.cc:282
Definition: CoordRange.h:20
std::vector< std::vector< MonitorDataType > > getRegsAsDataTypes()
Definition: Monitor.cc:925
double getRegAsDouble(MonitorDataType val, RegAspect aspect)
Definition: Monitor.cc:1441
double * getCalSlotPtr(unsigned iSlot=0)
Definition: Monitor.cc:2006
void printRegs()
Definition: Monitor.cc:838
unsigned countFrames()
Definition: Monitor.cc:339
Definition: monitor_stream.h:190
void readRegs()
Definition: Monitor.cc:1560
std::vector< double > getRegsAsDoubles()
Definition: Monitor.cc:1186
Definition: datatype.c:158
void printDoubleRegs()
Definition: Monitor.cc:777
Definition: RegAxisRange.h:27
std::vector< std::vector< std::vector< MonitorDataType > > > readRegsAsDataTypes()
Definition: Monitor.cc:1593
static double parseDateAndTime(std::string utc)
Definition: Monitor.cc:1688
Definition: RegDescription.h:26
void addRegister(std::string regmapName, std::string boardName, std::string regname, RegAspect aspect=REG_PLAIN, MonitorDataType::FormatType=MonitorDataType::FM_UNKNOWN, char *formatString=0, MonitorDataType::FormatType=MonitorDataType::FM_UNKNOWN, CoordRange *range=0)
Definition: arraymap.h:177
virtual ~Monitor()
Definition: Monitor.cc:140