wyq 3 kuukautta sitten
vanhempi
commit
7855311020

+ 34 - 4
DW5S.App/UserControl/CtrlADTask.cs

@@ -14,6 +14,7 @@ namespace DW5S.App.UserControl
     public partial class CtrlADTask : DevExpress.XtraEditors.XtraUserControl
     {
         readonly List<ADTaskViewModel> list = new List<ADTaskViewModel>();
+        readonly List<ADSatChViewMode> AdSatChViews = new List<ADSatChViewMode>();
 
 
         public CtrlADTask()
@@ -66,21 +67,50 @@ namespace DW5S.App.UserControl
                     .Include(p => p.AdChannels)
                         .OrderByDescending(p => p.Name).ToListAsync();
 
+            var sats = await GetSats();
+
+            List<ADSatChViewMode> adSatChViews = new List<ADSatChViewMode>();
+            foreach (var adCard in adCards)
+            {
+                foreach (var adChannel in adCard.AdChannels)
+                {
+                    var satinfo = sats.FirstOrDefault(c => c.Id == adChannel.SatInfoID);
+                    if (adChannel.Enable == true && satinfo != null)
+                    {
+                        ADSatChViewMode mode = new ADSatChViewMode()
+                        {
+                            Channel = adChannel.ChNum,
+                            ClockerType = adCard.ClockerType,
+                            ClockFreq = adCard.ClockFreq,
+                            DdcFreq = adCard.DdcFreq,
+                            Mutil = adCard.Mutil,
+                            SatCode = satinfo.SatCode,
+                            SatLon = satinfo.SatLon,
+                            SatName = satinfo.SatName,
+                            TriggerMode = adCard.TriggerMode,
+                        };
+                        adSatChViews.Add(mode);
+                    }
+                }
+            }
             var chItems = adCards.SelectMany(a => a.AdChannels).Where(s => s.Enable == true).ToList();
 
             var sigList = await GetSigInfos();
-            var sats = await GetSats();
-            var chsats = sats.Where(s => chItems.Any(c => c.SatInfoID == s.Id));
+
+
+
             foreach (var sigItem in sigList)
             {
-                if (sigView != null && sigView.Id == sigItem.Id)
+                if (sigView != null && sigView.Id != sigItem.Id)
                 {
                     continue;
                 }
                 var adTask = sigItem.To<ADTaskViewModel>();
-                adTask.SatViews = chsats.ToList();
+                adTask.Sat = string.Join(",", adSatChViews.ToList().Select(s => s.Sat));
                 taskList.Add(adTask);
             }
+            AdSatChViews.Clear();
+            AdSatChViews.AddRange(adSatChViews);
             return taskList;
         }
 

+ 63 - 0
DW5S.ViewModel/ADSatChViewMode.cs

@@ -0,0 +1,63 @@
+using DW5S.Entity;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DW5S.ViewModel
+{
+    public class ADSatChViewMode
+    { /// <summary>
+      /// 触发模式
+      /// </summary>
+        [Display(Name = "触发模式")]
+        public EnumAdTriggerMode TriggerMode { get; set; }
+
+        /// <summary>
+        /// 时钟类型
+        /// </summary>
+        [Display(Name = "时钟类型")]
+        public EnumAdClockType ClockerType { get; set; }
+
+        /// <summary>
+        /// 时钟频率(MHz)
+        /// </summary>
+        [Display(Name = "时钟频率(MHz)")]
+        public double ClockFreq { get; set; }
+
+        /// <summary>
+        /// DDC频率(MHz)
+        /// </summary>
+        [Display(Name = "DDC频率(MHz)")]
+        public double DdcFreq { get; set; }
+
+
+        [Display(Name = "抽取倍数")]
+        public int Mutil { get; set; }
+        [Display(Name = "通道数")]
+        public int Channel { get; set; } 
+
+        [Display(Name = "卫星编号")]
+        public int SatCode { get; set; }
+
+        [Display(Name = "卫星名称")]
+        public string SatName { get; set; }
+
+        [Display(Name = "轨道经度")]
+        public double? SatLon { get; set; }
+
+        [Display(Name = "卫星")]
+        public string Sat
+        {
+            get
+            {
+                if (SatLon == null)
+                    return $"{SatName}({SatCode})";
+                else
+                    return $"[{SatLon}°]{SatName}({SatCode})";
+            }
+        }
+    }
+}

+ 2 - 2
DW5S.ViewModel/ADTaskViewModel.cs

@@ -41,9 +41,9 @@ namespace DW5S.ViewModel
 
         [Display(Name = "卫星")]
         [StringLength(10000)]
-        public string Sat => string.Join(",", SatViews.ToList().Select(s => s.Sat));
+        public string Sat { get; set; }
+
 
-        public List<SatViewModel> SatViews { get; set; } = new List<SatViewModel>();
 
     }
 }