hutongqing
2024-08-26 569e91c63636345391f741df049c9374a141a434
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -15,8 +15,10 @@
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
using HslCommunication;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -28,6 +30,7 @@
namespace WIDESEAWCS_QuartzJob
{
    [Description("通用输送线")]
    public class CommonConveyorLine : IConveyorLine
    {
        #region Private Member
@@ -105,7 +108,7 @@
            throw new NotImplementedException();
        }
        public bool SendCommand(DeviceCommand command, string deviceChildCode)
        public bool SendCommand<T>(T command, string deviceChildCode) where T : IDataTransfer, new()
        {
            DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
            if (devicePro == null)
@@ -119,6 +122,20 @@
            return false;
        }
        public T ReadCustomer<T>(string deviceChildCode) where T : IDataTransfer, new()
        {
            DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "ReadDeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
            if (devicePro == null)
            {
                throw new Exception("未找到协议信息");
            }
            else
            {
                return Communicator.ReadCustomer<T>(devicePro.DeviceProAddress);
            }
        }
        public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode)
            where TEnum : Enum
            where TValue : notnull