Exemplo n.º 1
0
        public void WriteTtNmea(DataAccessLayer DAL)
        {
            List<GpsAccess.NmeaBurst> bursts = DAL.GetNmeaBursts();

            if (bursts != null && bursts.Count > 0)
            {
                List<string> Columns = new List<string>();
                List<List<string>> data = new List<List<string>>();

                #region Columns
                Columns.Add("Point ID");
                Columns.Add("Point CN");
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.Used);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.DateTimeZulu);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.Longitude);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.Latitude);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.LatDir);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.LonDir);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.MagVar);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.MagDir);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.UtmZone);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.UtmX);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.UtmY);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.Altitude);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.AltUnit);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.FixQuality);
                Columns.Add("Fix");
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PDOP);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.HDOP);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.VDOP);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRNS);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.HDo_Position);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.HAE);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.HAE_Unit);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.Speed);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.Track_Angle);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.SatelliteCount);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.SatelliteUsed);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN1ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN1Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN1Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN1SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN2ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN2Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN2Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN2SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN3ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN3Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN3Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN3SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN4ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN4Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN4Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN4SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN5ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN5Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN5Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN5SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN6ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN6Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN6Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN6SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN7ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN7Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN7Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN7SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN8ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN8Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN8Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN8SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN9ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN9Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN9Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN9SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN10ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN10Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN10Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN10SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN11ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN11Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN11Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN11SRN);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN12ID);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN12Elev);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN12Az);
                Columns.Add(TwoTrailsSchema.TtnmeaSchema.PRN12SRN);
                #endregion

                #region Add Data
                foreach (GpsAccess.NmeaBurst burst in bursts)
                {
                    List<string> burstData = new List<string>();

                    string pointID = "", pointCN = "";
                    TtPoint p = DAL.GetPoint(burst._PointCN);
                    if (p != null)
                    {
                        pointID = p.PID.ToString();
                        pointCN = p.CN;
                    }

                    burstData.Add(pointID);                     //0
                    burstData.Add(pointCN);
                    burstData.Add(burst._Used.ToString());
                    burstData.Add(burst._datetime.ToString("MM/dd/yyyy hh:mm:ss tt"));
                    burstData.Add(burst._longitude.ToString());
                    burstData.Add(burst._latitude.ToString());  //5
                    burstData.Add(burst._latDir.ToString());
                    burstData.Add(burst._longDir.ToString());
                    burstData.Add(burst._magVar.ToString());
                    burstData.Add(burst._magVarDir.ToString());
                    burstData.Add(burst._utm_zone.ToString());  //10
                    burstData.Add(burst._X.ToString());
                    burstData.Add(burst._Y.ToString());
                    burstData.Add(burst._altitude.ToString());
                    burstData.Add(burst._alt_unit.ToString());
                    burstData.Add(FormatFixQuality(burst._fix_quality));//15
                    burstData.Add(FormatFix(burst._fix));
                    burstData.Add(burst._PDOP.ToString());
                    burstData.Add(burst._HDOP.ToString());
                    burstData.Add(burst._VDOP.ToString());
                    burstData.Add(burst._fixed_PRNs);           //20
                    burstData.Add(burst._horiz_dilution_position.ToString());
                    burstData.Add(burst._geoid_height.ToString());
                    burstData.Add(burst._geoid_unit.ToString());
                    burstData.Add(burst._speed.ToString());
                    burstData.Add(burst._track_angle.ToString());   //25
                    burstData.Add(burst._num_of_sat.ToString());
                    burstData.Add(burst._num_of_used_sat.ToString());

                    foreach (GpsAccess.Satellite sat in burst.GetSatellites())
                    {
                        burstData.Add(sat.ID);
                        burstData.Add(sat.Elevation.ToString());
                        burstData.Add(sat.Azimuth.ToString());
                        burstData.Add(sat.SNR.ToString());
                    }

                    data.Add(burstData);
                }
                #endregion

                WriteCsvFile("TtNmeaData", Columns, data);
            }
        }