<!-- ====================================================================== -->
<!-- Baseline Rover configuration settings -->
<!-- -->
<RoverConfig>

	<!-- ====================================================================== -->
	<!-- Mission State used for re-starting. Items in this section are read/write by
             the control system. -->
	<State>
		
		<!-- Phase (Launch | Movement | Measure | Done -->
		<SavedPhase units='' value='Launch' comment=''/>
		
		<!-- Current Cycle -->
		<SavedCycle units='Scalar' value='1' comment=''/>
		
		<!-- Current Measurement iteration -->
		<SavedIteration units='Scalar' value='1' comment=''/>
		
		<!-- Current data log directory -->
		<SavedLogDir units='String' value='' comment=''/>

		<!-- Mission Start Time (used to determine mission duration) -->
		<MST units='seconds' value='0' comment='Seconds since 1970'/>
		
	</State>
	<!-- ====================================================================== -->
	
<!-- ====================================================================== -->
<!-- General configuration settings -->
	<General>

		<!-- Mission Time Out -->
		<Mission units='hours' value='0' comment=''/>

		<!--Power Off when sleeping for long periods? -->
		<PowerOffSleeps	value="True"	units="Bool" comment=""/>
		
		<!--Exit mission after last cycle (do not linger in modem loop)? -->
		<ExitOnCompletion	value="True"	units="Bool" comment=""/>
		
		<!--Number of Movement-Measurement cycles to execute during a mission -->
		<NumCycles	value="2"	units="Scalar" comment=""></NumCycles>
		
		<!--Log directory names will be prefixed with this string. If empty, the Mission start date is used -->
		<LogDirPrefix	value="Standard_"	units="String" comment="Non-value is valid"></LogDirPrefix>

		<!--Interval (seconds) between checking modem for command from surface -->
		<SurfaceCommandCheckInterval	value="30"	units="seconds" comment=""></SurfaceCommandCheckInterval>

		<!--Interval (seconds) between sending status reports to surface -->
		<StatusReportInterval	value="900"	units="seconds" comment="15 minutes"></StatusReportInterval>

		<!--Interval (seconds) between checking internal abort flag -->
		<AbortCheckInterval	value="120"	units="seconds" comment=""></AbortCheckInterval>

		<!--Seconds to wait for dust to settle after arriving at a Mission Measurement site -->
		<DustSettleTime	value="0.5" units="minutes" comment=""></DustSettleTime>

		<!--Seconds to wait for dust to settle after arriving at a Measurement site -->
		<VideoIPAddr	value="134.89.12.147" units="String" comment="dot notation"></VideoIPAddr>

	</General>
<!-- ====================================================================== -->

<!-- ====================================================================== -->
<!-- Instrumentation Information -->
	<Instruments>

		<!-- Configuration item name (e.g., "ref_optode") matches the serial port name of the device -->
		<!-- The serial port name is used by the device driver to look-up the configuration for that instrument -->

		<ref_optode comment="Reference optode" model="Aanderra Oxygen Optode 3830" sn="849"/>

		<port_optode comment="Port optode" model="Aanderra Oxygen Optode 3830" sn="850"/>

		<starboard_optode comment="Starboard optode" model="Aanderra Oxygen Optode 3830" sn="851"/>

		<acm comment="Current meter" model="Falmouth 2DACM-CBP-D" sn="1864 25OCT06" rate="1"/>

	</Instruments>
<!-- ====================================================================== -->

<!-- ====================================================================== -->
<!-- Launch phase configuration settings -->
	<Launch>

		<!-- Duration of the Launch phase in minutes -->
		<LaunchDuration value="0.5" units="minutes" comment=""/>

		<!-- Camera lights blink to provide feedback that mission is running. Define interval (seconds) between blinks here -->
		<LightBlinkInterval	value="90" units="seconds" comment=""/>

		<!-- Minimum Launch Duration in minutes before mission will bother to blink lights -->
		<MinDurationForBlinks	value="20" units="minutes" comment=""/>

	</Launch>
<!-- ====================================================================== -->

<!-- ====================================================================== -->
<!-- Measurement phase configuration settings -->
	<Measurement>

		<!-- Interval (in minutes) between status reports -->
		<MeasurementReportInterval	value="10" units="minutes" comment=""/>

		<!--Interval in seconds between checks on progress of Measurement process -->
		<MeasurementProgressCheckInterval	value="0.5" units="minutes" comment=""/>
		
		<!--Length of time in minutes before we assume a problem with Measurement process -->
		<MeasurementTimeout	value="10" units="minutes" comment=""/>
		
		<!-- The number of recording iterations during a Measurement phase -->
		<RecordingIterations value="2" units="Scalar" comment=""/>

		<!--Duration in seconds of optode recordings-->
		<RecordingDuration	value="1" units="minutes" comment=""/>

		<!--Interval in minutes between optode reads-->
		<RecordingInterval	value="1" units="minutes" comment=""/>

		<!-- Seconds to allow video server to boot -->
		<VideoBootTime	value="30" units="seconds" comment=""/>

	</Measurement>
<!-- ====================================================================== -->

<!-- ====================================================================== -->
<!-- Movement phase configuration settings -->
    <Movement>

		<!-- Simple move, just move forward with no turns -->
		<SimpleMove		value="True" units="boolean" comment=""/>

		<!-- Heading (0-359) to move between measurement cycles, Normal mode -->
		<Heading	value="45" units="degrees" comment=""/>

		<!-- Distance in meters to move between measurement cycles, Normal mode -->
		<Distance	value="2.2" units="meters" comment=""/>

		<!-- Time (in seconds) to allow for move before timing-out -->
		<MoveTimeout	value="470" units="seconds" comment="Not counting turns"/>

		<!-- Time (in seconds) between checks to see if move complete (should be less than MoveTimeout) -->
		<MoveCheckInterval	value="30" units="seconds" comment=""/>

		<!-- Drive motors pid gains -->
		<MotorPGain	value="1000" units="scalar" comment="" />

		<!-- Drive motors pid gains -->
		<MotorIGain	value="0" units="scalar" comment="" />

		<!-- Drive motors pid gains -->
		<MotorDGain	value="1000" units="scalar" comment="" />

		<!-- Drive motors velocity (counts/sec) -->
		<MotorVelocity	value="1000" units="counts/sec" comment=""/>

		<!-- Drive motors counts per meter ratio (counts/m) -->
		<MotorCountsPerMeter	value="854.7" units="counts/meter" comment=""/>

		<!-- Drive motors counts per degree ratio, turning with tracks moving in opposite direction (counts/degree) -->
		<MotorCountsPerDegree	value="10" units="counts/degree" comment=""/>

		<!-- Number of turning attempts to make before giving up and just move forward -->
		<MaxTurnAttempts	value="5" units="scalar" comment=""/>

		<!-- We'll wait this many minutes for the current to move in the direction we want -->
		<CurrentDirectionTimeout	value="5" units="minutes" comment=""/>
		
		<!-- Current direction can be +/- this amount -->
		<CurrentDeviation	value="30" units="degrees" comment=""/>
		
    </Movement>
<!-- ====================================================================== -->

<!-- -->
</RoverConfig>
