From f8f31ede7a7d550cf0cea943226bd521bd4274a8 Mon Sep 17 00:00:00 2001
From: Zhang-Hong-Lin <a3219986988@163.com>
Date: 星期二, 04 三月 2025 20:24:52 +0800
Subject: [PATCH] a

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs |  106 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 86 insertions(+), 20 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs"
index 4be4e95..ea90c33 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs"
@@ -17,6 +17,7 @@
 using System.Threading.Tasks;
 using WIDESEAWCS_Communicator;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_ISystemServices;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
@@ -29,12 +30,15 @@
     [DisallowConcurrentExecution]
     public class ZXJJob : JobBase, IJob
     {
+        public static bool W_ZXJ_Heat = true;
         private readonly ITaskService _taskService;
         WebSocketServer _webSocketServer;
-        public ZXJJob(ITaskService taskService, WebSocketServer webSocketServer)
+        private readonly Idt_ErrormsginfoService _ErrormsginfoService;
+        public ZXJJob(ITaskService taskService, WebSocketServer webSocketServer,Idt_ErrormsginfoService errormsginfoService)
         {
             _taskService = taskService;//娉ㄥ叆
             _webSocketServer = webSocketServer;
+            _ErrormsginfoService = errormsginfoService;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -43,32 +47,94 @@
             bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
             if (flag && value != null)
             {
-                OtherDevice device = (OtherDevice)value;
+                
                 try
                 {
-                    //Example
-                    //device.GetValue  璇诲彇
-                    //device.SetValue  鍐欏叆
-                    //_taskService.Repository; //浠撳偍灞傦紝杩涜鏁版嵁搴撹闂�
-                    OHTReadData oHTReadData = new OHTReadData();
-                    //todo:璇诲彇璁惧鏁版嵁锛�
-
-
-                    //todo:璁惧鐘舵�佹暟鎹彂閫佺粰鍓嶇
-                  
-
-                    
-                    //WriteInfo(device.DeviceName, "infoLog");
-
-                    //WriteDebug(device.DeviceName, "debugLog");
+                    //澶╄溅PLC瀵硅薄
+                    OtherDevice TCevice = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "澶╄溅");
+                    if (TCevice.Communicator.IsConnected)
+                    {
+                        #region 璇诲彇澶╄溅璁惧鏁版嵁
+                        OHTJob.oHTReadData.R_HeartBeat = TCevice.GetValue<DeviceDBName, bool>(DeviceDBName.R_HeartBeat);
+                        OHTJob.oHTReadData.R_RunMode = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_RunMode);
+                        OHTJob.oHTReadData.R_RunState = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_RunState);
+                        OHTJob.oHTReadData.R_AlarmCode = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_AlarmCode);
+                        OHTJob.oHTReadData.R_TaskState = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState);
+                        OHTJob.oHTReadData.R_CurrentLine = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentLine);
+                        OHTJob.oHTReadData.R_CurrentColumn = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentColumn);
+                        OHTJob.oHTReadData.R_RiseUp_Position = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_RiseUp_Position);
+                        OHTJob.oHTReadData.R_TaskNumber = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_TaskNumber);
+                        OHTJob.oHTReadData.R_Loaded_1 = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_1);
+                        OHTJob.oHTReadData.R_Loaded_2 = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_2);
+                        OHTJob.oHTReadData.weight = TCevice.GetValue<DeviceDBName, float>(DeviceDBName.weight);
+                        #endregion
+                    }
+                    else
+                    {
+                        throw new Exception($"澶╄溅PLC杩炴帴澶辫触");
+                    }
+                    //鏁村舰鏈篜LC瀵硅薄
+                    OtherDevice device = (OtherDevice)value;
+                    if (device.Communicator.IsConnected)
+                    {
+                        #region 璇诲彇鏁村舰鏈鸿澶囨暟鎹�
+                        OHTJob.oHTReadData.R_ZXJ_HeartBeat = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_HeartBeat);
+                        OHTJob.oHTReadData.R_ZXJ_isWork = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_isWork);
+                        OHTJob.oHTReadData.R_ZXJ_RGVMode = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_RGVMode);
+                        OHTJob.oHTReadData.R_ZXJ_TCMode = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_TCMode);
+                        OHTJob.oHTReadData.R_ZXJ_TC_isready = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_TC_isready);
+                        OHTJob.oHTReadData.R_TCMode_TC = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_TCMode_TC);
+                        OHTJob.oHTReadData.R_TCMode_CC = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_TCMode_CC);
+                        OHTJob.oHTReadData.R_HC_isReady = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_HC_isReady);
+                        OHTJob.oHTReadData.R_HC_isReadyWork = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_HC_isReadyWork);
+                        OHTJob.oHTReadData.R_issafe = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_issafe);
+                        #endregion
+                        if (W_ZXJ_Heat)
+                        {
+                            W_ZXJ_Heat = false;
+                            device.SetValue(ZXJDBName.W_ZXJ_HeartBeat, W_ZXJ_Heat);
+                        }
+                        else
+                        {
+                            W_ZXJ_Heat = true;
+                            device.SetValue(ZXJDBName.W_ZXJ_HeartBeat, W_ZXJ_Heat);
+                        }
+                    }
+                    else
+                    {
+                        throw new Exception($"鏁村舰鏈篜LC杩炴帴澶辫触");
+                    }
+                    //瑙勬暣鏈篜LC瀵硅薄
+                    OtherDevice GZJevice = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "闃虫瀬瑙勬暣鏈�");
+                    if (GZJevice.Communicator.IsConnected)
+                    {
+                        #region 璇诲彇瑙勬暣鏈鸿澶囨暟鎹�
+                        OHTJob.oHTReadData.R_ZXJ_HeartBeat = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_GZJ_HeartBeat);
+                        OHTJob.oHTReadData.R_GZJ_isWork = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_GZJ_isWork);
+                        OHTJob.oHTReadData.R_RGVMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_RGVMode);
+                        OHTJob.oHTReadData.R_CCMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_CCMode);
+                        OHTJob.oHTReadData.R_TCMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_TCMode);
+                        OHTJob.oHTReadData.R_DK_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_DK_isready);
+                        OHTJob.oHTReadData.R_XK_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_XK_isready);
+                        OHTJob.oHTReadData.R_TC_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_TC_isready);
+                        #endregion
+                    }
+                    else
+                    {
+                        throw new Exception($"瑙勬暣鏈篜LC杩炴帴澶辫触");
+                    }
+                    //鐘舵�佹暟鎹彂閫佺粰鍓嶇
+                    string ohtData = JsonConvert.SerializeObject(OHTJob.oHTReadData);
+                    _webSocketServer.PublishAllClientPayload(ohtData);
                 }
                 catch (Exception ex)
                 {
-                    WriteError(device.DeviceName, "閿欒", ex);
+                    //鐘舵�佹暟鎹彂閫佺粰鍓嶇
+                    string ohtData = JsonConvert.SerializeObject(OHTJob.oHTReadData);
+                    _webSocketServer.PublishAllClientPayload(ohtData);
+                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 1);
                 }
             }
-
-
             return Task.CompletedTask;
         }
 

--
Gitblit v1.9.3