From 8c6fd742db249ad4cc819cf041eb98d880a3ef73 Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期四, 02 一月 2025 15:09:07 +0800 Subject: [PATCH] 1 --- WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs | 72 +++++++++++++++++++++++++++++++++--- 1 files changed, 66 insertions(+), 6 deletions(-) diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs index 49abede..6d19535 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs @@ -54,24 +54,54 @@ #endregion Private Member #region Public Member + /// <summary> + /// 閫氳瀵硅薄 + /// </summary> public BaseCommunicator Communicator => _communicator; + /// <summary> + /// 閫氳鍗忚淇℃伅 + /// </summary> public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs; + /// <summary> + /// 閫氳鍗忚鏄庣粏淇℃伅 + /// </summary> public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs; + /// <summary> + /// 涓婁竴娆℃墽琛岀殑浠诲姟鍙� + /// </summary> public int LastTaskNum => _lastTaskNum; + /// <summary> + /// 褰撳墠姝e湪鎵ц鐨勪换鍔″彿 + /// </summary> public int CurrentTaskNum => GetCurrentTaskNum(); + /// <summary> + /// 涓婁竴娆℃墽琛岀殑浠诲姟绫诲瀷 + /// </summary> public int? LastTaskType { get; set; } = null; + /// <summary> + /// 璁惧缂栧彿 + /// </summary> public string DeviceCode => _deviceCode; + /// <summary> + /// 璁惧鍚嶇О + /// </summary> public string DeviceName => _deviceName; + /// <summary> + /// 璁惧鏄惁宸茶繛鎺� + /// </summary> public bool IsConnected => Communicator.IsConnected && _isConnected; + /// <summary> + /// 鍫嗗灈鏈轰换鍔″懡浠� + /// </summary> public object StackerCraneTaskCommand { get; set; } #endregion @@ -125,7 +155,7 @@ private int GetCurrentTaskNum() { DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CurrentTaskNum)); - return devicePro == null ? throw new Exception($"璇诲彇褰撳墠浠诲姟鍙烽敊璇�,鏈幏鍙栧埌鍗忚淇℃伅,璇锋鏌ラ厤缃弬鏁板悕绉版槸鍚﹂厤缃�,涓旈厤缃负涓簕nameof(CurrentTaskNum)}") : (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + return devicePro == null ? throw new Exception($"璇诲彇褰撳墠浠诲姟鍙烽敊璇�,鏈幏鍙栧埌鍗忚淇℃伅,璇锋鏌ラ厤缃弬鏁板悕绉版槸鍚﹂厤缃�,涓旈厤缃负{nameof(CurrentTaskNum)}") : (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); } private void CheckConnect() @@ -154,12 +184,17 @@ #endregion #region Public Method - public T GetStackerCraneStatus<T>() - where T : notnull, Enum + /// <summary> + /// 鑾峰彇鍫嗗灈鏈虹姸鎬� + /// </summary> + public T GetStackerCraneStatus<T>() where T : notnull, Enum { return (T)GetStatus(typeof(T).Name); } + /// <summary> + /// 閲婃斁瀵硅薄 + /// </summary> public void Dispose() { _heartStatr = false; @@ -167,18 +202,34 @@ GC.SuppressFinalize(this); } - public TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum + /// <summary> + /// 鏍规嵁鍙傛暟鍚嶇О璇诲彇鍫嗗灈鏈哄搴旂殑鏁版嵁銆� + /// </summary> + /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> + /// <typeparam name="TResult">璇诲彇缁撴灉鐨勮繑鍥炲�肩被鍨嬨��</typeparam> + /// <param name="value">鍙傛暟鍚嶇О銆�</param> + /// <returns>杩斿洖璇诲彇鍒扮殑鏁版嵁銆�</returns> + /// <exception cref="Exception"></exception> + public TResult GetValue<TEnum, TResult>(TEnum value) where TEnum : Enum { if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString()); - return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + return devicePro == null ? throw new Exception($"璇诲彇鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟{value.ToString()}") : (TResult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); } + /// <summary> + /// 蹇冭烦 + /// </summary> public void Heartbeat() { } + /// <summary> + /// 鍙戦�佷换鍔″懡浠� + /// </summary> + /// <param name="command">浠诲姟鍛戒护</param> + /// <returns></returns> public bool SendCommand<T>(T command) where T : IDataTransfer, new() { if (Communicator is SiemensS7) @@ -203,13 +254,22 @@ } } + /// <summary> + /// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆� + /// </summary> + /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> + /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam> + /// <param name="enum">鍙傛暟鍚嶇О銆�</param> + /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param> + /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns> + /// <exception cref="Exception"></exception> public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) where TEnum : Enum where TValue : notnull { if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString()); - return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value); + return devicePro == null ? throw new Exception($"鍐欏叆鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value); } #endregion } -- Gitblit v1.9.3