예제 #1
0
        /// <summary>
        /// Glonass 实时星历信息转换。
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public GlonassNavRecord GlonassNavRecord(Message1020 msg)
        {
            GlonassNavRecord para = new GlonassNavRecord();

            para.Prn = new SatelliteNumber((int)msg.SatelliteID, SatelliteType.R);

            #region XYZ相关信息
            para.XYZ             = new Geo.Coordinates.XYZ(msg.Xn, msg.Yn, msg.Zn);
            para.XyzVelocity     = new Geo.Coordinates.XYZ(msg.XnfFirstDerivative, msg.YnfFirstDerivative, msg.XnfFirstDerivative);
            para.XyzAcceleration = new Geo.Coordinates.XYZ(msg.XnSecondDerivative, msg.YnSecondDerivative, msg.ZnSecondDerivative);
            #endregion

            para.Health                = msg.MsbOfBnWord;
            para.FrequencyNumber       = msg.SatelliteFrequencyChannelNumber;
            para.ClockBias             = msg.TaoN;
            para.RelativeFrequencyBias = msg.GamaN;
            double secondsOfDay;
            if (msg.Tkh >= 3)
            {
                secondsOfDay = (msg.Tkh - 3) * 3600 + msg.Tkm * 60 + msg.Tks;
            }
            else
            {
                secondsOfDay = (msg.Tkh - 3 + 24) * 3600 + msg.Tkm * 60 + msg.Tks;
            }
            para.Time        = new Time(Setting.ReceivingTimeOfNtripData.DateTime, secondsOfDay);
            para.MessageTime = msg.Tb;
            para.AgeOfOper   = new double();
            return(para);
        }
예제 #2
0
 protected void OnGlonassNavRecordReceived(GlonassNavRecord obj)
 {
     if (obj == null)
     {
         return;
     }
     if (GlonassNavRecordReceived != null)
     {
         GlonassNavRecordReceived(obj);
     }
 }
예제 #3
0
 void RtcmDataParser_GlonassNavRecordReceived(GlonassNavRecord obj)
 {
     //RtGnssDataWriter.WriteGlonassNavRecord(obj);
 }
예제 #4
0
 protected virtual void dataProvider_GlonassNavRecordReceived(GlonassNavRecord obj)
 {
 }
예제 #5
0
 public void WriteGlonassNavRecord(GlonassNavRecord obj)
 {
     GlonassNavFileWriter.CheckAndAppendEphemerisParam(obj);
     GlonassNavFileWriter.SaveToFile();
 }
예제 #6
0
 protected override void dataProvider_GlonassNavRecordReceived(GlonassNavRecord obj)
 {
     this.WriteGlonassNavRecord(obj);
 }