LRAUV  revA
Component.h
Go to the documentation of this file.
1 
18 #ifndef COMPONENT_H_
19 #define COMPONENT_H_
20 
21 #include "component/FailureMode.h"
22 #include "data/DataElement.h"
23 #include "logger/Logger.h"
24 #include "utils/CodedStr.h"
25 #include "utils/FlexArray.h"
26 #include "utils/Str.h"
27 #include "utils/Timestamp.h"
28 
29 class BlobReader;
30 class BlobWriter;
31 class ConfigReader;
32 class Module;
37 
53 class Component
54 {
55 public:
56 
57  friend class AsyncComponent;
58  friend class Config;
59  friend class Behavior;
60  friend class ScriptComponent;
61  friend class SyncComponent;
62  friend class ThreadHandler;
63 
65  virtual ~Component();
66 
67  void registerReader( DataReader *reader );
68  void unregisterReader( DataReader *reader );
69  void registerWriter( DataWriter *writer );
70  void unregisterWriter( DataWriter *writer );
71  void disableMetering( void )
72  {
73  meteringEnabled_ = false;
74  }
75 
78 
79  const Module* getModule()
80  {
81  return module_;
82  }
83 
93  {
104  };
105 
108  {
113  };
114 
115  enum RunState
116  {
117  NO_RUN_STATE = 0, // Do not use runState -- use initialize, run, uninitialize
118  START, // Do what needs to be done to run
119  STARTING, // Might follow a STOP...START sequence
120  RUNNABLE, // Should eventually follow a START request or RESETTING
121  SATISFIED, // Possible return value of a Behavior with isSequence()=true.
122  PAUSE, // Pause for a short period (indicated by pauseTime)
123  PAUSING, // Might follow a PAUSE request
124  PAUSED, // Should eventually follow a PAUSE request, should set continueTime
125  RESUME, // Resume from PAUSE
126  RESUMING, // Might follow a PAUSE...RESUME sequence
127  RESETTING, // Might occur in case of Error
128  STOP, // Stop the execution of the component indefinitely
129  STOPPING, // Might follow a STOP request
130  STOPPED, // Should eventually follow a STOP request
131  };
132 
134  virtual void initialize()
135  {}
136 
138  virtual void configure()
139  {}
140 
141  virtual void execute( void );
142 
144  virtual void run()
145  {}
146 
148  virtual void uninitialize()
149  {}
150 
151  //== Accessors ==
152 
155  bool isActive() const;
156 
158  const CodedStr& getName( void ) const
159  {
160  return name_;
161  }
162 
163  const Timestamp& getTimeOfLastRun( void ) const
164  {
165  return timeOfLastRun_;
166  }
167 
170  {
171  return state_;
172  };
173 
174  // Change the component's current state
175  void setState( ComponentState state )
176  {
177  state_ = state;
178  }
179 
182  {
183  return runState_;
184  };
185 
188  {
189  return runState_ != NO_RUN_STATE;
190  }
191 
193  void requestData( bool requestingData );
194 
196  void requestStart();
197 
199  void requestPause( const Timespan expectedPauseTime );
200 
202  void requestResume();
203 
205  void requestStop();
206 
209  virtual RunState start()
210  {
211  return RUNNABLE;
212  }
213 
216  virtual RunState starting()
218  {
219  return RUNNABLE;
220  }
221 
223  virtual RunState runnable()
224  {
225  return RUNNABLE;
226  }
227 
229  virtual RunState satisfied()
230  {
231  return runnable();
232  }
233 
235  virtual RunState pause()
236  {
237  return PAUSED;
238  }
239 
241  virtual RunState pausing()
242  {
243  return PAUSED;
244  }
245 
247  virtual RunState paused()
248  {
249  return PAUSED;
250  }
251 
253  virtual RunState resume()
254  {
255  return RUNNABLE;
256  }
257 
259  virtual RunState resuming()
260  {
261  return RUNNABLE;
262  }
263 
265  virtual RunState resetting()
266  {
267  return RUNNABLE;
268  }
269 
271  virtual RunState stop()
272  {
273  return STOPPED;
274  }
275 
277  virtual RunState stopping()
278  {
279  return STOPPED;
280  }
281 
283  virtual RunState stopped()
284  {
285  return STOPPED;
286  }
287 
288  void setCriticalFailureReported( bool boolVal )
289  {
290  criticalFailureReported_ = boolVal;
291  }
292 
293  void setRecoveringFromCritical( bool boolVal )
294  {
295  recoveringFromCritical_ = boolVal;
296  }
297 
298  void setFailureReported( bool boolVal )
299  {
300  failureReported_ = boolVal;
301  }
302 
304  {
305  return failureUninitialized_;
306  }
307 
308  void setFailureUninitialized( bool boolVal )
309  {
310  failureUninitialized_ = boolVal;
311  }
312 
313  void setRetryTimeout( const Timespan& timeout )
314  {
315  retryTimeout_ = timeout;
316  }
317 
319  virtual bool isCompleted( void )
320  {
321  return state_ == BLOCK_COMPLETED;
322  }
323 
325  void setPeriod( const Timespan &period )
326  {
327  desiredPeriod_ = period;
328  }
329 
331  const Timespan& getPeriod( void )
332  {
333  return desiredPeriod_;
334  }
335 
338  {
339  return componentType_;
340  }
341 
342  virtual bool isFailed( void ) const
343  {
345  }
346 
347  virtual FailureMode::FailType getFailureType( void ) const
348  {
349  return failureType_;
350  }
351 
352  virtual bool getCriticalFailureReported( void ) const
353  {
355  }
356 
357  virtual bool getFailureReported( void ) const
358  {
359  return failureReported_;
360  }
361 
362  virtual Timespan getRetryTimeout( void ) const
363  {
364  return retryTimeout_;
365  }
366 
368 
369  virtual int getFailCount( void ) const
370  {
371  return failCount_;
372  }
373 
375  {
377  }
378 
379  virtual int getAllowableFailures( void ) const
380  {
381  return allowableFailures_;
382  }
383 
384  virtual void setAllowableFailures( int fails )
385  {
386  allowableFailures_ = fails;
387  }
388 
389  Logger &getLogger( void )
390  {
391  return logger_;
392  }
393 
394  virtual int incrementFailCount( void )
395  {
396  return ++failCount_;
397  }
398 
399  virtual void resetFailCount( void );
400 
401  virtual int getSkippedRunsSinceFail( void ) const
402  {
403  return skippedRunsSinceFail_;
404  }
405 
406  virtual int incrementSkippedRunsSinceFail( void )
407  {
408  return ++skippedRunsSinceFail_;
409  }
410 
411  virtual void logVoltage( float voltage, float averageVoltage );
412  virtual void logCurrent( float current, float averageCurrent );
413 
415  {
416  return writeTimestamp_;
417  }
418 
419  void setWriteTimestamp( const Timestamp& writeTimestamp )
420  {
421  writeTimestamp_ = writeTimestamp;
422  }
423 
424  BlobReader* newBlobReader( const BlobURI& blobURI );
425 
426  BlobReader* newBlobReaderFromUniversal( const Str& componentName, const UniversalBlobURI& blobURI );
427 
428  BlobWriter* newBlobWriter( const BlobURI& blobURI,
430 
431  ConfigReader* newConfigReader( const ConfigURI& configURI );
432 
433  DataReader* newDataReader( const DataURI& dataURI );
434 
435  DataReader* newDataReaderFromUniversal( const Str& componentName, const UniversalURI& universalURI );
436 
437  DataWriter* newDataWriter( const DataURI& dataURI,
439 
441 
443  const Unit& accuracyUnit = Units::NONE,
444  const float accuracy = DataElement::NO_ACCURACY,
446 
447  UniversalDataReader* newUniversalReader( const UniversalURI& universalURI );
448 
450  const Unit& accuracyUnit = Units::NONE,
451  const float accuracy = DataElement::NO_ACCURACY,
453 
454 protected:
455 
457  {
462  };
463 
465  virtual ConfigURI getConfigURI( ConfigOption configOption ) const
466  {
468  }
469 
471  virtual ConfigURI getConfigURI( ConfigOption configOption, ElementURI forElement ) const
472  {
474  }
475 
477 
478  // Set above Syslog::NONE to enable debug logging
480 
481 #define DEBUG_LOG(...) if(debugLevel_>Syslog::NONE){logger_.syslog(__VA_ARGS__,debugLevel_);}
482 
486 
489 
494 
495  // How long to wait prior to re-trying to run the component after failure
497 
498  bool enabled_;
499 
502 
505 
508 
511 
514 
517 
520 
523 
526 
529 
532 
533  // I'm not sure this is the right way to go (embedding info in the Components)
534  // as opposed to tracking elsewhere (i.e. some data structure in Slate)
535  // but we'll start with this and see how Gordian things get
538 
539  // The module that contains this component.
540  // Can be NULL if no module contains the component.
541  const Module* module_;
542 
543  Timespan pauseTime_; // indication of how long to expect to be paused
544 
547 
548  //DataWriter *timeOfLastRunWriter_; ///< Writer for timeOfLastRun
549  //DataWriter *dtWriter_; ///< Writer for dt (time between runs)
551 
552  // Writers for load control values
557 
560 
561  virtual void setDurationOfLastRun( const Timespan &span );
562 
563  virtual void setTimeOfRun( const Timestamp &time )
564  {
565  timeOfRun_ = time;
566  }
567 
568  virtual void setTimeOfLastRun( const Timestamp &time );
569 
570  virtual void setDt( const Timespan &dt );
571 
572  virtual bool setEnabled( bool enabled = true )
573  {
574  enabled_ = enabled;
575  return enabled_;
576  }
577 
578  // Protected set the run state
579  void setRunState( const RunState runState );
580 
581  // Protected read pauseTime
582  const Timespan getPauseTime() const
583  {
584  return pauseTime_;
585  }
586 
587  virtual void setFailureMissionCritical( bool failureMissionCritical )
588  {
589  failureMissionCritical_ = failureMissionCritical;
590  }
591 
592  bool simulateHardware();
593 
594 private:
595 
598 
599  RunState runState_; // indication of what state we are running in.
600 
602 
604 
605  bool startRequested_; // true if a start is requested, but not yet possible.
606 
607  bool segfaultRequested_; // true if a segfault has been requested
608 
609  // Note that the copy constructor below is private and not given a body.
610  // Any attempt to call it will return a compiler error.
611  Component( const Component& old ); // disallow copy constructor
612 
614  Component( const Str& name, ComponentType componentType, const Module* module );
615 
616  friend class Handler;
617  friend class CBIT;
618 
619  const Timestamp& getTimeOfFailure( void ) const
620  {
621  return timeOfFailure_;
622  }
623 
624  virtual void setFailTime( Timestamp t )
625  {
626  timeOfFailure_ = t;
627  }
628 
629  friend class CommandLine;
630 
631  void segfault()
632  {
633  segfaultRequested_ = true;
634  }
635 
636  void segfaultImpl();
637 
638 };
639 
643 
644 #endif /* COMPONENT_H_ */
Client-side interface for injecting log data into the log queue.
Definition: Logger.h:30
const Timespan & getPeriod(void)
Returns the component's period (regardless of whether it is periodic)
Definition: Component.h:331
Component(const Component &old)
int allowableFailures_
Number of failures allowed to occur.
Definition: Component.h:519
DataWriter * newDataWriter(const DataURI &dataURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
Definition: Component.cpp:610
A ThreadHandler is a Handler which runs in its own thread.
Definition: ThreadHandler.h:25
virtual Timespan getRetryTimeout(void) const
Definition: Component.h:362
virtual RunState satisfied()
Possible return value of a Behavior.
Definition: Component.h:229
DataWriter * currentWriter_
Definition: Component.h:555
ComponentType
Components can indicate how they want to be handled by their type.
Definition: Component.h:107
bool simulateHardware()
Definition: Component.cpp:486
UniversalBlobReader * newUniversalBlobReader(const UniversalBlobURI &universalURI)
Definition: Component.cpp:622
Definition: Component.h:126
virtual bool setEnabled(bool enabled=true)
Definition: Component.h:572
virtual ConfigURI getConfigURI(ConfigOption configOption, ElementURI forElement) const
Should return [myNamespace]::POWER_[forElement], [myNamespace]::LATENCY_[forElement], etc.
Definition: Component.h:471
void segfaultImpl()
Definition: Component.cpp:674
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
Definition: Component.h:121
UniversalDataWriter * newUniversalWriter(const UniversalURI &universalURI, const Unit &accuracyUnit=Units::NONE, const float accuracy=DataElement::NO_ACCURACY, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
Definition: Component.cpp:656
DataReader * newDataReaderFromUniversal(const Str &componentName, const UniversalURI &universalURI)
Definition: Component.cpp:603
Definition: UniversalURI.h:519
virtual bool isFailed(void) const
Definition: Component.h:342
virtual void execute(void)
Definition: Component.cpp:124
Timespan durationOfLastRun_
Definition: Component.h:492
Definition: ElementURI.h:211
void setPeriod(const Timespan &period)
Set the period of this component... used if it is periodic.
Definition: Component.h:325
void requestPause(const Timespan expectedPauseTime)
Tell the component to pause runnning.
Definition: Component.cpp:350
void registerReader(DataReader *reader)
Definition: Component.cpp:92
virtual RunState runnable()
Should eventually follow a START request or RESETTING.
Definition: Component.h:223
Definition: Component.h:460
virtual RunState stopped()
Should eventually follow a STOP request.
Definition: Component.h:283
Timestamp timeOfFailure_
Time of last failure. Relevant only if failed=true.
Definition: Component.h:528
virtual ConfigURI getConfigURI(ConfigOption configOption) const
Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc.
Definition: Component.h:465
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: DataReader.h:30
RunState runState_
Definition: Component.h:599
virtual int incrementSkippedRunsSinceFail(void)
Definition: Component.h:406
virtual bool isFailureMissionCritical()
Definition: Component.h:374
bool meteringEnabled_
If true, metering is enabled.
Definition: Component.h:546
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
bool segfaultRequested_
Definition: Component.h:607
BlobReader * newBlobReader(const BlobURI &blobURI)
Definition: Component.cpp:547
DataWriter * avgCurrentWriter_
Definition: Component.h:556
void requestStart()
Tell the component to start runnning.
Definition: Component.cpp:322
Definition: Component.h:125
virtual bool getFailureReported(void) const
Definition: Component.h:357
Definition: BlobReader.h:212
virtual RunState paused()
Should eventually follow a PAUSE request: should set continueTime.
Definition: Component.h:247
virtual RunState stop()
Initial state – can be later followed by START.
Definition: Component.h:271
RunState
Definition: Component.h:115
Definition: Component.h:459
Logger logger_
Definition: Component.h:476
bool isFailureUninitialized()
Definition: Component.h:303
Definition: Component.h:130
bool failureUninitialized_
Indicates if the failure has resulted in an uninitialize call.
Definition: Component.h:510
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
const Timespan getPauseTime() const
Definition: Component.h:582
virtual bool getCriticalFailureReported(void) const
Definition: Component.h:352
void requestResume()
Tell the component resume from pause.
Definition: Component.cpp:381
const Timestamp & getWriteTimestamp(void)
Definition: Component.h:414
bool isActive() const
Indicates if the component is active.
Definition: Component.cpp:434
Definition: Component.h:127
virtual void setDt(const Timespan &dt)
Definition: Component.cpp:285
Definition: Component.h:119
runs continuously in its own thread.
Definition: Component.h:95
Behavior is the abstract base class for components that implement mission behaviors and commands...
Definition: Behavior.h:32
virtual RunState pause()
Pause for a short period (indicated by pauseTime)
Definition: Component.h:235
virtual int getSkippedRunsSinceFail(void) const
Definition: Component.h:401
DataReader * newDataReader(const DataURI &dataURI)
Definition: Component.cpp:592
void disableMetering(void)
Definition: Component.h:71
void segfault()
Definition: Component.h:631
const Timestamp & getTimeOfFailure(void) const
Definition: Component.h:619
int failCount_
Number of failures logged by PCaller.
Definition: Component.h:513
void unregisterReader(DataReader *reader)
Definition: Component.cpp:96
The Config class provides static methods for accessing configuration values.
Definition: Config.h:25
virtual void setDurationOfLastRun(const Timespan &span)
Definition: Component.cpp:298
virtual int incrementFailCount(void)
Definition: Component.h:394
int simulateHardware_
Definition: Component.h:603
Definition: UniversalDataReader.h:74
ComponentType getComponentType()
Getter function for ComponentType.
Definition: Component.h:337
void unregisterWriter(DataWriter *writer)
Definition: Component.cpp:112
Timestamp writeTimestamp_
Time of last write.
Definition: Component.h:531
virtual RunState pausing()
Might follow a PAUSE request.
Definition: Component.h:241
bool startRequested_
Definition: Component.h:605
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
void registerWriter(DataWriter *writer)
Definition: Component.cpp:108
Code unit that represents a unique name for a measured quantity.
Definition: UniversalURI.h:29
Definition: BlobWriter.h:227
Provides a simple command line interface to the LRAUV.
Definition: CommandLine.h:38
Definition: Component.h:111
bool enabled_
Definition: Component.h:498
Definition: ElementURI.h:166
virtual RunState resume()
Resume from PAUSE.
Definition: Component.h:253
Contains the DataElement class definition.
Extends the Str class, adding an unsigned short code (actually, the codes are limited to 14 bits...
Definition: CodedStr.h:23
int skippedRunsSinceFail_
Number of skipped runs since failureMode_ set by failCount_.
Definition: Component.h:522
Contains the FlexArrayBase and FlexArray class declarations.
bool persistentPause_
True if data is persistent while component is paused.
Definition: Component.h:559
ComponentType componentType_
This is private, since it should not change.
Definition: Component.h:597
void setRetryTimeout(const Timespan &timeout)
Definition: Component.h:313
DataWriter * voltageWriter_
Definition: Component.h:553
virtual void logVoltage(float voltage, float averageVoltage)
Definition: Component.cpp:516
runs when any of its designated slate inputs have been changed.
Definition: Component.h:99
virtual void setTimeOfRun(const Timestamp &time)
Definition: Component.h:563
DataWriter * durationOfLastRunWriter_
Writer for durationOfLastRun.
Definition: Component.h:550
const Module * module_
Definition: Component.h:541
FailType
Components can fail in a variety of ways.
Definition: FailureMode.h:19
Syslog::Severity debugLevel_
Definition: Component.h:479
void setRecoveringFromCritical(bool boolVal)
Definition: Component.h:293
bool recoveringFromCritical_
Indicates that a component had a previous critical failure that has been cleared temporarily awaiting...
Definition: Component.h:507
bool criticalFailureReported_
Indicates if a "Critical" failure has been reported – cuts down on syslog.
Definition: Component.h:504
UniversalBlobWriter * newUniversalBlobWriter(const UniversalBlobURI &universalURI, const Unit &accuracyUnit=Units::NONE, const float accuracy=DataElement::NO_ACCURACY, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
Definition: Component.cpp:629
Abstract Base class for software components that run in the computation cycle.
Definition: SyncComponent.h:22
virtual void setAllowableFailures(int fails)
Definition: Component.h:384
void requestData(bool requestingData)
Tell the component to start (or stop) sending data.
Definition: Component.cpp:312
Not really a component, but a class that can be merged with a Component to wrap code that is scripted...
Definition: ScriptComponent.h:23
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
void requestStop()
Tell the component to stop runnning.
Definition: Component.cpp:407
ConfigReader * simulateHardwareReader_
Definition: Component.h:601
virtual void initialize()
Provide a space for initialization before being run.
Definition: Component.h:134
Definition: Component.h:124
Definition: Component.h:117
ConfigReader * newConfigReader(const ConfigURI &configURI)
Definition: Component.cpp:578
virtual FailureMode::FailType getFailureType(void) const
Definition: Component.h:347
virtual void resetFailCount(void)
Definition: Component.cpp:259
Replacement for standard template class string.
Definition: Str.h:12
FlexArray< DataReader * > readers_
Definition: Component.h:536
Timespan pauseTime_
Definition: Component.h:543
Base class for "handlers" of Components.
Definition: Handler.h:49
Abstract Base class for software components.
Definition: Component.h:53
virtual bool isCompleted(void)
Query if this component is completed.
Definition: Component.h:319
BlobWriter * newBlobWriter(const BlobURI &blobURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
Definition: Component.cpp:566
virtual RunState resuming()
Might follow a PAUSE...RESUME sequence.
Definition: Component.h:259
TimePrecisionType
Definition: Logger.h:37
FlexArray< DataWriter * > writers_
Definition: Component.h:537
ComponentState
In this model, the component has basically two states: wanting to run, and completed (no longer needi...
Definition: Component.h:92
completed
Definition: Component.h:101
virtual void uninitialize()
Provide a space for uninitialization.
Definition: Component.h:148
virtual RunState starting()
Might follow a STOP...START sequence Subseqent.
Definition: Component.h:216
ComponentState getState(void)
Return the component's current state.
Definition: Component.h:169
Definition: UniversalDataWriter.h:55
virtual void setFailTime(Timestamp t)
Definition: Component.h:624
Definition: FailureMode.h:21
Definition: ConfigReader.h:13
CodedStr & name_
Store the component's name (used for logging purposes)
Definition: Component.h:488
bool failureReported_
Indicates if the failure has been reported – cuts down on syslog.
Definition: Component.h:501
void setFailureReported(bool boolVal)
Definition: Component.h:298
const Timestamp & getTimeOfLastRun(void) const
Definition: Component.h:163
Definition: Component.h:112
Definition: Component.h:128
Abstract Base class for software components that run independently from the computation cycle...
Definition: AsyncComponent.h:20
virtual RunState stopping()
Might follow a STOP request.
Definition: Component.h:277
Definition: Component.h:122
bool isUsingRunState()
Return true if using runState.
Definition: Component.h:187
Contains the Logger class definition.
bool failureMissionCritical_
If true (default), complete failure ends mission.
Definition: Component.h:516
Contains the CodedStr class declaration.
RunState getRunState(void)
Return the component's run state.
Definition: Component.h:181
Definition: Component.h:110
FlexArray< Component * > ListOfComponents
Define a type for a "list of component pointers".
Definition: Component.h:642
void setFailureUninitialized(bool boolVal)
Definition: Component.h:308
Definition: ElementURI.h:229
const Module * getModule()
Definition: Component.h:79
UniversalDataReader * newUniversalReader(const UniversalURI &universalURI)
Definition: Component.cpp:649
FlexArray< DataWriter * > & getWriterList(void)
Definition: Component.cpp:87
Timespan retryTimeout_
Definition: Component.h:496
virtual RunState start()
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Definition: Component.h:209
ComponentState state_
Keep track of whether the component has "completed" or should be run again.
Definition: Component.h:484
const CodedStr & getName(void) const
Returns the name.
Definition: Component.h:158
Timestamp timeOfRun_
Definition: Component.h:490
virtual FailureMode::FailType setFailure(FailureMode::FailType failureType)
Definition: Component.cpp:228
Timespan desiredPeriod_
Definition: Component.h:485
Definition: Component.h:109
FailureMode::FailType failureType_
Failed status. If failCount_ > 0, then this may be reset.
Definition: Component.h:525
Contains the FailureMode class definition.
static const BaseUnit NONE
Definition: Units.h:208
Logger & getLogger(void)
Definition: Component.h:389
Severity
An attempt to define different levels of syslog severity.
Definition: Syslog.h:28
virtual int getAllowableFailures(void) const
Definition: Component.h:379
Definition: Component.h:461
Code unit that represents a unique name for a DataElement.
Definition: ElementURI.h:27
Contains the Timestamp and Timespan class declarations.
Definition: Component.h:129
Definition: Component.h:123
FlexArray< DataReader * > & getReaderList(void)
Definition: Component.cpp:83
unknown
Definition: Component.h:103
static const ConfigURI NO_CONFIG_URI
Definition: ElementURI.h:188
virtual RunState resetting()
Might occur in case of Error.
Definition: Component.h:265
Definition: Logger.h:40
ConfigOption
Definition: Component.h:456
Timestamp timeOfLastRun_
Definition: Component.h:491
virtual void run()
The actual "payload" of the component.
Definition: Component.h:144
*uLong * dt
Definition: ZipEncoder.cpp:36
void setWriteTimestamp(const Timestamp &writeTimestamp)
Definition: Component.h:419
void setState(ComponentState state)
Definition: Component.h:175
virtual void setTimeOfLastRun(const Timestamp &time)
Definition: Component.cpp:272
virtual void setFailureMissionCritical(bool failureMissionCritical)
Definition: Component.h:587
virtual void configure()
Read (or re-read!) configuration settings.
Definition: Component.h:138
virtual void logCurrent(float current, float averageCurrent)
Definition: Component.cpp:532
DataWriter * avgVoltageWriter_
Definition: Component.h:554
Code that represents an engineering unit.
Definition: Unit.h:24
Definition: Component.h:458
Timespan dt_
Definition: Component.h:493
void setRunState(const RunState runState)
Definition: Component.cpp:464
BlobReader * newBlobReaderFromUniversal(const Str &componentName, const UniversalBlobURI &blobURI)
Definition: Component.cpp:558
Definition: Component.h:118
Represents absolute times.
Definition: Timestamp.h:31
static const float NO_ACCURACY
Defines an accuracy quantity which means "no accuracy specified" typically means "don't use" i...
Definition: DataElement.h:73
runs periodically – likely in its own thread.
Definition: Component.h:97
virtual ~Component()
Destructor cleans up readers_ and writers_.
Definition: Component.cpp:65
void setCriticalFailureReported(bool boolVal)
Definition: Component.h:288
The CBIT built-in-test (CBIT) component provides monitoring of vehicle health during a mission...
Definition: CBIT.h:38
Definition: Component.h:120
virtual int getFailCount(void) const
Definition: Component.h:369