コード例 #1
0
        public void LoadTest()
        {
            var lines = List(
                "1A,WILLIAMS HARBOUR,373.000,0,0,110,52.55938,-55.78192,0,CY,0,1,0",
                "1B,SABLE ISLAND,277.000,0,0,110,43.93056,-60.02278,0,CY,0,1,0",
                "1D,CHARLOTTETOWN,346.000,0,0,110,52.77541,-56.12596,0,CY,0,1,0",
                "");

            var navaids = NavaidsLoader.Load(lines);
            var x       = new Navaid()
            {
                ID          = "1A",
                Name        = "WILLIAMS HARBOUR",
                Freq        = "373.000",
                IsVOR       = false,
                IsDME       = false,
                RangeNm     = 110,
                Lat         = 52.55938,
                Lon         = -55.78192,
                CountryCode = "CY"
            };

            Assert.AreEqual(3, navaids.Count);
            Assert.AreEqual(x, navaids.FindAny("1A"));
            Assert.AreEqual(43.93056, navaids.FindAny("1B").Lat);
            Assert.AreEqual("346.000", navaids.FindAny("1D").Freq);
        }
コード例 #2
0
ファイル: Configuration.cs プロジェクト: pongpot/NavSim
        private Navaid XmlNavaidToData(string rpuname, XElement navaidElem)
        {
            String _buf;
            Navaid _rpu = new Navaid();

            _rpu.Name = navaidElem.Element("airport").Element("navaids").Element(rpuname).Element("name").Value;

            _buf = navaidElem.Element("airport").Element("navaids").Element(rpuname).Element("runwaynum").Value;
            if (_buf.Length != 0)
            {
                _rpu.RunwayNum = Int32.Parse(_buf);
            }

            _buf = navaidElem.Element("airport").Element("navaids").Element(rpuname).Element("enable").Value;
            if (string.Compare(_buf.ToLower(), "on") == 0)
            {
                _rpu.Enable = true;
            }
            else
            {
                _rpu.Enable = false;
            }

            _rpu.Rpunum = (int)Char.GetNumericValue(rpuname[rpuname.Length - 1]);

            return(_rpu);
        }
コード例 #3
0
ファイル: RpuBinding.cs プロジェクト: pongpot/NavSim
        public RpuBinding(RpuBuzzer rpubuzzer, RpuDataCom rpudatacom, RpuMaintenance rpumaintenance, RpuStatus rpustatus, GroupBox rpubox, Navaid navaid)
        {
            _RpuBuzzer      = rpubuzzer;
            _RpuDataCom     = rpudatacom;
            _RpuMaintenance = rpumaintenance;
            _RpuStatus      = rpustatus;
            _RpuBox         = rpubox;
            _Navaid         = navaid;

            rpubox.Text = rpubox.Text + " " + navaid.Name;

            if (_Navaid.Enable)
            {
                rpubox.Enabled = true;
            }
            else
            {
                rpubox.Enabled = false;
            }
        }
コード例 #4
0
        private static async Task ProcessNavaidData(ContainerResponse container, string path)
        {
            var selector = new FixedLengthTypeMapperSelector();

            selector.When(s => s.StartsWith("NAV1")).Use(NavaidMapper.GetNavaidMapper());
            selector.When(s => s.StartsWith("NAV2"))
            .Use(NavaidMapper.GetNavaidRemarksMapper());
            selector.When(s => s.StartsWith("NAV3")).Use(NavaidMapper.GetAirspaceFixesAssociatedWithNavaidMapper());
            selector.When(s => s.StartsWith("NAV4"))
            .Use(NavaidMapper.GetHoldingPatternMapper());
            selector.When(s => s.StartsWith("NAV5")).Use(NavaidMapper.GetFanmarkerMapper());
            selector.When(s => s.StartsWith("NAV6")).Use(NavaidMapper.GetReceiverCheckpointMapper());

            var mapit = new StringBuilder();

            using var reader = new StreamReader(File.OpenRead($@"{path}\NAV.txt"));

            var flr = selector.GetReader(reader);

            Navaid navaid = null;

            while (flr.Read())
            {
                switch (flr.Current)
                {
                case Navaid navaidData:

                    if (navaid != null)
                    {
                        if (Coordinate.TryParse($"{navaid.NavaidLongitudeFormatted} {navaid.NavaidLatitudeFormatted}", out Coordinate c))
                        {
                            navaid.Location = new Point(c.Longitude.DecimalDegree, c.Latitude.DecimalDegree);
                        }

                        navaid.id = $"{navaid.NavaidFacilityIdentifier}|{navaid.NavaidFacilityType.Replace("/", string.Empty)}|{navaid.CityAssociatedWithTheNavaid}";
                        navaid.RecordTypeIndicator = "NAVAID";

                        try
                        {
                            var readResponse = await container.Container.ReadItemAsync <Navaid>(navaid.id, new PartitionKey("NAVAID"));

                            var replaceResponse = await container.Container.ReplaceItemAsync <Navaid>(navaid, navaid.id, new PartitionKey("NAVAID"));

                            Console.WriteLine($"Replaced {navaid.NavaidFacilityIdentifier}");
                        }
                        catch (CosmosException ex) when(ex.StatusCode == HttpStatusCode.NotFound)
                        {
                            // Save the record to the DB
                            var navaidResponse = await container.Container.CreateItemAsync <Navaid>(navaid, new PartitionKey("NAVAID"));

                            Console.WriteLine($"Created {navaid.NavaidFacilityIdentifier}");
                        }
                    }

                    navaid = navaidData;

                    break;

                case NavaidRemark remark:

                    navaid.Remarks ??= new List <NavaidRemark>();
                    navaid.Remarks.Add(remark);

                    break;

                case AirspaceFixAssociatedWithNavaid asf:

                    navaid.AirspaceFixes ??= new List <AirspaceFixAssociatedWithNavaid>();
                    navaid.AirspaceFixes.Add(asf);

                    break;

                case HoldingPattern holdingPattern:

                    navaid.HoldingPatterns ??= new List <HoldingPattern>();
                    navaid.HoldingPatterns.Add(holdingPattern);

                    break;

                case FanMarkerAssociatedwithnavaid fanMarker:

                    navaid.FanMarkers ??= new List <FanMarkerAssociatedwithnavaid>();
                    navaid.FanMarkers.Add(fanMarker);

                    break;

                case VorReceiverCheckpointAssociatedWithNavaid rcvr:

                    navaid.VorReceivers ??= new List <VorReceiverCheckpointAssociatedWithNavaid>();
                    navaid.VorReceivers.Add(rcvr);

                    break;

                default:

                    throw new Exception("Not found");
                }
            }
        }