Ejemplo n.º 1
0
        public void TestTiming()
        {
            // Generate an Ensemble
            DataSet.Ensemble ensemble = EnsembleHelper.GenerateEnsemble(30);

            Stopwatch watch = new Stopwatch();

            // Test Serialize()
            watch = new Stopwatch();
            watch.Start();
            for (int x = 0; x < 1000; x++)
            {
                string encoded = Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.GoodBeamData);
            }
            watch.Stop();
            long resultSerialize = watch.ElapsedMilliseconds;

            // Test Deserialize()
            watch = new Stopwatch();
            string encodedd = Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.GoodBeamData);

            watch.Start();
            for (int x = 0; x < 1000; x++)
            {
                DataSet.GoodBeamDataSet decoded = Newtonsoft.Json.JsonConvert.DeserializeObject <DataSet.GoodBeamDataSet>(encodedd);
            }
            watch.Stop();
            long resultDeserialize = watch.ElapsedMilliseconds;

            Debug.WriteLine(String.Format("Serialize:{0}  Deserialize:{1}", resultSerialize, resultDeserialize));

            Debug.WriteLine("Complete");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initialize the object.
        /// </summary>
        /// <param name="goodBeam">RTI Good Beam data set.</param>
        /// <param name="pingsPerEnsemble">Pings per Ensemble.</param>
        public Pd0PercentGood(DataSet.GoodBeamDataSet goodBeam, int pingsPerEnsemble)
            : base(ID_LSB, ID_MSB, Pd0ID.Pd0Types.PercentGood)
        {
            NumDepthCells = goodBeam.NumElements;
            NumBeams      = goodBeam.ElementsMultiplier;

            DecodeRtiEnsemble(goodBeam, pingsPerEnsemble);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Convert the RTI Good Beam data set to the PD0 Percent Good data type.
        /// </summary>
        /// <param name="goodBeam">RTI Good Beam data set.</param>
        /// <param name="pingsPerEnsemble">Pings per Ensemble.</param>
        public void DecodeRtiEnsemble(DataSet.GoodBeamDataSet goodBeam, int pingsPerEnsemble)
        {
            if (goodBeam.GoodBeamData != null)
            {
                PercentGood = new byte[goodBeam.GoodBeamData.GetLength(0), NumBeams];

                for (int bin = 0; bin < goodBeam.GoodBeamData.GetLength(0); bin++)
                {
                    // 4 Beam System
                    if (goodBeam.GoodBeamData.GetLength(1) >= NumBeams)
                    {
                        for (int beam = 0; beam < goodBeam.GoodBeamData.GetLength(1); beam++)
                        {
                            // beam order 3,2,0,1; XYZ order 1,0,-2,3, ENU order 0,1,2,3
                            int newBeam = 0;
                            switch (beam)
                            {
                            case 0:
                                newBeam = 3;
                                break;

                            case 1:
                                newBeam = 2;
                                break;

                            case 2:
                                newBeam = 0;
                                break;

                            case 3:
                                newBeam = 1;
                                break;

                            default:
                                break;
                            }

                            PercentGood[bin, beam] = (byte)(Math.Round((goodBeam.GoodBeamData[bin, newBeam] * 100.0) / pingsPerEnsemble));
                        }
                    }
                    // Vertical Beam
                    if (goodBeam.GoodBeamData.GetLength(1) == 1)
                    {
                        PercentGood[bin, 0] = (byte)(Math.Round((goodBeam.GoodBeamData[bin, 0] * 100.0) / pingsPerEnsemble));
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public void TestJson()
        {
            // Generate an Ensemble
            DataSet.Ensemble ensemble = EnsembleHelper.GenerateEnsemble(30);

            // Modify the data
            ensemble.GoodBeamData.GoodBeamData[0, DataSet.Ensemble.BEAM_0_INDEX] = 1;
            ensemble.GoodBeamData.GoodBeamData[0, DataSet.Ensemble.BEAM_1_INDEX] = 2;
            ensemble.GoodBeamData.GoodBeamData[0, DataSet.Ensemble.BEAM_2_INDEX] = 3;
            ensemble.GoodBeamData.GoodBeamData[0, DataSet.Ensemble.BEAM_3_INDEX] = 4;

            ensemble.GoodBeamData.GoodBeamData[3, DataSet.Ensemble.BEAM_0_INDEX] = 2;
            ensemble.GoodBeamData.GoodBeamData[3, DataSet.Ensemble.BEAM_1_INDEX] = 3;
            ensemble.GoodBeamData.GoodBeamData[3, DataSet.Ensemble.BEAM_2_INDEX] = 4;
            ensemble.GoodBeamData.GoodBeamData[3, DataSet.Ensemble.BEAM_3_INDEX] = 5;

            ensemble.GoodBeamData.GoodBeamData[5, DataSet.Ensemble.BEAM_0_INDEX] = 3;
            ensemble.GoodBeamData.GoodBeamData[5, DataSet.Ensemble.BEAM_1_INDEX] = 4;
            ensemble.GoodBeamData.GoodBeamData[5, DataSet.Ensemble.BEAM_2_INDEX] = 5;
            ensemble.GoodBeamData.GoodBeamData[5, DataSet.Ensemble.BEAM_3_INDEX] = 6;

            string encoded = Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.GoodBeamData);                                      // Serialize object to JSON

            DataSet.GoodBeamDataSet decoded = Newtonsoft.Json.JsonConvert.DeserializeObject <DataSet.GoodBeamDataSet>(encoded);       // Deserialize the JSON

            // Verify the values are the same
            Assert.AreEqual(1, decoded.GoodBeamData[0, DataSet.Ensemble.BEAM_0_INDEX], "Good Beam Data 0 0 is incorrect.");
            Assert.AreEqual(2, decoded.GoodBeamData[0, DataSet.Ensemble.BEAM_1_INDEX], "Good Beam Data 0 1 is incorrect.");
            Assert.AreEqual(3, decoded.GoodBeamData[0, DataSet.Ensemble.BEAM_2_INDEX], "Good Beam Data 0 2 is incorrect.");
            Assert.AreEqual(4, decoded.GoodBeamData[0, DataSet.Ensemble.BEAM_3_INDEX], "Good Beam Data 0 3 is incorrect.");

            Assert.AreEqual(2, decoded.GoodBeamData[3, DataSet.Ensemble.BEAM_0_INDEX], "Good Beam Data 3 0 is incorrect.");
            Assert.AreEqual(3, decoded.GoodBeamData[3, DataSet.Ensemble.BEAM_1_INDEX], "Good Beam Data 3 1 is incorrect.");
            Assert.AreEqual(4, decoded.GoodBeamData[3, DataSet.Ensemble.BEAM_2_INDEX], "Good Beam Data 3 2 is incorrect.");
            Assert.AreEqual(5, decoded.GoodBeamData[3, DataSet.Ensemble.BEAM_3_INDEX], "Good Beam Data 3 3 is incorrect.");

            Assert.AreEqual(3, decoded.GoodBeamData[5, DataSet.Ensemble.BEAM_0_INDEX], "Good Beam Data 5 0 is incorrect.");
            Assert.AreEqual(4, decoded.GoodBeamData[5, DataSet.Ensemble.BEAM_1_INDEX], "Good Beam Data 5 1 is incorrect.");
            Assert.AreEqual(5, decoded.GoodBeamData[5, DataSet.Ensemble.BEAM_2_INDEX], "Good Beam Data 5 2 is incorrect.");
            Assert.AreEqual(6, decoded.GoodBeamData[5, DataSet.Ensemble.BEAM_3_INDEX], "Good Beam Data 5 3 is incorrect.");
        }