9 #ifndef _OFFSHOREENVELOPE_TEST_H_
10 #define _OFFSHOREENVELOPE_TEST_H_
31 #include <cxxtest/TestSuite.h>
66 Str chartsCfg(
"US1WC07M,US2WC11M,US3CA52M,US4CA60M,US5CA50M,US5CA61M,US5CA62M,US5CA83M" );
69 int maxLoops = 1000000;
70 while( !navChartDb.
ready() && maxLoops > 0 )
76 TS_ASSERT_LESS_THAN( 0, maxLoops );
84 MissionNode offshoreEnvelopeNode(
"Guidance:OffshoreEnvelope" );
85 offshoreEnvelopeNode.
setAttribute(
"RunIn",
"parallel" );
87 minOffshoreSettingNode->
appendChild(
"Guidance:OffshoreEnvelope.minOffshore" );
88 minOffshoreSettingNode->
appendChild(
"Units:meter" );
91 maxOffshoreSettingNode->
appendChild(
"Guidance:OffshoreEnvelope.maxOffshore" );
92 maxOffshoreSettingNode->
appendChild(
"Units:meter" );
116 double latitude =
D2R( 36.8 );
117 double longitude =
D2R( -121.8 );
118 float orientation = M_PI_2;
126 for(
int i = 0; i < 1000; ++i )
134 float yaw_step = M_PI / 36 * period;
137 float heading( M_PI_2 );
139 for(
int i = 0; i < 100; ++i )
148 bool readOk = readerControlHeadingMode->
read(
Units::ENUM, horizontalMode );
154 TS_ASSERT_LESS_THAN( 0.0, speed );
158 TS_ASSERT_DIFFERS( heading, M_PI_2 );
160 if( heading != orientation )
162 float diff = fabs( heading - orientation );
163 if( diff > yaw_step )
165 float step = diff / ( heading - orientation ) * yaw_step;
170 orientation = heading;
178 delete offshoreEnvelopeMissionItem;
181 TS_ASSERT_LESS_THAN( longitude,
D2R( -121.80 ) );
189 #endif // _OFFSHOREENVELOPE_TEST_H
MissionNode * appendChildText(const char *text)
Definition: MissionNode.cpp:227
static const Timespan ZERO_TIMESPAN
Constant value to represent instant of time.
Definition: Timestamp.h:255
Contains the AsyncComponent class definition.
static MissionItem * Instance(MissionItem *parent, MissionNode *node, unsigned int tablePos, Logger &logger)
Returns an instance, or NULL if an instance can't be returned.
Definition: MissionItem.cpp:69
Units tests for OffshoreEnvelope class.
Definition: OffshoreEnvelope_Test.h:38
void initialize(void)
Initialize function.
Definition: NavChart.cpp:38
bool setAttribute(const char *name, const char *value)
Definition: MissionNode.cpp:168
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
Wraps a Behavior or Aggregate with mission-specific settings pertaining to that item.
Definition: MissionItem.h:31
virtual void execute(void)
Definition: Component.cpp:124
static const UniversalURI LATITUDE_FIX
latitude_fix, as internally defined as a location measurement obtained by an absolute positioning sen...
Definition: UniversalURI.h:153
static const UniversalURI PLATFORM_ORIENTATION
platform_orientation, as defined by CF-metadata The platform orientation is the direction in which th...
Definition: UniversalURI.h:278
void initialize(void)
Initialize function.
Definition: OffshoreEnvelope.cpp:56
virtual bool write(const Unit &unit, const unsigned char value, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Sets the Component's DataValue, with an optional timestamp.
Definition: DataWriter.cpp:71
Contains the BehaviorRegistry class declaration.
void setChartsCfg(const Str chartsCfg)
Definition: NavChartDb.cpp:172
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: DataReader.h:30
Contains the various /ref logging Rule class definitions that are used by LogEngine to determine whic...
#define D2R(x)
A macro for converting degrees to radians.
Definition: AuvMath.h:40
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
virtual void uninitialize()
Provide a space for uninitialization.
Definition: NavChartDb.cpp:668
Contains the MissionItem class declaration.
Contains the TextLogWriter class definition.
LogEngine syslogEngine_
Definition: OffshoreEnvelope_Test.h:42
Contains the Config class definition.
Wraps a c FILE* handle with an OutStream class.
Definition: FileOutStream.h:26
DataReader * newDataReader(const DataURI &dataURI)
Definition: Component.cpp:592
Definition: HorizontalControlIF.h:74
Reads a standard electronic navigation chart (ENC) in S-57 format, stores it in a database...
Definition: NavChartDb.h:30
static const BaseUnit METER_PER_SECOND
Definition: Units.h:86
static void Insert(const Str &baseName, BehaviorCreator behaviorCreator, const Module *module)
Add the base name and BehaviorCreator to the map.
Definition: BehaviorRegistry.cpp:31
Definition: LogEntry.h:44
virtual void initialize()
Provide a space for initialization before being run.
Definition: NavChartDb.cpp:177
static const BaseUnit RADIAN
Definition: Units.h:60
Contains the NavChart class declaration.
static void Uninitialize()
Uninitializes the map.
Definition: BehaviorRegistry.cpp:21
Contains the NavChartDb class declaration.
A logging Rule which matches against a given LogEntry::Type.
Definition: LoggerRules.h:147
virtual void tearDown(void)
Definition: OffshoreEnvelope_Test.h:45
static Behavior * CreateBehavior(const Str &prefix, const Module *module)
Mission Component factory interface.
Definition: OffshoreEnvelope.cpp:259
Wraps a TiXmlNode.
Definition: MissionNode.h:20
Replacement for standard template class string.
Definition: Str.h:12
Component responsible for handling the contents of the LogQueue.
Definition: LogEngine.h:63
Contains the OffshoreEnvelope class declaration.
Contains the LogEngine class definition.
Specifies the interface details for the SpeedControl component in the ControlModule.
bool read(const Unit &unit, unsigned char &readTo)
Get functions.
Definition: DataReader.cpp:82
virtual void testRun(void)
Definition: OffshoreEnvelope_Test.h:59
static const UniversalURI LONGITUDE
longitude is positive eastward; its units of degree_east (or equivalent) indicate this explicitly...
Definition: UniversalURI.h:169
virtual LogAssociation * addAssociation(LogWriter *writer, Rule *rule)
Add an entry to the LoggerAssociations table.
Definition: LogEngine.cpp:125
void uninitialize(void)
Uninit function.
Definition: NavChart.cpp:106
Contains the Units class declaration.
Contains the MissionNode class definition.
Definition: HorizontalControlIF.h:76
MissionNode * appendChild(const char *name)
Definition: MissionNode.cpp:219
Over simplified NavChart component.
Definition: NavChart.h:32
void processQueue(const Timespan &timeout)
Pop log entries from the queue and deal with them as appropriate.
Definition: LogEngine.cpp:59
Contains the OffshoreEnvelope Behavior/Command.
Definition: OffshoreEnvelope.h:35
Contains the DataWriter class definition.
static const BaseUnit ENUM
Definition: Units.h:229
Logger & getLogger(void)
Definition: Component.h:389
static void AtBearing(const float bearing, const float distance, double &lat, double &lon)
Definition: Location.cpp:348
static void Initialize()
Initializes the map.
Definition: BehaviorRegistry.cpp:15
static const Unit DEGREE
Definition: Units.h:132
Dummy implementation of AsyncComponent for testing purposes.
Definition: TestAsyncComponent.h:19
static const UniversalURI LATITUDE
latitude is positive northward; its units of degree_north (or equivalent) indicate this explicitly...
Definition: UniversalURI.h:147
bool ready()
Definition: NavChartDb.h:66
Contains the FileOutStream class declaration.
Defines a simple LogWriter that takes LogEntries and serializes them as text values to a stream...
Definition: TextLogWriter.h:25
Behavior * getComponent() const
Returns the mission component.
Definition: MissionItem.h:49
Specifies the interface details for the OffshoreEnvelope component in the GuidanceModule.
void uninitialize(void)
Uninit function.
Definition: OffshoreEnvelope.cpp:251
Contains the Slate class definition.