LRAUV  revA
ExternalSim.h
Go to the documentation of this file.
1 
12 #ifndef EXTERNALSIM_H_
13 #define EXTERNALSIM_H_
14 
15 #include "SimHeadStruct.h"
16 #include "SimInitStruct.h"
17 #include "SimResultStruct.h"
18 #include "SimRunStruct.h"
19 
21 #include "data/Location.h"
22 #include "data/Matrix6x6.h"
23 #include "data/Point3D.h"
24 #include "data/Point6D.h"
25 #include "io/SocketClient.h"
26 #include "utils/AuvMath.h"
27 #include "utils/Datum.h"
28 #include "utils/Timestamp.h"
29 
30 class ConfigReader;
32 
43 {
44 
45 public:
47  ExternalSim( const Module* module );
48 
50  virtual ~ExternalSim();
51 
53  virtual void initialize( void );
54 
56  virtual void run( void );
57 
59  virtual void uninitialize( void );
60 
61 private:
62 
65 
68  int addr_;
71  int pid_;
72 
74  bool ok_;
75 
76  // write State to Slate
77  virtual void publishState( float entrainedBuoyancy );
78 
79  // configuration readers
81 
82  //*------------------- slate variables -----------------------*/
83 
110  //DataWriter* utmZoneWriter_;
111  //DataWriter* northernHemiWriter_;
112 
113  // AHRS specific parameters:
114  // Default amplitude on additive noise (in radians)
115  static const double DEFAULT_AHRS_NOISE_AMPLITUDE;
117  // Slate inputs
119 
120  //----------------------------------------------------------------
121  // Depth specific parameters:
122  // Default value for the depthadditive noise amplitude (in meters)
123  static const double DEFAULT_DEPTH_NOISE_AMPLITUDE;
125  // Slate inputs
127 
128  //----------------------------------------------------------------
129  // Tailcone specific parameters:
130  // The inputs
142 
144  float altitude_;
145 
146  float buoyancyNeutralOffset_; // Value added to buoyancy in the ExternalSim to achieve "True" neutral
147  float massPositionOffset_; // Value added to mass position in the ExternalSim to achieve "True" zero pitch
148  float entrainedAir_; // Amount of entrained air in vehicle
149  float bottomLockGone_; // Altitude greater than this value results in loss of bottom lock simulated
150 
152  Timespan homingSensorTat_; // Homing sensor turn-around time.
155 
156  double beaconLat_;
157  double beaconLon_;
158  double beaconDepth_;
159  double bcnN_;
160  double bcnE_;
161 
162  //----------------------------------------------------------------
163  // Communications
166  char params_[ sizeof( SimHeadStruct ) + sizeof( SimRunStruct )];
168 
169 };
170 
171 #endif /*EXTERNALSIM_H_*/
static const double DEFAULT_DEPTH_NOISE_AMPLITUDE
Default value for additive noise (in +/- meters)
Definition: ExternalSim.h:123
Implements a Socket client for communicating with SocketServer instances.
Definition: SocketClient.h:20
DataWriter * positionXDotWriter_
Definition: ExternalSim.h:98
DataWriter * positionHeadingWriter_
Definition: ExternalSim.h:97
Contains the SyncComponent class definition.
float altitude_
Definition: ExternalSim.h:144
DataWriter * positionXWriter_
Definition: ExternalSim.h:92
DataReader * massPositionReader_
Definition: ExternalSim.h:140
ConfigReader * simDaemonServerCfgReader_
Definition: ExternalSim.h:80
Contains the CodedStr class declaration.
Contains the Matrix6x6 class definition.
DataWriter * homingSensorRangeWriter_
Definition: ExternalSim.h:107
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
DataWriter * forceZWriter_
Definition: ExternalSim.h:91
DataWriter * latitudeWriter_
Definition: ExternalSim.h:84
DataWriter * propThrustWriter_
Definition: ExternalSim.h:86
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: DataReader.h:30
DataWriter * netBuoyWriter_
Definition: ExternalSim.h:88
Abstract Base class for components that run towards the start of the computation cycle, simulating sensor inputs since the last cycle.
Definition: SyncComponent.h:160
ExternalSim(const Module *module)
Constructor.
Definition: ExternalSim.cpp:54
DataWriter * positionZDotWriter_
Definition: ExternalSim.h:100
DataReader * depthNoiseAmplitudeReader_
Definition: ExternalSim.h:126
Interfaces via TCP/IP with a SimDaemon to provide dynamic and environmental simulation of the vehicle...
Definition: ExternalSim.h:42
DataReader * propOmegaActionReader_
Definition: ExternalSim.h:131
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
virtual ~ExternalSim()
Destructor.
Definition: ExternalSim.cpp:162
DataWriter * homingSensorElevWriter_
Definition: ExternalSim.h:109
char params_[sizeof(SimHeadStruct)+sizeof(SimRunStruct)]
Definition: ExternalSim.h:166
DataWriter * rateQWriter_
Definition: ExternalSim.h:105
Contains the Point3D class definition.
DataWriter * propTorqueWriter_
Definition: ExternalSim.h:87
DataWriter * rateWWriter_
Definition: ExternalSim.h:103
int addr_
The internet address of this machine.
Definition: ExternalSim.h:68
DataWriter * ratePWriter_
Definition: ExternalSim.h:104
float bottomLockGone_
Definition: ExternalSim.h:149
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
DataWriter * forceYWriter_
Definition: ExternalSim.h:90
A struct that is passed from the LRAUV to the Simulator before either SimInitStruct or SimRunStruct...
Definition: SimHeadStruct.h:20
double beaconDepth_
Definition: ExternalSim.h:158
DataReader * elevatorAngleReader_
Definition: ExternalSim.h:138
DataReader * dropWeightStateReader_
Definition: ExternalSim.h:136
Contains the AuvMath class declaration.
SimRunStruct runParams_
Definition: ExternalSim.h:165
bool calcHoming_
Definition: ExternalSim.h:153
DataWriter * homingSensorAzimWriter_
Definition: ExternalSim.h:108
virtual void publishState(float entrainedBuoyancy)
Definition: ExternalSim.cpp:408
double beaconLat_
Definition: ExternalSim.h:156
DataWriter * rateRWriter_
Definition: ExternalSim.h:106
DataReader * buoyancyPositionReader_
Definition: ExternalSim.h:141
bool useGeographic_
Definition: ExternalSim.h:154
DataReader * rudderAngleActionReader_
Definition: ExternalSim.h:133
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
Contains the SimHeadStruct class declaration.
double ahrsNoiseAmplitude_
Definition: ExternalSim.h:116
DataReader * propOmegaReader_
Definition: ExternalSim.h:137
DataWriter * forceXWriter_
Definition: ExternalSim.h:89
SimHeadStruct()
Constructor.
Definition: SimHeadStruct.h:81
DataWriter * longitudeWriter_
Definition: ExternalSim.h:85
SimResultStruct results_
Definition: ExternalSim.h:167
A struct of values that is passed from the LRAUV to the Simulator, to run one timestep of the simulat...
Definition: SimRunStruct.h:18
Contains the SocketClient class declaration.
DataReader * buoyancyActionReader_
Definition: ExternalSim.h:135
float buoyancyNeutralOffset_
Definition: ExternalSim.h:146
UniversalDataReader * altitudeReader_
Definition: ExternalSim.h:143
A struct of values that is passed from the Simulator to the LRAUV, with the results from one timestep...
Definition: SimResultStruct.h:18
Definition: ConfigReader.h:13
Contains the SimRunStruct class declaration.
Contains the SimResultStruct class declaration.
DataWriter * positionYWriter_
Definition: ExternalSim.h:93
double bcnN_
Definition: ExternalSim.h:159
int pid_
The user id running this process.
Definition: ExternalSim.h:71
float entrainedAir_
Definition: ExternalSim.h:148
SimHeadStruct head_
Definition: ExternalSim.h:164
double bcnE_
Definition: ExternalSim.h:160
virtual void initialize(void)
Initialize the simulator.
Definition: ExternalSim.cpp:166
double beaconLon_
Definition: ExternalSim.h:157
bool ok_
Indicates wheter the external sim is running.
Definition: ExternalSim.h:74
DataReader * ahrsNoiseAmplitudeReader_
Definition: ExternalSim.h:118
DataWriter * rateUWriter_
Definition: ExternalSim.h:101
DataReader * massPositionActionReader_
Definition: ExternalSim.h:134
DataWriter * positionYDotWriter_
Definition: ExternalSim.h:99
double depthNoiseAmplitude_
Definition: ExternalSim.h:124
DataReader * elevatorAngleActionReader_
Definition: ExternalSim.h:132
Contains the Timestamp and Timespan class declarations.
virtual void run(void)
Run the simulation.
Definition: ExternalSim.cpp:277
Timespan homingSensorTat_
Definition: ExternalSim.h:152
Contains the SimInitStruct class declaration.
DataWriter * rateVWriter_
Definition: ExternalSim.h:102
float massPositionOffset_
Definition: ExternalSim.h:147
Timestamp startTime_
Definition: ExternalSim.h:151
DataWriter * positionPitchWriter_
Definition: ExternalSim.h:96
Contains the Location class definition.
DataWriter * positionRollWriter_
Definition: ExternalSim.h:95
SocketClient * socketClient_
The socket to the dynamic simulator.
Definition: ExternalSim.h:64
static const double DEFAULT_AHRS_NOISE_AMPLITUDE
Definition: ExternalSim.h:115
DataWriter * positionZWriter_
Definition: ExternalSim.h:94
virtual void uninitialize(void)
Uninitialize the simulation.
Definition: ExternalSim.cpp:402
Represents absolute times.
Definition: Timestamp.h:31
DataReader * rudderAngleReader_
Definition: ExternalSim.h:139
Contains the Point6D class definition.