Example #1
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.BottomTrackData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as BottomTrackDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // FirstPingTime
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_FIRSTPINGTIME);
                writer.WriteValue(data.FirstPingTime);

                // LastPingTime
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_LASTPINGTIME);
                writer.WriteValue(data.LastPingTime);

                // Heading
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_HEADING);
                writer.WriteValue(data.Heading);

                // Pitch
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_PITCH);
                writer.WriteValue(data.Pitch);

                // Roll
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ROLL);
                writer.WriteValue(data.Roll);

                // WaterTemp
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_WATERTEMP);
                writer.WriteValue(data.WaterTemp);

                // SystemTemp
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SYSTEMP);
                writer.WriteValue(data.SystemTemp);

                // Salinity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SALINITY);
                writer.WriteValue(data.Salinity);

                // Pressure
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_PRESSURE);
                writer.WriteValue(data.Pressure);

                // TransducerDepth
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_TRANSDUCERDEPTH);
                writer.WriteValue(data.TransducerDepth);

                // SpeedOfSound
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SPEEDOFSOUND);
                writer.WriteValue(data.SpeedOfSound);

                // Status Value
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_STATUS);
                writer.WriteValue(data.Status.Value);

                // NumBeams
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_NUMBEAMS);
                writer.WriteValue(data.NumBeams);

                // ActualPingCount
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_ACTUALPINGCOUNT);
                writer.WriteValue(data.ActualPingCount);

                // Range
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_RANGE);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.Range[beam]);
                }
                writer.WriteEndArray();

                // SNR
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_SNR);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.SNR[beam]);
                }
                writer.WriteEndArray();

                // Amplitude
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_AMPLITUDE);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.Amplitude[beam]);
                }
                writer.WriteEndArray();

                // Correlation
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_CORRELATION);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.Correlation[beam]);
                }
                writer.WriteEndArray();

                // Beam Velocity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_BEAMVELOCITY);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.BeamVelocity[beam]);
                }
                writer.WriteEndArray();

                // Good Beam Velocity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_BEAMGOOD);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.BeamGood[beam]);
                }
                writer.WriteEndArray();

                // Instrument Velocity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_INSTRUMENTVELOCITY);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.InstrumentVelocity[beam]);
                }
                writer.WriteEndArray();

                // Good Instrument Velocity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_INSTRUMENTGOOD);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.InstrumentGood[beam]);
                }
                writer.WriteEndArray();

                // Earth Velocity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_EARTHVELOCITY);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.EarthVelocity[beam]);
                }
                writer.WriteEndArray();

                // Good Earth Velocity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BT_EARTHGOOD);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.NumBeams; beam++)
                {
                    writer.WriteValue(data.EarthGood[beam]);
                }
                writer.WriteEndArray();

                // End the object
                writer.WriteEndObject();
            }
Example #2
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.DvlData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as DvlDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                #region System

                // Subsystem Index
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SUBSYSTEM_INDEX);
                writer.WriteValue(data.SubsystemConfig.SubSystem.Index);

                // Subsystem Code
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SUBSYSTEM_CODE);
                writer.WriteValue(data.SubsystemConfig.SubSystem.Code);

                // CEPO Index
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_CEPOINDEX);
                writer.WriteValue(data.SubsystemConfig.CepoIndex);

                // SubsystemConfiguration Index
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SSCONFIG_INDEX);
                writer.WriteValue(data.SubsystemConfig.SubsystemConfigIndex);

                // Sample Number
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_SAMPLENUMBER);
                writer.WriteValue(data.SampleNumber);

                // Pitch
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_PITCH);
                writer.WriteValue(data.Pitch);

                // Roll
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_ROLL);
                writer.WriteValue(data.Roll);

                // Heading
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_HEADING);
                writer.WriteValue(data.Heading);

                // Year
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_YEAR);
                writer.WriteValue(data.Year);

                // Month
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_MONTH);
                writer.WriteValue(data.Month);

                // Day
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DAY);
                writer.WriteValue(data.Day);

                // Hour
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_HOUR);
                writer.WriteValue(data.Hour);

                // Minute
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_MINUTE);
                writer.WriteValue(data.Minute);

                // Second
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SECOND);
                writer.WriteValue(data.Second);

                // HSec
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_HSEC);
                writer.WriteValue(data.HSec);

                // Salinity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SALINITY);
                writer.WriteValue(data.Salinity);

                // Temperature
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_TEMPERATURE);
                writer.WriteValue(data.WaterTemp);

                // Depth of Transducer
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_TRANSDUCERDEPTH);
                writer.WriteValue(data.TransducerDepth);

                // Speed Of Sound
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SPEEDOFSOUND);
                writer.WriteValue(data.SpeedOfSound);

                // BIT
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BIT);
                writer.WriteValue(data.BIT);

                // Ref Layer Min
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_REF_LAYER_MIN);
                writer.WriteValue(data.RefLayerMin);

                // Ref Layer Max
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_REF_LAYER_MAX);
                writer.WriteValue(data.RefLayerMax);

                #endregion

                #region Water Mass Instrument Vel

                // WM X Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_X_VEL);
                writer.WriteValue(data.WmXVelocity);

                // WM Y Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_Y_VEL);
                writer.WriteValue(data.WmYVelocity);

                // WM Z Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_Z_VEL);
                writer.WriteValue(data.WmZVelocity);

                // WM Error Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_ERROR_VEL);
                writer.WriteValue(data.WmErrorVelocity);

                // WM Instrument Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_INSTRUMENT_IS_GOOD_VEL);
                writer.WriteValue(data.WmInstrumentIsGoodVelocity);

                #endregion

                #region Water Mass Ship Vel

                // WM Transverse Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_TRANSVERSE_VEL);
                writer.WriteValue(data.WmTransverseVelocity);

                // WM Longitudinal Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_LONGITUDINAL_VEL);
                writer.WriteValue(data.WmLongitudinalVelocity);

                // WM Normal Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_NORMAL_VEL);
                writer.WriteValue(data.WmNormalVelocity);

                // WM Ship Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_SHIP_IS_GOOD_VEL);
                writer.WriteValue(data.WmShipIsGoodVelocity);

                #endregion

                #region Water Mass Earth Vel

                // WM East Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_EAST_VEL);
                writer.WriteValue(data.WmEastVelocity);

                // WM North Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_NORTH_VEL);
                writer.WriteValue(data.WmNorthVelocity);

                // WM Upward Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_UPWARD_VEL);
                writer.WriteValue(data.WmUpwardVelocity);

                // WM Earth Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_EARTH_IS_GOOD_VEL);
                writer.WriteValue(data.WmEarthIsGoodVelocity);

                #endregion

                #region Water Mass Earth Distance

                // WM East Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_EAST_DMG);
                writer.WriteValue(data.WmEastDistance);

                // WM North Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_NORTH_DMG);
                writer.WriteValue(data.WmNorthDistance);

                // WM Upward Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_UPWARD_DMG);
                writer.WriteValue(data.WmUpwardDistance);

                // WM Earth Range to WM Center
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_EARTH_RANGE_TO_WM_CENTER);
                writer.WriteValue(data.WmEarthRangeToWaterMassCenter);

                // WM Earth Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_WM_EARTH_TIME_LAST_GOOD_VEL);
                writer.WriteValue(data.WmEarthTimeLastGoodVel);

                #endregion

                #region Bottom Track Instrument Vel

                // Bottom Track X Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_X_VEL);
                writer.WriteValue(data.BtXVelocity);

                // Bottom Track Y Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_Y_VEL);
                writer.WriteValue(data.BtYVelocity);

                // Bottom Track Z Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_Z_VEL);
                writer.WriteValue(data.BtZVelocity);

                // Bottom Track Error Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_ERROR_VEL);
                writer.WriteValue(data.BtErrorVelocity);

                // Bottom Track Instrument Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_INSTRUMENT_IS_GOOD_VEL);
                writer.WriteValue(data.BtInstrumentIsGoodVelocity);

                #endregion

                #region Bottom Track Ship Vel

                // Bottom Track Transverse Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_TRANSVERSE_VEL);
                writer.WriteValue(data.BtTransverseVelocity);

                // Bottom Track Longitudinal Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_LONGITUDINAL_VEL);
                writer.WriteValue(data.BtLongitudinalVelocity);

                // Bottom Track Normal Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_NORMAL_VEL);
                writer.WriteValue(data.BtNormalVelocity);

                // Bottom Track Ship Error Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_SHIP_ERR_VEL);
                writer.WriteValue(data.BtShipErrorVelocity);

                // Bottom Track Ship Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_SHIP_IS_GOOD_VEL);
                writer.WriteValue(data.BtShipIsGoodVelocity);

                #endregion

                #region Bottom Track Earth Vel

                // Bottom Track East Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_EAST_VEL);
                writer.WriteValue(data.BtEastVelocity);

                // Bottom Track North Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_NORTH_VEL);
                writer.WriteValue(data.BtNorthVelocity);

                // Bottom Track Upward Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_UPWARD_VEL);
                writer.WriteValue(data.BtUpwardVelocity);

                // Bottom Track Earth Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_EARTH_IS_GOOD_VEL);
                writer.WriteValue(data.BtEarthIsGoodVelocity);

                #endregion

                #region Bottom Track Earth Distance

                // Bottom Track East Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_EAST_DMG);
                writer.WriteValue(data.BtEastDistance);

                // Bottom Track North Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_NORTH_DMG);
                writer.WriteValue(data.BtNorthDistance);

                // Bottom Track Upward Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_UPWARD_DMG);
                writer.WriteValue(data.BtUpwardDistance);

                // Bottom Track Earth Range to WM Center
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_EARTH_RANGE_TO_WM_CENTER);
                writer.WriteValue(data.BtRangeToBottom);

                // Bottom Track Earth Is Good Vel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_BT_EARTH_TIME_LAST_GOOD_VEL);
                writer.WriteValue(data.BtEarthTimeLastGoodVel);

                #endregion

                #region Pressure and Range

                // Pressure
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_PRESSURE);
                writer.WriteValue(data.Pressure);

                // Range 0
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_RANGE_B0);
                writer.WriteValue(data.RangeBeam0);

                // Range 1
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_RANGE_B1);
                writer.WriteValue(data.RangeBeam1);

                // Range 2
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_RANGE_B2);
                writer.WriteValue(data.RangeBeam2);

                // Range 3
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_RANGE_B3);
                writer.WriteValue(data.RangeBeam3);

                // Average Range
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_AVG_RANGE);
                writer.WriteValue(data.AverageRange);

                #endregion

                #region Distance Made Good

                // Distance Made Good East
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_EAST);
                writer.WriteValue(data.DmgEast);

                // Distance Made Good North
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_NORTH);
                writer.WriteValue(data.DmgNorth);

                // Distance Made Good Upward
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_UPWARD);
                writer.WriteValue(data.DmgUpward);

                // Distance Made Good Error
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_ERROR);
                writer.WriteValue(data.DmgError);

                #endregion

                #region Distance Made Good Reference Layer

                // Distance Made Good East
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_REF_EAST);
                writer.WriteValue(data.DmgRefEast);

                // Distance Made Good North
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_REF_NORTH);
                writer.WriteValue(data.DmgRefNorth);

                // Distance Made Good Upward
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_REF_UPWARD);
                writer.WriteValue(data.DmgRefUpward);

                // Distance Made Good Error
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_DMG_REF_ERROR);
                writer.WriteValue(data.DmgRefError);

                #endregion

                #region Leak Detection

                // Leak Detection
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DVL_LEAKDETECTION);
                writer.WriteValue(data.LeakDetectionCode());

                #endregion

                // End the object
                writer.WriteEndObject();
            }
Example #3
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.InstrumentVelocityData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as InstrumentVelocityDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // Write the float[,] array data
                // This will be an array of arrays
                // Each array element will contain an array with the 4 beam's value
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_INSTRUMENTVELOCITYDATA);
                writer.WriteStartArray();
                for (int bin = 0; bin < data.NumElements; bin++)
                {
                    // Write an array of float values for each beam's value
                    writer.WriteStartArray();

                    for (int beam = 0; beam < data.ElementsMultiplier; beam++)
                    {
                        writer.WriteValue(data.InstrumentVelocityData[bin, beam]);
                    }

                    writer.WriteEndArray();
                }
                writer.WriteEndArray();

                // End the object
                writer.WriteEndObject();
            }
Example #4
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.NmeaData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as NmeaDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // Write the NMEA strings
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_NMEASTRINGS);
                if (data.NmeaStrings != null)
                {
                    writer.WriteStartArray();
                    for (int x = 0; x < data.NmeaStrings.Count; x++)
                    {
                        writer.WriteValue(data.NmeaStrings[x]);
                    }
                    writer.WriteEndArray();
                }
                else
                {
                    writer.WriteNull();
                }

                // End the object
                writer.WriteEndObject();
            }
Example #5
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.RangeTrackingData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as RangeTrackingDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // Number of Beams
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_NUMBEAMS);
                writer.WriteValue(data.NumBeams);

                // SNR
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_RT_SNR);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.SNR.Length; beam++)
                {
                    writer.WriteValue(data.SNR[beam]);
                }
                writer.WriteEndArray();

                // Range
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_RT_RANGE);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.Range.Length; beam++)
                {
                    writer.WriteValue(data.Range[beam]);
                }
                writer.WriteEndArray();

                // Pings
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_RT_PINGS);
                writer.WriteStartArray();
                for (int beam = 0; beam < data.Pings.Length; beam++)
                {
                    writer.WriteValue(data.Pings[beam]);
                }
                writer.WriteEndArray();

                // End the object
                writer.WriteEndObject();
            }
Example #6
0
 /// <summary>
 /// Writes this token to a <see cref="JsonWriter"/>.
 /// </summary>
 /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param>
 /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param>
 public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
 {
     switch (_valueType)
       {
     case JsonTokenType.Comment:
       writer.WriteComment(_value.ToString());
       break;
     case JsonTokenType.Integer:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToInt64(v, CultureInfo.InvariantCulture)), _value);
       break;
     case JsonTokenType.Float:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToDouble(v, CultureInfo.InvariantCulture)), _value);
       break;
     case JsonTokenType.String:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(v.ToString()), _value);
       break;
     case JsonTokenType.Boolean:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToBoolean(v, CultureInfo.InvariantCulture)), _value);
       break;
     case JsonTokenType.Date:
       WriteConvertableValue(writer, converters, v =>
       {
     if (v is DateTimeOffset)
       writer.WriteValue((DateTimeOffset)v);
     else
       writer.WriteValue(Convert.ToDateTime(v, CultureInfo.InvariantCulture));
       }, _value);
       break;
     case JsonTokenType.Raw:
       writer.WriteRaw(_value.ToString());
       break;
     case JsonTokenType.Null:
       writer.WriteNull();
       break;
     case JsonTokenType.Undefined:
       writer.WriteUndefined();
       break;
     default:
       throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type.");
       }
 }
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     if ((value != null) && ((Legend)value).LegendPosition != LegendPostion.Default)
     {
         string s = value.ToString();
         writer.WriteRaw(s);
     }
     else
     {
         writer.WriteRaw("{}");
     }
 }
Example #8
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.EarthVelocityData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as EarthVelocityDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // IsVelocityVectorAvail Property
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ISVELOCITYVECTORAVAIL);
                writer.WriteValue(data.IsVelocityVectorAvail);

                // VelocityVector Property
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VELOCITYVECTORS);
                if (data.VelocityVectors != null)
                {
                    writer.WriteStartArray();
                    for (int x = 0; x < data.VelocityVectors.Length; x++)
                    {
                        // Write the velocity vector
                        if (data.VelocityVectors[x] != null)
                        {
                            writer.WriteStartObject();
                            writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VV_MAG);                   // Magnitude
                            writer.WriteValue(data.VelocityVectors[x].Magnitude);
                            writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VV_XNORTH);                // Direction X North
                            writer.WriteValue(data.VelocityVectors[x].DirectionXNorth);
                            writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VV_YNORTH);                // Direction Y North
                            writer.WriteValue(data.VelocityVectors[x].DirectionYNorth);
                            writer.WriteEndObject();
                        }
                        else
                        {
                            // Write null if the value is null
                            writer.WriteNull();
                        }
                    }
                    writer.WriteEndArray();
                }
                else
                {
                    writer.WriteNull();
                }

                // Write the float[,] array data
                // This will be an array of arrays
                // Each array element will contain an array with the 4 beam's value
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_EARTHVELOCITYDATA);
                writer.WriteStartArray();
                for (int bin = 0; bin < data.EarthVelocityData.GetLength(0); bin++)
                {
                    // Write an array of float values for each beam's value
                    writer.WriteStartArray();

                    for (int beam = 0; beam < data.EarthVelocityData.GetLength(1); beam++)
                    {
                        writer.WriteValue(data.EarthVelocityData[bin, beam]);
                    }

                    writer.WriteEndArray();
                }
                writer.WriteEndArray();

                // End the object
                writer.WriteEndObject();
            }
Example #9
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.AncillaryData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as AncillaryDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // FirstBinRange
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_FIRSTBINRANGE);
                writer.WriteValue(data.FirstBinRange);

                // BinSize
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BINSIZE);
                writer.WriteValue(data.BinSize);

                // FirstPingTime
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_FIRSTPINGTIME);
                writer.WriteValue(data.FirstPingTime);

                // LastPingTime
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_LASTPINGTIME);
                writer.WriteValue(data.LastPingTime);

                // Heading
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_HEADING);
                writer.WriteValue(data.Heading);

                // Pitch
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_PITCH);
                writer.WriteValue(data.Pitch);

                // Roll
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ROLL);
                writer.WriteValue(data.Roll);

                // WaterTemp
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_WATERTEMP);
                writer.WriteValue(data.WaterTemp);

                // SystemTemp
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SYSTEMP);
                writer.WriteValue(data.SystemTemp);

                // Salinity
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SALINITY);
                writer.WriteValue(data.Salinity);

                // Pressure
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_PRESSURE);
                writer.WriteValue(data.Pressure);

                // TransducerDepth
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_TRANSDUCERDEPTH);
                writer.WriteValue(data.TransducerDepth);

                // SpeedOfSound
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SPEEDOFSOUND);
                writer.WriteValue(data.SpeedOfSound);

                // End the object
                writer.WriteEndObject();
            }
Example #10
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.EnsembleData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as EnsembleDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // EnsembleNumber
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ENSEMBLENUMBER);
                writer.WriteValue(data.EnsembleNumber);

                // NumBins
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_NUMBINS);
                writer.WriteValue(data.NumBins);

                // NumBeams
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_NUMBEAMS);
                writer.WriteValue(data.NumBeams);

                // DesiredPingCount
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DESIREDPINGCOUNT);
                writer.WriteValue(data.DesiredPingCount);

                // ActualPingCount
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ACTUALPINGCOUNT);
                writer.WriteValue(data.ActualPingCount);

                // SysSerialNumber
                writer.WritePropertyName(DataSet.BaseDataSet.STR_JSON_SERIALNUMBER_SERIALNUMBERSTRING);
                writer.WriteValue(data.SysSerialNumber.SerialNumberString);

                // Firmware Major
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_FIRMWAREMAJOR);
                writer.WriteValue(data.SysFirmware.FirmwareMajor);

                // Firmware Minor
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_FIRMWAREMINOR);
                writer.WriteValue(data.SysFirmware.FirmwareMinor);

                // Firmware Revision
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_FIRMWAREREVISION);
                writer.WriteValue(data.SysFirmware.FirmwareRevision);

                // Firmware SubsystemCode
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SUBSYSTEMCODE);
                writer.WriteValue(data.SysFirmware.SubsystemCode);

                // Subsystem Index
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SUBSYSTEM_INDEX);
                writer.WriteValue(data.SubsystemConfig.SubSystem.Index);

                // Subsystem Code
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SUBSYSTEM_CODE);
                writer.WriteValue(data.SubsystemConfig.SubSystem.Code);

                // CEPO Index
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_CEPOINDEX);
                writer.WriteValue(data.SubsystemConfig.CepoIndex);

                // SubsystemConfiguration Index
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SSCONFIG_INDEX);
                writer.WriteValue(data.SubsystemConfig.SubsystemConfigIndex);

                // Status Value
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_STATUS);
                writer.WriteValue(data.Status.Value);

                // Year
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_YEAR);
                writer.WriteValue(data.Year);

                // Month
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_MONTH);
                writer.WriteValue(data.Month);

                // Day
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_DAY);
                writer.WriteValue(data.Day);

                // Hour
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_HOUR);
                writer.WriteValue(data.Hour);

                // Minute
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_MINUTE);
                writer.WriteValue(data.Minute);

                // Second
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SECOND);
                writer.WriteValue(data.Second);

                // HSec
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_HSEC);
                writer.WriteValue(data.HSec);

                // End the object
                writer.WriteEndObject();
            }
Example #11
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.InstrumentWaterMassData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as InstrumentWaterMassDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // Velocity X
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VELX);
                writer.WriteValue(data.VelocityX);

                // Velocity Y
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VELY);
                writer.WriteValue(data.VelocityY);

                // Velocity Z
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VELZ);
                writer.WriteValue(data.VelocityZ);

                // Velocity Q
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_VELQ);
                writer.WriteValue(data.VelocityQ);

                // Water Mass Depth Layer
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_WATERMASSDEPTHLAYER);
                writer.WriteValue(data.WaterMassDepthLayer);

                // End the object
                writer.WriteEndObject();
            }
Example #12
0
 public override void WriteRaw(string json)
 {
     _textWriter.WriteRaw(json);
     _innerWriter.WriteRaw(json);
     base.WriteRaw(json);
 }