1
hutongqing
2025-01-02 8c6fd742db249ad4cc819cf041eb98d880a3ef73
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs
@@ -26,12 +26,18 @@
namespace WIDESEAWCS_QuartzJob.DeviceBase
{
    /// <summary>
    /// 西门子
    /// </summary>
    public class DeviceCommand : IDataTransfer
    {
        #region <Const>
        #endregion <Const>
        #region <Private Member>
        /// <summary>
        /// 数据长度
        /// </summary>
        public ushort ReadCount { get; }
        private IByteTransform byteTransform = new ReverseBytesTransform();
@@ -42,6 +48,10 @@
        #endregion <Public Menber>
        #region <Constructor function>
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <exception cref="NotSupportedException"></exception>
        public DeviceCommand()
        {
            ushort readCount = 0;
@@ -55,7 +65,7 @@
                    case TypeCode.Byte:
                    case TypeCode.SByte:
                    case TypeCode.Char:
                        readCount += 1;
                        readCount += sizeof(byte);
                        break;
                    case TypeCode.Int16:
                    case TypeCode.UInt16:
@@ -102,6 +112,11 @@
        #endregion <Private Method>
        #region <Public Method>
        /// <summary>
        /// 数据装换
        /// </summary>
        /// <param name="Content"></param>
        /// <exception cref="NotSupportedException"></exception>
        public void ParseSource(byte[] Content)
        {
            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
@@ -153,6 +168,12 @@
            }
        }
        /// <summary>
        /// 数据转换
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        /// <exception cref="NotSupportedException"></exception>
        public byte[] ToSource()
        {
            int propertyValueHasNull = -1;
@@ -224,7 +245,7 @@
                            bytes.Add(Convert.ToByte(dataLength));
                            bytes.Add(Convert.ToByte(obj.ToString().Length));
                            bytes.AddRange(bytesString);
                            for (int i = 0; i < dataLength - obj.ToString().Length; i++)
                            for (int i = 0; i < dataLength - obj.ToString().Length - 2; i++)
                            {
                                bytes.Add(0);
                            }