jiangjy 3 weeks ago
parent
commit
dd657d4cff

+ 79 - 22
FrameworkLocal/UIClient/ClientBase/ModuleDataMonitor.cs

@@ -33,34 +33,91 @@ namespace MECF.Framework.UI.Client.ClientBase
                     _mapWaferDataModule[moduleInfo.Value.WaferDataName] = moduleInfo.Value;
                 }
             }
-            EventClient.Instance.OnUpdateWaferEvent += OnTimer;
-            OnTimer(_lstWaferDataName);//刚开始全部获取一遍
-            //_monitorThread = new PeriodicJob(500, OnTimer, "Monitor Module Data Thread", true);
+            var enableUpdateWafersNotify = (bool)QueryDataClient.Instance.Service.GetConfig("System.EnableUpdateWafersNotify");
+            if (enableUpdateWafersNotify)
+            {
+                EventClient.Instance.OnUpdateWaferEvent += OnTimer;
+                OnTimer(_lstWaferDataName);//刚开始全部获取一遍
+            }
+            else
+            {
+                _monitorThread = new PeriodicJob(500, OnTimer, "Monitor Module Data Thread", true);
+
+            }
+
         }
+        private bool OnTimer()
+        {
+            try
+            {
+                Dictionary<string, object> data = new Dictionary<string, object>();
+                data = QueryDataClient.Instance.Service.PollData(_lstWaferDataName);
+                if (data != null && Application.Current != null)
+                {
+                    Application.Current.Dispatcher.Invoke(new Action(() =>
+                    {
+                        foreach (var waferData in data)
+                        {
+                            if (!_mapWaferDataModule.ContainsKey(waferData.Key))
+                                continue;
+
+                            RTDefine.WaferInfo[] wafers = waferData.Value as RTDefine.WaferInfo[];
+                            if (wafers == null)
+                                continue;
+
+                            ModuleInfo info = _mapWaferDataModule[waferData.Key];
+                            if (info.WaferManager.Wafers.Count == 0)
+                            {
+                                for (int i = 0; i < wafers.Length; i++)
+                                {
+                                    info.WaferManager.Wafers.Add(WaferInfoConverter(wafers[i], info.WaferModuleID, i));
+                                }
 
+                                if (info.IsWaferReverseDisplay)
+                                {
+                                    info.WaferManager.Wafers = new ObservableCollection<WaferInfo>(info.WaferManager.Wafers.Reverse());
+                                }
+                                continue;
+                            }
+
+                            if (wafers.Length == info.WaferManager.Wafers.Count)
+                            {
+                                int index;
+                                for (int i = 0; i < wafers.Length; i++)
+                                {
+                                    if (info.IsWaferReverseDisplay)
+                                        index = wafers.Length - i - 1;
+                                    else
+                                        index = i;
+
+                                    var convertedWafer = WaferInfoConverter(wafers[index], info.WaferModuleID, index);
+                                    info.WaferManager.Wafers[i].WaferStatus = convertedWafer.WaferStatus;
+                                    info.WaferManager.Wafers[i].WaferID = convertedWafer.WaferID;
+                                    info.WaferManager.Wafers[i].SourceName = convertedWafer.SourceName;
+                                    info.WaferManager.Wafers[i].WaferType = convertedWafer.WaferType;
+                                    info.WaferManager.Wafers[i].UseCount = convertedWafer.UseCount;
+                                    info.WaferManager.Wafers[i].UseTime = convertedWafer.UseTime;
+                                    info.WaferManager.Wafers[i].UseThick = convertedWafer.UseThick;
+                                    info.WaferManager.Wafers[i].Thick = convertedWafer.Thick;
+                                    info.WaferManager.Wafers[i].LotId = convertedWafer.LotId;
+                                    info.WaferManager.Wafers[i].ProcessJobID = convertedWafer.ProcessJobID;
+                                }
+                            }
+                        }
+                    }));
+                }
+            }
+            catch (Exception ex)
+            {
+                LOG.Error(ex.Message);
+            }
+
+            return true;
+        }
         private bool? OnTimer(IEnumerable<string> modules)
         {
             try
             {
-                //Dictionary<string, object> data = new Dictionary<string, object>();
-                //var enableUpdateWafersNotify = (bool)QueryDataClient.Instance.Service.GetConfig("System.EnableUpdateWafersNotify");
-                //if (enableUpdateWafersNotify)
-                //{
-                //    var changeModule = QueryDataClient.Instance.Service.GetData("System.ChangeWafers");
-                //    if (changeModule is Dictionary<string, bool> module && module?.Count > 0)
-                //    {
-                //        var changedModule = module.Where(r => r.Value);
-                //        if (!changedModule.Any()) return true;
-                //        InvokeClient.Instance.Service.DoOperation("System.UpdateWafersNotify", changeModule);
-                //        data = QueryDataClient.Instance.Service.PollData(changedModule.Select(r => $"{r.Key}.ModuleWaferList"));
-
-                //    }
-
-                //}
-                //else
-                //{
-                //    data = QueryDataClient.Instance.Service.PollData(_lstWaferDataName);
-                //}
                 if (modules?.Any() == true)
                 {
                     var changedModule = modules.Where(r => _mapWaferDataModule.ContainsKey(r + ".ModuleWaferList"));

+ 2 - 2
Furnace/FurnaceRT/Config/System.sccfg

@@ -2300,7 +2300,7 @@
 
 	</configs>
 
-	<configs name="CarrierRobot" visible="false">
+	<configs name="CarrierRobot" >
 		<config default="Sunway" name="RobotType" description="Robot Type" max="" min="" paramter="Sunway"  tag="ReadOnlySelection" unit="" type="String" />
 		<config default="10" name="PickTimeout" description="Pick Time Out" max="360" min="1" paramter="" tag="" unit="s" type="Integer" />
 		<config default="10" name="HomeTimeout" description="Home Time Out" max="360" min="1" paramter="" tag="" unit="s" type="Integer" />
@@ -2324,7 +2324,7 @@
 		<config default="10" name="TransferModeNumber" description="Transfer Mode Number" max="10000" min="1" paramter="" tag="" unit="次" type="Integer" />
 		<config default="1" name="RunToRunNumber" description="Run To Run Number" max="10000" min="1" paramter="" tag="" unit="次" type="Integer" />
 		<config default="false" name="RunToRunMode" description="Run To Run Mode" max="" min="" paramter="" tag="" unit=""  type="Bool" />
-		<configs name="CarrierRobotParameter">
+		<configs name="CarrierRobotParameter" visible="false">
 			<configs name="Parameter">
 				<configs name="P000">
 					<config default="Z轴TP用点动速度"            name="SettingItem"		description=""			max=""				min=""		paramter=""			type="String" />