From 2f0c81709876d76b6b120cf6ac43f05cda6dfe4c Mon Sep 17 00:00:00 2001 From: yanjinhui <3306209981@qq.com> Date: 星期六, 22 三月 2025 09:36:13 +0800 Subject: [PATCH] 修改websocket; --- 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs | 178 +++++++++++++---------------------------------------------- 1 files changed, 39 insertions(+), 139 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs" index d2c82c9..d4f798f 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs" @@ -3,26 +3,23 @@ using System.Drawing.Imaging; using System.IO.Ports; using System.Linq; +using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; -using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; -using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; +using HslCommunication.WebSocket; +using Newtonsoft.Json; using Quartz; using SqlSugar; using StackExchange.Profiling.Internal; using WIDESEA_ISerialPortRepository; -using WIDESEA_SerialPortRepository; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.DTO; -using WIDESEAWCS_QuartzJob.StackerCrane.Enum; -using WIDESEAWCS_Tasks.ConveyorLineJob; -using WIDESEAWCS_Tasks.StackerCraneJob; namespace WIDESEAWCS_Tasks { [DisallowConcurrentExecution] - public class SerialPortJob : JobBase, IJob, IDisposable + public class SerialPortJob : JobBase, IJob,IDisposable { public void Dispose() { @@ -45,11 +42,14 @@ private readonly IPutakeRepository _putakeRepository; private readonly IProcessRepository _processRepository; private readonly ITorqueOpRepository _orqueOpRepository; - public SerialPortJob(IPutakeRepository putakeRepository, IProcessRepository processRepository, ITorqueOpRepository torqueOpRepository) + private WebSocketServer _webSocketContext; + + public SerialPortJob(IPutakeRepository putakeRepository, IProcessRepository processRepository, ITorqueOpRepository torqueOpRepository, WebSocketServer webSocketContext) { _putakeRepository = putakeRepository; _processRepository = processRepository; _orqueOpRepository = torqueOpRepository; + _webSocketContext = webSocketContext; } public Task Execute(IJobExecutionContext context) @@ -59,6 +59,7 @@ SerialPortDevice serialPortDevice = (SerialPortDevice)context.JobDetail.JobDataMap.Get("JobParams"); if (serialPortDevice != null) { + List<DeviceProDTO> deviceProDTOs = serialPortDevice.DeviceProDTOs; foreach (var item in deviceProDTOs) { @@ -67,109 +68,21 @@ DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandType) && x.ProtocolDetailType == nameof(CommandType.Set)); if (deviceProtocolDetail != null) { - - //鍏堟煡鐘舵�佸拰缁勶紝鎸夋椂闂撮檷搴� + # region Setvalue string group = item.DeviceProDataBlock; - - - //杩欓噷鍒ゆ柇缁勫埆涓変釜鐪嬫槸閭d釜锛屽氨鏌ラ偅涓伐鑹鸿〃鐨勫�� if (group == "鐢垫皵") { + //鏌ョ湅姝ラ + var com = item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (5 * 1000).ToString().PadLeft(7, '0'))+"\r"; + serialPortDevice.Communicator.Write(com+"\r"); + //鎵撳紑涓插彛鏃跺厛璁惧�� - // 鍏堢湅Dt_TorqueOp琛紝鏌ヨ鍒扮幇鍦ㄨ繖鏉℃暟鎹殑浠诲姟鍙峰拰姝ラ - var take = _putakeRepository.QueryData(x => x.Pustatus == 2 && x.Grouptype == group).OrderBy(x => x.Dispatchtime).First(); - if (take==null) - { - //绛変簬绌哄氨鍋� - } - - //鏌ュ埌鏈夎鏉℃暟鎹簡 - var process = _processRepository.QueryData(x => x.CraftType == group).OrderBy(x => x.SetpNum).First(); - - - - float torqueone = process.TorqueOne;//璇诲埌鍊间簡 - float torquetow = process.TorqueTwo; - if (torqueone != 0) - { - serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torqueone * 1000).ToString().PadLeft(7, '0')) + "\r"); - //杩欓噷缁欏畠璁惧畬鍊煎氨 鏌ュ瓨鍌ㄥ�艰〃 杩欎釜鏁版嵁鏄惁婊¤冻浜嗭紝婊¤冻浜嗗氨杩涜涓嬩竴涓�硷紝涓嶆弧瓒冲氨涓嶅彉涓�鐩寸粰鍊� - var num= _orqueOpRepository.QueryData(x => x.TakeId == take.Njtakeid && x.GroupOp == group && x.TorqueSize == torqueone).Count(); - if (num!= process.TorqueOneQuantity) - { - - } - - } - if (torquetow != 0) - { - serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torquetow * 1000).ToString().PadLeft(7, '0')) + "\r"); - } - - // // 璁$畻褰撳墠姝ラ鎵�闇�鐨� Torque 鎬绘暟 - int requiredTorqueCount = process.TorqueOneQuantity + process.TorqueTwoQuantity; - - // 鏌ヨ褰撳墠姝ラ鐨� TorqueOp 璁板綍锛屽尮閰� ProcessSte鍜岀粍锛屾鏌ユ槸鍚﹁揪鍒拌姹� - int torqueCount = _orqueOpRepository.QueryData(x => x.ProcessSte == process.SetpNum && x.GroupOp == group).Count(); - - if (torqueCount < requiredTorqueCount) - { - // 濡傛灉鏁伴噺涓嶆弧瓒筹紝鍋滄璇诲彇 - - break; - } - #region - - // //鍏堢湅宸ヨ壓琛ㄤ腑姝ラ涓�涓鎵殑鍊兼湁澶氬皯涓� 鍐嶆煡鐪婦t_TorqueOp琛ㄤ腑鏄惁鏈夎浠诲姟鍙穒d鍜屾楠ゆ�绘暟鏄惁婊¤冻宸ヨ壓琛� - // // 鏌ヨ鎵�鏈夊伐鑹烘暟鎹紝鎸夌収姝ラ鍙� SetpNum 閫掑鎺掑簭 - // var processList = _processRepository.QueryData(x => x.CraftType == group) - // .OrderBy(x => x.SetpNum) - // .ToList(); - - // foreach (var process in processList) - // { - // float torqueone = process.TorqueOne;//璇诲埌鍊间簡 - // float torquetow = process.TorqueTwo; - // if (torqueone!=0) - // { - // serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torqueone * 1000).ToString().PadLeft(7, '0')) + "\r"); - // } - // if (torquetow != 0) - // { - // serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torquetow * 1000).ToString().PadLeft(7, '0')) + "\r"); - // } - - // // 璁$畻褰撳墠姝ラ鎵�闇�鐨� Torque 鎬绘暟 - // int requiredTorqueCount = process.TorqueOneQuantity + process.TorqueTwoQuantity; - - // // 鏌ヨ褰撳墠姝ラ鐨� TorqueOp 璁板綍锛屽尮閰� ProcessSte鍜岀粍锛屾鏌ユ槸鍚﹁揪鍒拌姹� - // int torqueCount = _orqueOpRepository.QueryData(x => x.ProcessSte == process.SetpNum&& x.GroupOp== group).Count(); - - // if (torqueCount < requiredTorqueCount) - // { - // // 濡傛灉鏁伴噺涓嶆弧瓒筹紝鍋滄璇诲彇 - - // break; - // } - // //绗﹀悎瑕佹眰锛岀户缁鍙栦笅涓�姝� - - } - - //} - //if (group == "鏈烘") - //{ - - //} - //if (group == "鍦版矡") - //{ - - //} + + } #endregion - - - serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (5 * 1000).ToString().PadLeft(7, '0')) + "\r"); - //鎵撳紑涓插彛鏃跺厛璁惧�� item.DeviceProParamName = CommandType.Set.ToString(); + + } } @@ -218,54 +131,38 @@ { DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetOK)); //03鎴愬姛 - if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue)) { - ////杩欓噷鎴愬姛涔嬪悗锛岃瀛樺偍鍒扮湅Dt_TorqueOp锛堝瓨浠诲姟鍙凤紝缁勶紝鍊硷級 - //string group = ""; - //if (group == "鐢垫皵") - //{ - // var putake = _putakeRepository.QueryData(x => x.Pustatus == 2 && x.Grouptype == group).OrderByDescending(x => x.Dispatchtime).FirstOrDefault();//姣忔閮芥嬁鏈�鏃╃殑閭f潯 - // var punjid = putake.ID; - // var Nj = new Dt_TorqueOp() - // { - // TakeId = putake.Njtakeid, - // GroupOp = group, - // //ProcessSte= processList - // TorqueSize = receiveData - // }; - // _orqueOpRepository.AddData(Nj); - - //} - //if (group == "鏈烘") - //{ - - //} - //if (group == "鍦版矡") - + string group = item.DeviceProDataBlock; // 璁惧鎵�灞炵粍鍒� + if (group == "鐢垫皵") + { item.DeviceProParamName = CommandType.Set.ToString(); - - } - } - else if (item.DeviceProParamName == CommandType.Get.ToString()) - { - DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetError)); - if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue)) - { - item.DeviceProParamName = CommandType.Set.ToString(); + } + else if (item.DeviceProParamName == CommandType.Get.ToString()) + { + //DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetError)); + //if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue)) + //{ + // item.DeviceProParamName = CommandType.Set.ToString(); + //} + } } } } + + + //寤轰竴涓璞″皢鍏朵紶缁欏墠绔� + string data = JsonConvert.SerializeObject(serialPortDevice);//杩欓噷serialPortDevice鏄亣璁炬湁杩欎釜瀵硅薄 + _webSocketContext.PublishAllClientPayload(data); } + } - } - } catch (Exception ex) { @@ -274,5 +171,8 @@ WriteDebug("CommonConveyorLineJob", "test"); return Task.CompletedTask; } + + + } } -- Gitblit v1.9.3