cisst-saw
Loading...
Searching...
No Matches
mtsCollectorBase.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3
4/*
5 Author(s): Min Yang Jung, Anton Deguet
6 Created on: 2009-02-25
7
8 (C) Copyright 2009-2026 Johns Hopkins University (JHU), All Rights Reserved.
9
10--- begin cisst license - do not edit ---
11
12This software is provided "as is" under an open source license, with
13no warranty. The complete license can be found in license.txt and
14http://www.cisst.org/cisst/license.txt.
15
16--- end cisst license ---
17
18*/
19
24
25#ifndef _mtsCollectorBase_h
26#define _mtsCollectorBase_h
27
31
32#include <string>
33#include <stdexcept>
34
35// Always include last
37
46{
48
49 //-------------------- Auxiliary class definition -----------------------//
50public:
57
63
64 //------------------------- Protected Members ---------------------------//
65protected:
66
68 typedef enum {
69 COLLECTOR_STOP, // nothing happens.
70 COLLECTOR_WAIT_START, // Start(void) has been called. Wait for some time elapsed.
71 COLLECTOR_COLLECTING, // Currently collecting data
72 COLLECTOR_WAIT_STOP // Stop(void) has been called. Wait for some time elapsed.
73 } CollectorStatus;
74
77
79 public:
81
84 };
85
93
98
101
104
107
110
113
115 std::string OutputFileName;
117
120
123 std::ostream * OutputStream;
124 std::ofstream * OutputFile;
125 // add header file stream
126 std::ostream * OutputHeaderStream;
127 std::ofstream * OutputHeaderFile;
128
132
135 std::streamsize Precision;
136
139 std::streamsize Width;
140
143
146
150
153
157
160 void SetDelimiter(void);
161
164
167
169 inline void StartCollectionCommand(const double & delayInSeconds) {
170 this->StartCollection(delayInSeconds);
171 }
172 inline void StopCollectionCommand(const double & delayInSeconds) {
173 this->StopCollection(delayInSeconds);
174 }
175 inline void SetWorkingDirectoryCommand(const std::string & directory) {
176 this->SetWorkingDirectory(directory);
177 }
178 inline void SetOutputToDefaultCommand(void) {
179 this->SetOutputToDefault();
180 }
181
182
184 void Init(void);
185
187 void Cleanup(void);
188
191
194
195public:
196 mtsCollectorBase(const std::string & collectorName, const CollectorFileFormat fileFormat);
197
198 virtual ~mtsCollectorBase(void);
199
201 inline virtual std::string GetDefaultOutputName(void) { return ""; }
202
205 void SetOutput(const std::string & fileName, const CollectorFileFormat fileFormat);
206
209 void SetOutput(std::ostream & outputStream, const CollectorFileFormat fileFormat);
210
217 void SetOutput(std::ostream & outputStream);
218
224
230 virtual void SetOutputToDefault(void);
231
233 void CloseOutput(void);
234
236 inline const std::string & GetOutputFileName(void) const {
237 return this->OutputFileName;
238 }
239
243
246 virtual void StartCollection(const double & delayInSeconds) = 0;
247
250 virtual void StopCollection(const double & delayInSeconds) = 0;
251
254
257
259 virtual void SetWorkingDirectory(const std::string & directory);
260
262 void GetWorkingDirectory(std::string & placeHolder) const;
263
267
270 void SetOutputStreamPrecision(const int precision);
271
275
278 void SetOutputStreamFill(const char fillCharacter);
279
282 virtual bool Connect(void) = 0;
283};
284
286
287#endif // _mtsCollectorBase_h
Definition cmnNamedMap.h:54
Serialization utility class.
Definition cmnSerializer.h:162
SignalMapElement(void)
Definition mtsCollectorBase.h:82
~SignalMapElement(void)
Definition mtsCollectorBase.h:83
mtsComponent * Component
Definition mtsCollectorBase.h:80
Definition mtsCollectorBase.h:46
void StartCollectionCommand(const double &delayInSeconds)
Definition mtsCollectorBase.h:169
mtsFunctionWrite ProgressEventTrigger
Definition mtsCollectorBase.h:256
bool FileOpened
Definition mtsCollectorBase.h:145
void SetOutputStreamPrecision(const int precision)
void SetOutputStreamParams(void)
void Cleanup(void)
CollectorFileFloatingNotation FloatingNotation
Definition mtsCollectorBase.h:131
virtual ~mtsCollectorBase(void)
void SetOutputStreamFloatingNotation(const CollectorFileFloatingNotation floatingNotation)
void SetOutputToDefault(const CollectorFileFormat fileFormat)
void SetWorkingDirectoryCommand(const std::string &directory)
Definition mtsCollectorBase.h:175
virtual void StartCollection(const double &delayInSeconds)=0
std::ostream * OutputStream
Definition mtsCollectorBase.h:123
virtual void SetOutputToDefault(void)
CollectorFileFormat FileFormat
Definition mtsCollectorBase.h:76
mtsCollectorBase(const std::string &collectorName, const CollectorFileFormat fileFormat)
ComponentMapType ComponentMap
Definition mtsCollectorBase.h:92
std::string WorkingDirectoryMember
Definition mtsCollectorBase.h:119
friend class mtsCollectorBaseTest
Definition mtsCollectorBase.h:47
bool ConnectedFlag
Definition mtsCollectorBase.h:97
virtual std::string GetDefaultOutputName(void)
Definition mtsCollectorBase.h:201
std::ofstream * OutputFile
Definition mtsCollectorBase.h:124
const std::string & GetOutputFileName(void) const
Definition mtsCollectorBase.h:236
std::stringstream StringStreamBufferForSerialization
Definition mtsCollectorBase.h:152
void OpenFileIfNeeded(void)
char FillCharacter
Definition mtsCollectorBase.h:142
char Delimiter
Definition mtsCollectorBase.h:149
void Init(void)
void SetOutput(const std::string &fileName, const CollectorFileFormat fileFormat)
void GetWorkingDirectory(std::string &placeHolder) const
std::string OutputFileName
Definition mtsCollectorBase.h:115
std::streamsize Precision
Definition mtsCollectorBase.h:135
void SetOutputStreamWidth(const int width)
void SetupControlInterface(void)
void SetDelimiter(void)
void StopCollectionCommand(const double &delayInSeconds)
Definition mtsCollectorBase.h:172
virtual void SetWorkingDirectory(const std::string &directory)
size_t SampleCounterForEvent
Definition mtsCollectorBase.h:106
void SetOutputStreamFill(const char fillCharacter)
CollectorFileFormat
Definition mtsCollectorBase.h:51
@ COLLECTOR_FILE_FORMAT_CSV
Definition mtsCollectorBase.h:54
@ COLLECTOR_FILE_FORMAT_BINARY
Definition mtsCollectorBase.h:53
@ COLLECTOR_FILE_FORMAT_PLAIN_TEXT
Definition mtsCollectorBase.h:52
@ COLLECTOR_FILE_FORMAT_UNDEFINED
Definition mtsCollectorBase.h:55
void SetOutput(std::ostream &outputStream, const CollectorFileFormat fileFormat)
double TimeOfLastProgressEvent
Definition mtsCollectorBase.h:112
std::ostream * OutputHeaderStream
Definition mtsCollectorBase.h:126
cmnNamedMap< SignalMapType > ComponentMapType
Definition mtsCollectorBase.h:91
void CloseOutput(void)
size_t SampleCounter
Definition mtsCollectorBase.h:103
virtual bool Connect(void)=0
double TimeIntervalForProgressEvent
Definition mtsCollectorBase.h:109
mtsFunctionWrite CollectionStartedEventTrigger
Definition mtsCollectorBase.h:253
bool FirstRunningFlag
Definition mtsCollectorBase.h:100
cmnSerializer * Serializer
Definition mtsCollectorBase.h:156
mtsInterfaceProvided * ControlInterface
Definition mtsCollectorBase.h:166
std::ofstream * OutputHeaderFile
Definition mtsCollectorBase.h:127
virtual void StopCollection(const double &delayInSeconds)=0
cmnNamedMap< SignalMapElement > SignalMapType
Definition mtsCollectorBase.h:90
CollectorFileFloatingNotation
Definition mtsCollectorBase.h:58
@ COLLECTOR_FILE_FLOATING_NOTATION_FIXED
Definition mtsCollectorBase.h:60
@ COLLECTOR_FILE_FLOATING_NOTATION_SCIENTIFIC
Definition mtsCollectorBase.h:61
@ COLLECTOR_FILE_FLOATING_NOTATION_NONE
Definition mtsCollectorBase.h:59
void SetOutput(std::ostream &outputStream)
std::streamsize Width
Definition mtsCollectorBase.h:139
std::string OutputHeaderFileName
Definition mtsCollectorBase.h:116
CollectorStatus
Definition mtsCollectorBase.h:68
@ COLLECTOR_STOP
Definition mtsCollectorBase.h:69
@ COLLECTOR_WAIT_START
Definition mtsCollectorBase.h:70
@ COLLECTOR_WAIT_STOP
Definition mtsCollectorBase.h:72
@ COLLECTOR_COLLECTING
Definition mtsCollectorBase.h:71
void ClearComponentMap(void)
CollectorStatus Status
Definition mtsCollectorBase.h:75
void SetOutputToDefaultCommand(void)
Definition mtsCollectorBase.h:178
Definition mtsComponent.h:150
Definition mtsFunctionWrite.h:37
Definition mtsInterfaceProvided.h:98
mtsTaskFromSignal(const std::string &name, unsigned int sizeStateTable=256)
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition cmnClassRegisterMacros.h:199
#define CISST_EXPORT
Definition cmnExportMacros.h:50
Declaration of cmnNamedMap.
Rules of exporting.
Defines a task with a Run method trigger by signals (any queued command or event).
size_type width() const
Definition vctDynamicConstMatrixBase.h:253