Example #1
0
 /// <summary>
 /// Add the Bottom Track Dataset to the ensemble.  This will take an ensemble then add
 /// and empty Bottom Track Dataset to the ensemble.
 /// </summary>
 /// <param name="ensemble">Ensemble to add the Bottom Track Dataset.</param>
 public static void AddBottomTrack(ref DataSet.Ensemble ensemble)
 {
     ensemble.AddBottomTrackData(DataSet.Ensemble.DATATYPE_FLOAT,              // Type of data stored (Float or Int)
                                 DataSet.BottomTrackDataSet.NUM_DATA_ELEMENTS, // Number of bins (No bins for this dataset)
                                 1,                                            // Number of beams
                                 DataSet.Ensemble.DEFAULT_IMAG,                // Default Image
                                 DataSet.Ensemble.DEFAULT_NAME_LENGTH,         // Default Image length
                                 DataSet.Ensemble.BottomTrackID);              // Dataset ID
 }
Example #2
0
        /// <summary>
        /// Create a dataset.  Set the bottom track instrument velocity and water mass velocity.
        /// </summary>
        /// <param name="sentence">Sentence containing DVL data.</param>
        /// <returns>Dataset with values set.</returns>
        private DataSet.Ensemble CreateDataSet(Prti03Sentence sentence)
        {
            DataSet.Ensemble adcpData = new DataSet.Ensemble();

            // Add the Ensemble number to EnsembleDataSet
            adcpData.AddEnsembleData(sentence);

            // Add the Temp to AncillaryDataSet
            adcpData.AddAncillaryData(sentence);

            // Add Bottom Track data
            adcpData.AddBottomTrackData(sentence);

            // Add Water Mass data
            adcpData.AddInstrumentWaterMassData(sentence);

            return(adcpData);
        }
Example #3
0
        public void AddEmptyDataSetTest()
        {
            // Create dataset
            DataSet.Ensemble adcpData = new DataSet.Ensemble();

            // Add Bottom Track data
            adcpData.AddBottomTrackData(DataSet.Ensemble.DATATYPE_FLOAT,                    // Type of data stored (Float or Int)
                                            30,                                             // Number of bins
                                            4,                                              // Number of beams
                                            DataSet.Ensemble.DEFAULT_IMAG,                  // Default Image
                                            DataSet.Ensemble.DEFAULT_NAME_LENGTH,           // Default Image length
                                            DataSet.Ensemble.BottomTrackID);                // Dataset ID

            Assert.IsTrue(adcpData.IsBottomTrackAvail, "IsBottomTrackAvail is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.ActualPingCount, "Actual Ping Count is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.FirstPingTime, "FirstPingTime is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.LastPingTime, "LastPingTime is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.Heading, "Heading is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.Pitch, "Pitch is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.Roll, "Roll is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.WaterTemp, "WaterTemp is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.SystemTemp, "SystemTemp is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.Salinity, "Salinity is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.Pressure, "Pressure is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.TransducerDepth, "TransducerDepth is incorrect.");
            Assert.AreEqual(0.0f, adcpData.BottomTrackData.SpeedOfSound, "SpeedOfSound is incorrect.");
            Assert.AreEqual(new Status(0), adcpData.BottomTrackData.Status, "Status is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.NumBeams, "NumBeams is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.Range.GetLength(0), "Range Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.SNR.GetLength(0), "SNR Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.Amplitude.GetLength(0), "Amplitude Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.Correlation.GetLength(0), "Correlation Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.BeamVelocity.GetLength(0), "BeamVelocity Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.BeamGood.GetLength(0), "BeamGood Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.InstrumentVelocity.GetLength(0), "InstrumentVelocity Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.InstrumentGood.GetLength(0), "InstrumentGood Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.EarthVelocity.GetLength(0), "EarthVelocity Length is incorrect.");
            Assert.AreEqual(4, adcpData.BottomTrackData.EarthGood.GetLength(0), "EarthGood Length is incorrect.");
        }
Example #4
0
        public void TestConstructorPrti02Sentence1()
        {
            string nmea = "$PRTI02,380250,8,1464,1142,323,407,79380,,,,,0000*1C";

            // Create sentence
            Prti02Sentence sent = new Prti02Sentence(nmea);

            Assert.AreEqual(true, sent.IsValid, "NMEA sentence incorrect");

            // Create dataset
            DataSet.Ensemble adcpData = new DataSet.Ensemble();

            // Add Bottom Track data
            adcpData.AddBottomTrackData(sent);

            Assert.AreEqual(true, adcpData.IsBottomTrackAvail, "Bottom Track DataSet not added");

            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[0], 0.00001, "Bottom Track Range B1 incorrect");
            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[1], 0.00001, "Bottom Track Range B2 incorrect");
            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[2], 0.00001, "Bottom Track Range B3 incorrect");
            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[3], 0.00001, "Bottom Track Range B4 incorrect");

            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[0], "Bottom Track Earth Velocity East incorrect");
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[1], "Bottom Track Earth Velocity North incorrect");
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[2], "Bottom Track Earth Velocity Up incorrect");
            Assert.AreEqual(0, adcpData.BottomTrackData.EarthVelocity[3], "Bottom Track Earth Velocity Q incorrect");

            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("1142 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.EarthVelocity[0], "Bottom Track Earth Velocity East incorrect");
            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("323 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.EarthVelocity[1], "Bottom Track Earth Velocity North incorrect");
            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("407 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.EarthVelocity[2], "Bottom Track Earth Velocity Up incorrect");

            Assert.AreEqual(0000, adcpData.BottomTrackData.Status.Value, "Bottom Track Instrument Status incorrect");
            Assert.AreEqual(sent.SystemStatus.Value, adcpData.BottomTrackData.Status.Value, "Bottom Track Instrument Status incorrect");
        }
Example #5
0
        public void TestConstructorPrti02Sentence()
        {
            string nmea = "$PRTI02,379550,1,1468,-99999,-99999,-99999,0,,,,,0004*0A";

            // Create Sentence
            Prti02Sentence sent = new Prti02Sentence(nmea);

            Assert.AreEqual(true, sent.IsValid, "NMEA sentence incorrect");

            // Create dataset
            DataSet.Ensemble adcpData = new DataSet.Ensemble();

            // Add Bottom Track data
            adcpData.AddBottomTrackData(sent);

            Assert.AreEqual(true, adcpData.IsBottomTrackAvail);

            Assert.AreEqual(0, adcpData.BottomTrackData.Range[0], "Bottom Track Range B1 incorrect");
            Assert.AreEqual(0, adcpData.BottomTrackData.Range[1], "Bottom Track Range B2 incorrect");
            Assert.AreEqual(0, adcpData.BottomTrackData.Range[2], "Bottom Track Range B3 incorrect");
            Assert.AreEqual(0, adcpData.BottomTrackData.Range[3], "Bottom Track Range B4 incorrect");

            Assert.AreEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[0], "Bottom Track Earth Velocity East incorrect");
            Assert.AreEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[1], "Bottom Track Earth Velocity North incorrect");
            Assert.AreEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[2], "Bottom Track Earth Velocity Up incorrect");
            Assert.AreEqual(0, adcpData.BottomTrackData.EarthVelocity[3], "Bottom Track Earth Velocity Q incorrect");

            Assert.AreEqual(0004, adcpData.BottomTrackData.Status.Value, "Bottom Track Instrument Status incorrect");
            Assert.AreEqual(sent.SystemStatus.Value, adcpData.BottomTrackData.Status.Value, "Bottom Track Instrument Status incorrect");
        }
Example #6
0
        public void TestAddAdditional()
        {
            string nmea1 = "$PRTI01,380250,8,1464,-1205,-24,-347,79380,,,,,0000*05";
            string nmea2 = "$PRTI02,380250,8,1464,1142,323,407,79380,,,,,0000*1C";

            // Create sentence
            Prti01Sentence sent1 = new Prti01Sentence(nmea1);
            Prti02Sentence sent2 = new Prti02Sentence(nmea2);

            Assert.AreEqual(true, sent1.IsValid, "PRTI01 NMEA sentence incorrect: " + nmea1);
            Assert.AreEqual(true, sent2.IsValid, "PRTI02 NMEA sentence incorrect: " + nmea2);

            // Create dataset
            DataSet.Ensemble adcpData = new DataSet.Ensemble();

            // Add Bottom Track data
            adcpData.AddBottomTrackData(sent1);
            adcpData.BottomTrackData.AddAdditionalBottomTrackData(sent2);

            Assert.AreEqual(true, adcpData.IsBottomTrackAvail, "Bottom Track DataSet not added");

            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[0], 0.00001, "Bottom Track Range B1 incorrect");
            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[1], 0.00001, "Bottom Track Range B2 incorrect");
            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[2], 0.00001, "Bottom Track Range B3 incorrect");
            Assert.AreEqual(new DotSpatial.Positioning.Distance("79380 mm").ToMeters().Value, adcpData.BottomTrackData.Range[3], 0.00001, "Bottom Track Range B4 incorrect");

            // Instrument data
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.InstrumentVelocity[0], "Bottom Track Instrument Velocity X incorrect");
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.InstrumentVelocity[1], "Bottom Track Instrument Velocity Y incorrect");
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.InstrumentVelocity[2], "Bottom Track Instrument Velocity Z incorrect");
            Assert.AreEqual(0, adcpData.BottomTrackData.InstrumentVelocity[3], "Bottom Track Instrument Velocity Q incorrect");

            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("-1205 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.InstrumentVelocity[0], "Bottom Track Instrument Velocity X incorrect");
            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("-24 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.InstrumentVelocity[1], "Bottom Track Instrument Velocity Y incorrect");
            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("-347 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.InstrumentVelocity[2], "Bottom Track Instrument Velocity Z incorrect");

            // Earth data
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[0], "Bottom Track Earth Velocity East incorrect");
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[1], "Bottom Track Earth Velocity North incorrect");
            Assert.AreNotEqual(DataSet.Ensemble.BAD_VELOCITY, adcpData.BottomTrackData.EarthVelocity[2], "Bottom Track Earth Velocity Up incorrect");
            Assert.AreEqual(0, adcpData.BottomTrackData.EarthVelocity[3], "Bottom Track Earth Velocity Q incorrect");

            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("1142 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.EarthVelocity[0], "Bottom Track Earth Velocity East incorrect");
            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("323 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.EarthVelocity[1], "Bottom Track Earth Velocity North incorrect");
            Assert.AreEqual(Convert.ToSingle(new DotSpatial.Positioning.Speed("407 mm/s").ToMetersPerSecond().Value), adcpData.BottomTrackData.EarthVelocity[2], "Bottom Track Earth Velocity Up incorrect");

            Assert.AreEqual(0000, adcpData.BottomTrackData.Status.Value, "Bottom Track Instrument Status incorrect");
            Assert.AreEqual(sent1.SystemStatus.Value, adcpData.BottomTrackData.Status.Value, "Bottom Track Instrument Status incorrect");
            Assert.AreEqual(sent2.SystemStatus.Value, adcpData.BottomTrackData.Status.Value, "Bottom Track Instrument Status incorrect");
        }
Example #7
0
        public void EncodeDecodeTest()
        {
            // Create dataset
            DataSet.Ensemble ensemble = new DataSet.Ensemble();

            // Add Bottom Track data
            ensemble.AddBottomTrackData(DataSet.Ensemble.DATATYPE_FLOAT,                    // Type of data stored (Float or Int)
                                            1,                                              // Number of bins
                                            4,                                              // Number of beams
                                            DataSet.Ensemble.DEFAULT_IMAG,                  // Default Image
                                            DataSet.Ensemble.DEFAULT_NAME_LENGTH,           // Default Image length
                                            DataSet.Ensemble.BottomTrackID);                // Dataset ID

            Assert.IsTrue(ensemble.IsBottomTrackAvail, "IsBottomTrackAvail is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.ActualPingCount, "Actual Ping Count is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.FirstPingTime, "FirstPingTime is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.LastPingTime, "LastPingTime is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.Heading, "Heading is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.Pitch, "Pitch is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.Roll, "Roll is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.WaterTemp, "WaterTemp is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.SystemTemp, "SystemTemp is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.Salinity, "Salinity is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.Pressure, "Pressure is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.TransducerDepth, "TransducerDepth is incorrect.");
            Assert.AreEqual(0.0f, ensemble.BottomTrackData.SpeedOfSound, "SpeedOfSound is incorrect.");
            Assert.AreEqual(new Status(0), ensemble.BottomTrackData.Status, "Status is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.NumBeams, "NumBeams is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.Range.GetLength(0), "Range Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.SNR.GetLength(0), "SNR Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.Amplitude.GetLength(0), "Amplitude Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.Correlation.GetLength(0), "Correlation Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.BeamVelocity.GetLength(0), "BeamVelocity Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.BeamGood.GetLength(0), "BeamGood Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.InstrumentVelocity.GetLength(0), "InstrumentVelocity Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.InstrumentGood.GetLength(0), "InstrumentGood Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.EarthVelocity.GetLength(0), "EarthVelocity Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.EarthGood.GetLength(0), "EarthGood Length is incorrect.");

            #region Set Values

            // Set the values
            ensemble.BottomTrackData.ActualPingCount = 1.2f;
            ensemble.BottomTrackData.FirstPingTime = 2.3f;
            ensemble.BottomTrackData.LastPingTime = 3.4f;
            ensemble.BottomTrackData.Heading = 4.5f;
            ensemble.BottomTrackData.Pitch = 5.6f;
            ensemble.BottomTrackData.Roll = 6.7f;
            ensemble.BottomTrackData.WaterTemp = 7.8f;
            ensemble.BottomTrackData.SystemTemp = 8.9f;
            ensemble.BottomTrackData.Salinity = 9.10f;
            ensemble.BottomTrackData.Pressure = 10.11f;
            ensemble.BottomTrackData.TransducerDepth = 11.12f;
            ensemble.BottomTrackData.SpeedOfSound = 12.13f;
            ensemble.BottomTrackData.Status = new Status(4);
            ensemble.BottomTrackData.NumBeams = 4;
            ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_0_INDEX] = 1.2f;
            ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_1_INDEX] = 2.3f;
            ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_2_INDEX] = 3.4f;
            ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_3_INDEX] = 4.5f;

            ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_0_INDEX] = 1.2f;
            ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_1_INDEX] = 2.3f;
            ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_2_INDEX] = 3.4f;
            ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_3_INDEX] = 4.5f;

            ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_0_INDEX] = 1.2f;
            ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_1_INDEX] = 2.3f;
            ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_2_INDEX] = 3.4f;
            ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_3_INDEX] = 4.5f;

            ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_0_INDEX] = 1.2f;
            ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_1_INDEX] = 2.3f;
            ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_2_INDEX] = 3.4f;
            ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_3_INDEX] = 4.5f;

            ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_0_INDEX] = 1.2f;
            ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_1_INDEX] = 2.3f;
            ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_2_INDEX] = 3.4f;
            ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_3_INDEX] = 4.5f;

            ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_0_INDEX] = 1;
            ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_1_INDEX] = 1;
            ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_2_INDEX] = 1;
            ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_3_INDEX] = 1;

            ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_0_INDEX] = 1.2f;
            ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_1_INDEX] = 2.3f;
            ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_2_INDEX] = 3.4f;
            ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_3_INDEX] = 4.5f;

            ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_0_INDEX] = 1;
            ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_1_INDEX] = 1;
            ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_2_INDEX] = 1;
            ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_3_INDEX] = 1;

            ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_0_INDEX] = 1.2f;
            ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_1_INDEX] = 2.3f;
            ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_2_INDEX] = 3.4f;
            ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_3_INDEX] = 4.5f;

            ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_0_INDEX] = 1;
            ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_1_INDEX] = 1;
            ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_2_INDEX] = 1;
            ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_3_INDEX] = 1;

            #endregion

            #region Verify Values

            Assert.IsTrue(ensemble.IsBottomTrackAvail, "IsBottomTrackAvail is incorrect.");
            Assert.AreEqual(1.2f, ensemble.BottomTrackData.ActualPingCount, "Actual Ping Count is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.FirstPingTime, "FirstPingTime is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.LastPingTime, "LastPingTime is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.Heading, "Heading is incorrect.");
            Assert.AreEqual(5.6f, ensemble.BottomTrackData.Pitch, "Pitch is incorrect.");
            Assert.AreEqual(6.7f, ensemble.BottomTrackData.Roll, "Roll is incorrect.");
            Assert.AreEqual(7.8f, ensemble.BottomTrackData.WaterTemp, "WaterTemp is incorrect.");
            Assert.AreEqual(8.9f, ensemble.BottomTrackData.SystemTemp, "SystemTemp is incorrect.");
            Assert.AreEqual(9.10f, ensemble.BottomTrackData.Salinity, "Salinity is incorrect.");
            Assert.AreEqual(10.11f, ensemble.BottomTrackData.Pressure, "Pressure is incorrect.");
            Assert.AreEqual(11.12f, ensemble.BottomTrackData.TransducerDepth, "TransducerDepth is incorrect.");
            Assert.AreEqual(12.13f, ensemble.BottomTrackData.SpeedOfSound, "SpeedOfSound is incorrect.");
            Assert.AreEqual(new Status(4), ensemble.BottomTrackData.Status, "Status is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.NumBeams, "NumBeams is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.Range.GetLength(0), "Range Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.SNR.GetLength(0), "SNR Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.Amplitude.GetLength(0), "Amplitude Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.Correlation.GetLength(0), "Correlation Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.BeamVelocity.GetLength(0), "BeamVelocity Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.BeamGood.GetLength(0), "BeamGood Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.InstrumentVelocity.GetLength(0), "InstrumentVelocity Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.InstrumentGood.GetLength(0), "InstrumentGood Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.EarthVelocity.GetLength(0), "EarthVelocity Length is incorrect.");
            Assert.AreEqual(4, ensemble.BottomTrackData.EarthGood.GetLength(0), "EarthGood Length is incorrect.");

            Assert.AreEqual(1.2f, ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_0_INDEX], "Range 0 is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_1_INDEX], "Range 1 is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_2_INDEX], "Range 2 is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.Range[DataSet.Ensemble.BEAM_3_INDEX], "Range 3 is incorrect.");

            Assert.AreEqual(1.2f, ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_0_INDEX], "SNR 0 is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_1_INDEX], "SNR 1 is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_2_INDEX], "SNR 2 is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.SNR[DataSet.Ensemble.BEAM_3_INDEX], "SNR 3 is incorrect.");

            Assert.AreEqual(1.2f, ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_0_INDEX], "Amplitude 0 is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_1_INDEX], "Amplitude 1 is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_2_INDEX], "Amplitude 2 is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_3_INDEX], "Amplitude 3 is incorrect.");

            Assert.AreEqual(1.2f, ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_0_INDEX], "Correlation 0 is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_1_INDEX], "Correlation 1 is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_2_INDEX], "Correlation 2 is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_3_INDEX], "Correlation 3 is incorrect.");

            Assert.AreEqual(1.2f, ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_0_INDEX], "BeamVelocity 0 is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_1_INDEX], "BeamVelocity 1 is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_2_INDEX], "BeamVelocity 2 is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_3_INDEX], "BeamVelocity 3 is incorrect.");

            Assert.AreEqual(1, ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_0_INDEX], "BeamGood 0 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_1_INDEX], "BeamGood 1 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_2_INDEX], "BeamGood 2 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_3_INDEX], "BeamGood 3 is incorrect.");

            Assert.AreEqual(1.2f, ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_0_INDEX], "InstrumentVelocity 0 is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_1_INDEX], "InstrumentVelocity 1 is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_2_INDEX], "InstrumentVelocity 2 is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_3_INDEX], "InstrumentVelocity 3 is incorrect.");

            Assert.AreEqual(1, ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_0_INDEX], "InstrumentGood 0 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_1_INDEX], "InstrumentGood 1 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_2_INDEX], "InstrumentGood 2 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_3_INDEX], "InstrumentGood 3 is incorrect.");

            Assert.AreEqual(1.2f, ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_0_INDEX], "EarthVelocity 0 is incorrect.");
            Assert.AreEqual(2.3f, ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_1_INDEX], "EarthVelocity 1 is incorrect.");
            Assert.AreEqual(3.4f, ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_2_INDEX], "EarthVelocity 2 is incorrect.");
            Assert.AreEqual(4.5f, ensemble.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_3_INDEX], "EarthVelocity 3 is incorrect.");

            Assert.AreEqual(1, ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_0_INDEX], "EarthGood 0 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_1_INDEX], "EarthGood 1 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_2_INDEX], "EarthGood 2 is incorrect.");
            Assert.AreEqual(1, ensemble.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_3_INDEX], "EarthGood 3 is incorrect.");

            #endregion

            // Encode the data
            byte[] encode = ensemble.BottomTrackData.Encode();

            // Add Bottom Track data
            DataSet.Ensemble ens1 = new DataSet.Ensemble();
            ens1.AddBottomTrackData(DataSet.Ensemble.DATATYPE_FLOAT,                    // Type of data stored (Float or Int)
                                            1,                                              // Number of bins
                                            4,                                              // Number of beams
                                            DataSet.Ensemble.DEFAULT_IMAG,                  // Default Image
                                            DataSet.Ensemble.DEFAULT_NAME_LENGTH,           // Default Image length
                                            DataSet.Ensemble.BottomTrackID,                 // Dataset ID
                                            encode);                                        // Encoded data

            #region Check Encode data Values

            Assert.IsTrue(ens1.IsBottomTrackAvail, "IsBottomTrackAvail is incorrect.");
            Assert.AreEqual(1.2f, ens1.BottomTrackData.ActualPingCount, "Actual Ping Count is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.FirstPingTime, "FirstPingTime is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.LastPingTime, "LastPingTime is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.Heading, "Heading is incorrect.");
            Assert.AreEqual(5.6f, ens1.BottomTrackData.Pitch, "Pitch is incorrect.");
            Assert.AreEqual(6.7f, ens1.BottomTrackData.Roll, "Roll is incorrect.");
            Assert.AreEqual(7.8f, ens1.BottomTrackData.WaterTemp, "WaterTemp is incorrect.");
            Assert.AreEqual(8.9f, ens1.BottomTrackData.SystemTemp, "SystemTemp is incorrect.");
            Assert.AreEqual(9.10f, ens1.BottomTrackData.Salinity, "Salinity is incorrect.");
            Assert.AreEqual(10.11f, ens1.BottomTrackData.Pressure, "Pressure is incorrect.");
            Assert.AreEqual(11.12f, ens1.BottomTrackData.TransducerDepth, "TransducerDepth is incorrect.");
            Assert.AreEqual(12.13f, ens1.BottomTrackData.SpeedOfSound, "SpeedOfSound is incorrect.");
            Assert.AreEqual(new Status(4), ens1.BottomTrackData.Status, "Status is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.NumBeams, "NumBeams is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.Range.GetLength(0), "Range Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.SNR.GetLength(0), "SNR Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.Amplitude.GetLength(0), "Amplitude Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.Correlation.GetLength(0), "Correlation Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.BeamVelocity.GetLength(0), "BeamVelocity Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.BeamGood.GetLength(0), "BeamGood Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.InstrumentVelocity.GetLength(0), "InstrumentVelocity Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.InstrumentGood.GetLength(0), "InstrumentGood Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.EarthVelocity.GetLength(0), "EarthVelocity Length is incorrect.");
            Assert.AreEqual(4, ens1.BottomTrackData.EarthGood.GetLength(0), "EarthGood Length is incorrect.");

            Assert.AreEqual(1.2f, ens1.BottomTrackData.Range[DataSet.Ensemble.BEAM_0_INDEX], "Range 0 is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.Range[DataSet.Ensemble.BEAM_1_INDEX], "Range 1 is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.Range[DataSet.Ensemble.BEAM_2_INDEX], "Range 2 is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.Range[DataSet.Ensemble.BEAM_3_INDEX], "Range 3 is incorrect.");

            Assert.AreEqual(1.2f, ens1.BottomTrackData.SNR[DataSet.Ensemble.BEAM_0_INDEX], "SNR 0 is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.SNR[DataSet.Ensemble.BEAM_1_INDEX], "SNR 1 is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.SNR[DataSet.Ensemble.BEAM_2_INDEX], "SNR 2 is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.SNR[DataSet.Ensemble.BEAM_3_INDEX], "SNR 3 is incorrect.");

            Assert.AreEqual(1.2f, ens1.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_0_INDEX], "Amplitude 0 is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_1_INDEX], "Amplitude 1 is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_2_INDEX], "Amplitude 2 is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.Amplitude[DataSet.Ensemble.BEAM_3_INDEX], "Amplitude 3 is incorrect.");

            Assert.AreEqual(1.2f, ens1.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_0_INDEX], "Correlation 0 is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_1_INDEX], "Correlation 1 is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_2_INDEX], "Correlation 2 is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.Correlation[DataSet.Ensemble.BEAM_3_INDEX], "Correlation 3 is incorrect.");

            Assert.AreEqual(1.2f, ens1.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_0_INDEX], "BeamVelocity 0 is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_1_INDEX], "BeamVelocity 1 is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_2_INDEX], "BeamVelocity 2 is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.BeamVelocity[DataSet.Ensemble.BEAM_3_INDEX], "BeamVelocity 3 is incorrect.");

            Assert.AreEqual(1, ens1.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_0_INDEX], "BeamGood 0 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_1_INDEX], "BeamGood 1 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_2_INDEX], "BeamGood 2 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.BeamGood[DataSet.Ensemble.BEAM_3_INDEX], "BeamGood 3 is incorrect.");

            Assert.AreEqual(1.2f, ens1.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_0_INDEX], "InstrumentVelocity 0 is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_1_INDEX], "InstrumentVelocity 1 is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_2_INDEX], "InstrumentVelocity 2 is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.InstrumentVelocity[DataSet.Ensemble.BEAM_3_INDEX], "InstrumentVelocity 3 is incorrect.");

            Assert.AreEqual(1, ens1.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_0_INDEX], "InstrumentGood 0 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_1_INDEX], "InstrumentGood 1 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_2_INDEX], "InstrumentGood 2 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.InstrumentGood[DataSet.Ensemble.BEAM_3_INDEX], "InstrumentGood 3 is incorrect.");

            Assert.AreEqual(1.2f, ens1.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_0_INDEX], "EarthVelocity 0 is incorrect.");
            Assert.AreEqual(2.3f, ens1.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_1_INDEX], "EarthVelocity 1 is incorrect.");
            Assert.AreEqual(3.4f, ens1.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_2_INDEX], "EarthVelocity 2 is incorrect.");
            Assert.AreEqual(4.5f, ens1.BottomTrackData.EarthVelocity[DataSet.Ensemble.BEAM_3_INDEX], "EarthVelocity 3 is incorrect.");

            Assert.AreEqual(1, ens1.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_0_INDEX], "EarthGood 0 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_1_INDEX], "EarthGood 1 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_2_INDEX], "EarthGood 2 is incorrect.");
            Assert.AreEqual(1, ens1.BottomTrackData.EarthGood[DataSet.Ensemble.BEAM_3_INDEX], "EarthGood 3 is incorrect.");

            #endregion
        }
Example #8
0
        /// <summary>
        /// Create a dataset.  Set the bottom track instrument velocity and water mass velocity.
        /// </summary>
        /// <param name="sentence">Sentence containing DVL data.</param>
        /// <returns>Dataset with values set.</returns>
        private DataSet.Ensemble CreateDataSet(Prti03Sentence sentence)
        {
            DataSet.Ensemble adcpData = new DataSet.Ensemble();

            // Add the Ensemble number to EnsembleDataSet
            adcpData.AddEnsembleData(sentence);

            // Add the Temp to AncillaryDataSet
            adcpData.AddAncillaryData(sentence);

            // Add Bottom Track data
            adcpData.AddBottomTrackData(sentence);

            // Add Water Mass data
            adcpData.AddInstrumentWaterMassData(sentence);

            return adcpData;
        }