12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using Ips.Library.Entity;
- namespace Ips.Sps.Scheduling
- {
- public class RunSig
- {
- public int SigId { get; set; }
- public SignalCategory SigCategory { get; set; }
- public SignalType SigType { get; set; }
- public long SigFreq { get; set; }
- public long FreqStart { get; set; }
- public int FreqStep { get; set; }
- public long FreqEnd { get; set; }
- public int BandWidth { get; set; }
- public int SigLen { get; set; }
- public int MainSatId { get; set; }
- public List<int> AdjaSatIds { get; set; }
- public bool HasRange { get; set; }
- public double SigLon { get; set; }
- public double SigLat { get; set; }
- public double SigAlt { get; set; }
- public double LonRange { get; set; }
- public double LatRange { get; set; }
- public double LonMin => SigLon - LonRange / 2;
- public double LonMax => SigLon + LonRange / 2;
- public double LatMin => SigLat - LatRange / 2;
- public double LatMax => SigLat + LatRange / 2;
- public int EmtId { get; set; }
- public string SigEmtCode { get; set; }
- public string SigEmtName { get; set; }
- public EmtType SigEmtType { get; set; }
- public double SigEmtSpeed { get; set; }
- public bool HasSample { get; set; }
- public List<RunSigSample> SigSamples { get; set; } = new List<RunSigSample>();
- public int Fs { get; set; }
- public RunSigDama DamaEx { get; set; } = new RunSigDama();
- public RunSig Copy()
- {
- return (RunSig)this.MemberwiseClone();
- }
- }
- public static class RunSigExtensions
- {
- public static IEnumerable<int> GetSatList(this RunSig sig)
- {
- IEnumerable<int> satIds;
- if (sig.MainSatId > 0)
- {
- satIds = new int[] { sig.MainSatId }.Concat(sig.AdjaSatIds);
- }
- else
- {
- satIds = sig.AdjaSatIds.ToList();
- }
- return satIds.Distinct();
- }
- public static double[] GetSigLla(this RunSig sig)
- {
- return new double[] { sig.SigLon, sig.SigLat, sig.SigAlt };
- }
- public static double[] GetSigRange(this RunSig sig)
- {
- return new double[] { sig.SigLon, sig.SigLat, sig.SigAlt, sig.LonRange, sig.LatRange };
- }
- public static double[] GetSigZone(this RunSig sig)
- {
- return new double[] { sig.LonMin, sig.LonMax, sig.LatMin, sig.LatMax };
- }
- }
- }
|