LRAUV  revA
Tracking.h
Go to the documentation of this file.
1 
12 #ifndef TRACKING_H_
13 #define TRACKING_H_
14 
15 #include "component/Behavior.h"
16 #include "data/Location.h"
17 #include "logger/Logger.h"
18 #include "data/Matrix3x3.h"
19 #include "data/Point3D.h"
20 #include "data/Point6D.h"
21 
24 class BlobReader;
25 
47 class Tracking : public Behavior
48 {
49 public:
50 
51  Tracking( const Str& prefix, const Module* module );
52 
53  virtual ~Tracking();
54 
56  void initialize( void );
57 
59  void run( void );
60 
62  void uninitialize( void );
63 
65  static Behavior* CreateBehavior( const Str& prefix, const Module* module );
66 
67 protected:
68 
69  // XML input
71  SettingReader *numSamplesReader_; // e.g., 20 count
72  SettingReader *updatePeriodReader_; // e.g., 5 minutes
73 
74 private:
75  // Note that the copy constructor below is private and not given a body.
76  // Any attempt to call it will return a compiler error.
77  Tracking( const Tracking& old ); // disallow copy constructor
78 
79  // Slate inputs
84  // inputs from DAT
88 // DataReader *relPosOfContactReader_;
89 
90  // Slate outputs
103  BlobWriter* vRelPosWriter_; // TODO displacement instead of relPos?
104  BlobWriter* nRelPosWriter_; // TODO displacement instead of relPos?
105 
106  // Parameters to pass to DAT driver
110 
117 
118  // Timeouts for for pinging
121 
122  // returns true if data is requested from one of the readers
123  bool isDataRequested();
124 
125  void requestVehiclePose( bool req );
126 
127  void requestAcousticData( bool req );
128 
129  // reads settings from the mission
130  void readSettings();
131 
132  // Query DAT for observations of contact
133  void queryDAT();
134 
135  bool readFromDAT();
136 
140  bool processFromDAT();
141 
142  void writeData();
143 
153  void unitVectorToAzimuthAndElevation( Point3D &uhat, float &azimuth, float &elevation );
154 
155 };
156 
157 #endif /*TRACKING_H_*/
Contains a 3x3 array of double precision floating point numbers, along with methods for performing co...
Definition: Matrix3x3.h:27
DataWriter * elevationToContactWriter_
Definition: Tracking.h:97
BlobWriter * vDirectionWriter_
Definition: Tracking.h:101
float azimuthInNED_
Definition: Tracking.h:115
Contains the Tracking component.
Definition: Tracking.h:47
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
DataWriter * numPingsWriter_
Definition: Tracking.h:109
int verbosity_
Definition: Tracking.h:111
bool isDataRequested()
float elevationInNED_
Definition: Tracking.h:115
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: DataReader.h:30
SettingReader * contactLabelReader_
Definition: Tracking.h:70
void uninitialize(void)
Uninit function.
Definition: Tracking.cpp:100
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
void run(void)
The actual "payload" of the component.
Definition: Tracking.cpp:160
BlobWriter * vRelPosWriter_
Definition: Tracking.h:103
DataWriter * rangeToContactWriter_
Definition: Tracking.h:95
Definition: BlobReader.h:212
Point3D directionInNED_
Definition: Tracking.h:116
virtual ~Tracking()
Definition: Tracking.cpp:89
Timestamp dataStartTime_
Definition: Tracking.h:119
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
Timespan updatePeriod_
Definition: Tracking.h:120
DataWriter * contactDepthWriter_
Definition: Tracking.h:94
Behavior is the abstract base class for components that implement mission behaviors and commands...
Definition: Behavior.h:32
Contains the Point3D class definition.
SettingReader * numSamplesReader_
Definition: Tracking.h:71
int numberOfSamplesSetting_
Definition: Tracking.h:113
DataWriter * benthosAddressWriter_
Definition: Tracking.h:107
void requestVehiclePose(bool req)
Definition: Tracking.cpp:107
Definition: UniversalDataReader.h:74
double contactDepth_
Definition: Tracking.h:114
DataWriter * contactLongitudeWriter_
Definition: Tracking.h:93
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
Definition: BlobWriter.h:227
int contactLabel_
Definition: Tracking.h:113
int queryModeSetting_
Definition: Tracking.h:113
Wraps three double precision (8-byte) floating point numbers.
Definition: Point3D.h:28
void writeData()
Definition: Tracking.cpp:284
Contains the Behavior class definition.
DataReader * rangeToContactReader_
Definition: Tracking.h:86
int contactLabelSetting_
Definition: Tracking.h:113
DataWriter * northingsToContactWriter_
Definition: Tracking.h:100
void queryDAT()
Definition: Tracking.cpp:193
double contactLatitude_
Definition: Tracking.h:114
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
void readSettings()
Definition: Tracking.cpp:122
UniversalBlobReader * vehicleOrientationReader_
Definition: Tracking.h:83
DataReader * longitudeReader_
Definition: Tracking.h:81
Replacement for standard template class string.
Definition: Str.h:12
void unitVectorToAzimuthAndElevation(Point3D &uhat, float &azimuth, float &elevation)
Convert a direction represented as a unit vector to angles of azimuth and elevation.
Definition: Tracking.cpp:322
Point3D relPosInFSK_
Definition: Tracking.h:116
DataWriter * contactLabelWriter_
Definition: Tracking.h:91
DataReader * benthosAddressReader_
Definition: Tracking.h:85
BlobWriter * nRelPosWriter_
Definition: Tracking.h:104
bool processFromDAT()
Transform observations into North-East-Down coordinate frame, and (optionally) average several observ...
Definition: Tracking.cpp:225
Contains the Logger class definition.
Point3D relPosInNED_
Definition: Tracking.h:116
void requestAcousticData(bool req)
Definition: Tracking.cpp:115
Contains the Matrix3x3 class definition.
Reads values from mission settings.
Definition: SettingReader.h:26
bool readFromDAT()
Definition: Tracking.cpp:202
DataReader * latitudeReader_
Definition: Tracking.h:80
DataWriter * azimuthToContactWriter_
Definition: Tracking.h:96
DataWriter * headingToContactWriter_
Definition: Tracking.h:98
BlobWriter * nDirectionWriter_
Definition: Tracking.h:102
DataWriter * onewayModeRequestedWriter_
Definition: Tracking.h:108
double rangeToContact_
Definition: Tracking.h:114
Matrix3x3 rotationFromVehicleToNavigationFrame_
Definition: Tracking.h:112
DataWriter * contactLatitudeWriter_
Definition: Tracking.h:92
DataWriter * eastingsToContactWriter_
Definition: Tracking.h:99
DataReader * depthReader_
Definition: Tracking.h:82
double contactLongitude_
Definition: Tracking.h:114
void initialize(void)
Initialize function.
Definition: Tracking.cpp:92
Contains the Location class definition.
static Behavior * CreateBehavior(const Str &prefix, const Module *module)
Mission Component factory interface.
Definition: Tracking.cpp:188
float elevationInFSK_
Definition: Tracking.h:115
BlobReader * directionToContactReader_
Definition: Tracking.h:87
Represents absolute times.
Definition: Timestamp.h:31
Point3D directionInFSK_
Definition: Tracking.h:116
SettingReader * updatePeriodReader_
Definition: Tracking.h:72
float azimuthInFSK_
Definition: Tracking.h:115
Tracking(const Str &prefix, const Module *module)
Definition: Tracking.cpp:27
Contains the Point6D class definition.