LRAUV  revA
CANONSampler.h
Go to the documentation of this file.
1 
12 #ifndef CANONSampler_H
13 #define CANONSampler_H
14 
16 #include "io/LoadControl.h"
17 #include "io/UartStream.h"
18 #include "logger/Logger.h"
19 
20 #include "CANONSamplerIF.h"
21 
23 
31 {
32 public:
33 
34  CANONSampler( const Module* module );
35 
36  virtual ~CANONSampler();
37 
38  virtual void run();
39 
42  virtual RunState start();
43 
45  virtual RunState starting();
46 
48  virtual RunState pause();
49 
51  virtual RunState paused();
52 
54  virtual RunState resume();
55 
57  virtual RunState resuming();
58 
60  virtual RunState runnable();
61 
63  virtual RunState resetting()
64  {
65  return start();
66  }
67 
69  virtual RunState stop();
70 
71  virtual RunState stopping();
72 
74  virtual RunState stopped();
75 
76  void uninitialize( void );
77 
79  virtual ConfigURI getConfigURI( ConfigOption configOption ) const;
80 
81 private:
82  // Note that the copy constructor below is private and not given a body.
83  // Any attempt to call it will return a compiler error.
84  CANONSampler( const CANONSampler& old ); // disallow copy constructor
85 
86  // Logs output from sampler and returns true if sample complete
87  bool sampleStatus();
88 
89  // returns true if data is requested from one of the readers
90  bool isDataRequested();
91 
92  // Queries the LCBs for status
93  bool logVoltageAndCurrent();
94 
95  // Update config parameters
96  bool readConfig();
97 
98  // Get simulation data
99  bool getSimulatedData();
100 
101  // Write data to the slate
102  void writeData();
103 
104  // Stores the current response from the device
105  char deviceResponse_[396];
106 
109 
112 
115 
116  // Outputs to slate
119 
121  bool debug_;
122 
127 
128  // Used to save state since there are long potential waiting periods for this device to respond
130  {
134  };
136 
137 };
138 #endif /*CANONSampler_H*/
virtual ConfigURI getConfigURI(ConfigOption configOption) const
Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc.
Definition: CANONSampler.cpp:404
bool logVoltageAndCurrent()
Definition: CANONSampler.cpp:357
ConfigReader * sampleTimeoutCfgReader_
Config readers.
Definition: CANONSampler.h:114
Contains the SyncComponent class definition.
Contains the LoadControl class declaration.
virtual RunState resume()
Resume from PAUSE.
Definition: CANONSampler.cpp:139
void writeData()
Definition: CANONSampler.cpp:472
char deviceResponse_[396]
Definition: CANONSampler.h:105
Abstract Base class for components that collect data for use later in the computation cycle...
Definition: SyncComponent.h:172
SampleState sampleState_
Definition: CANONSampler.h:135
DataWriter * samplingActiveWriter_
Definition: CANONSampler.h:117
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
LoadControl loadControl_
Power and comms in this case.
Definition: CANONSampler.h:111
SampleState
Definition: CANONSampler.h:129
RunState
Definition: Component.h:115
Contains the UartStream class declaration.
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
Timespan poTimeout_
Definition: CANONSampler.h:124
void uninitialize(void)
Provide a space for uninitialization.
Definition: CANONSampler.cpp:390
Implements both InStream and OutStream for the LPC3XXX Standard UART.
Definition: UartStream.h:26
Definition: CANONSampler.h:132
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
Definition: ElementURI.h:166
CANONSampler(const Module *module)
Definition: CANONSampler.cpp:23
bool getSimulatedData()
Definition: CANONSampler.cpp:448
virtual void run()
The actual "payload" of the component.
Definition: CANONSampler.cpp:54
Definition: CANONSampler.h:131
int sampleNumber_
Definition: CANONSampler.h:126
bool samplingActive_
Definition: CANONSampler.h:125
virtual RunState pause()
Pause for a short period (indicated by pauseTime)
Definition: CANONSampler.cpp:122
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
bool isDataRequested()
Definition: CANONSampler.cpp:383
DataWriter * sampleNumberWriter_
Definition: CANONSampler.h:118
virtual RunState stopping()
Might follow a STOP request.
Definition: CANONSampler.cpp:324
Timestamp sampleTime_
Definition: CANONSampler.h:123
bool readConfig()
Definition: CANONSampler.cpp:440
This class allows one to control loads on a load controller channel.
Definition: LoadControl.h:24
virtual RunState resuming()
Might follow a PAUSE...RESUME sequence.
Definition: CANONSampler.cpp:147
virtual RunState stopped()
Initial state – can be later followed by START.
Definition: CANONSampler.cpp:346
Definition: CANONSampler.h:133
Definition: ConfigReader.h:13
virtual RunState stop()
Initial state – can be later followed by START.
Definition: CANONSampler.cpp:300
Specifies the interface details for the CANONSampler component in the ScienceModule.
Contains the Logger class definition.
virtual RunState start()
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Definition: CANONSampler.cpp:61
Timespan sampleTimeout_
Definition: CANONSampler.h:124
bool sampleStatus()
Definition: CANONSampler.cpp:418
virtual RunState resetting()
Might occur in case of Error.
Definition: CANONSampler.h:63
virtual RunState runnable()
Should eventually follow a START request or RESETTING.
Definition: CANONSampler.cpp:155
virtual RunState starting()
Might follow a STOP...START sequence.
Definition: CANONSampler.cpp:101
virtual RunState paused()
Should eventually follow a PAUSE request: should set continueTime.
Definition: CANONSampler.cpp:131
UartStream uart_
Holds the communications device.
Definition: CANONSampler.h:108
Provides software interface to the CANONSampler sensor.
Definition: CANONSampler.h:30
ConfigOption
Definition: Component.h:456
bool debug_
Debugging outputs.
Definition: CANONSampler.h:121
Represents absolute times.
Definition: Timestamp.h:31
virtual ~CANONSampler()
Definition: CANONSampler.cpp:50