Beispiel #1
0
        public Document GetPassPdf(string filename, PassSettingDto settings, List <PassCalculator.SatPass> passes)
        {
            this.settings = settings;
            this.passes   = passes;

            // Create a new MigraDoc document
            this.document              = new Document();
            this.document.Info.Title   = "Satellite pass list";
            this.document.Info.Subject = "Simple satellite pass list generated by SatWatcher";
            this.document.Info.Author  = "Jannes Kaspar-Müller";

            DefineStyles();

            CreatePage();

            AddTableData();

            PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always);

            renderer.Document = document;

            renderer.RenderDocument();

            // Save the document...
            renderer.PdfDocument.Save(filename);
            Process.Start(filename);
            return(this.document);
        }
Beispiel #2
0
        private void btnCalc_Click(object sender, EventArgs e)
        {
            var location = _db.GetPosition();
            var home     = new Coordinate(Decimal.ToDouble(location.lat), Decimal.ToDouble(location.lng));

            lviewPasses.Items.Clear();
            List <SatPass> satPasses = new List <SatPass>();

            foreach (var sat in _satellites.SelectedSatellites)
            {
                var passes = SatFunctions.CalculatePasses(home, sat.Tle, new EpochTime(dtpStart.Value), 15, (int)nbxSpanDays.Value, Sgp4.wgsConstant.WGS_84);
                passes.ForEach(p => satPasses.Add(new SatPass(sat.Name, p)));
            }

            satPasses = satPasses
                        .Where(p => p.Pass.getPassDetailOfMaxElevation().elevation >= (double)nbxMinElev.Value)
                        .OrderBy(p => p.Pass.getStartEpoch().getEpoch())
                        .ToList();

            foreach (var pass in satPasses)
            {
                string[] arr = new string[4];
                arr[0] = pass.Pass.getPassDetailOfMaxElevation().time.toDateTime().ToLocalTime().ToString();
                arr[1] = pass.Name;
                arr[2] = (pass.Pass.getPassDetailsAtEnd().time.toDateTime() - pass.Pass.getPassDetailsAtStart().time.toDateTime()).ToString();
                arr[3] = Math.Round(pass.Pass.getPassDetailOfMaxElevation().elevation, 2).ToString();

                var itm = new ListViewItem(arr);
                lviewPasses.Items.Add(itm);
            }

            var settings = new PassSettingDto(location, dtpStart.Value, (int)nbxSpanDays.Value, (double)nbxMinElev.Value,
                                              _satellites.SelectedSatellites.Select(s => s.Name).ToArray());

            btnGenPdf.Enabled = true;

            lastSettings = settings;
            lastPasses   = satPasses;
        }