示例#1
0
 public ReadDataModbusInputStruct(byte belongAddress, string startAddress, ushort getCount, AddressTranslator addressTranslator)
 {
     BelongAddress = belongAddress;
     KeyValuePair<int, int> translateAddress = addressTranslator.AddressTranslate(startAddress, true);
     FunctionCode = (byte)translateAddress.Value;
     StartAddress = (ushort)translateAddress.Key;
     GetCount = getCount;
 }
示例#2
0
        /// <summary>
        ///     构造函数
        /// </summary>
        /// <param name="slaveAddress">从站号</param>
        /// <param name="startAddress">开始地址</param>
        /// <param name="writeValue">写入的数据</param>
        /// <param name="addressTranslator">地址翻译器</param>
        /// <param name="endian">端格式</param>
        public WriteDataModbusInputStruct(byte slaveAddress, string startAddress, object[] writeValue,
                                          AddressTranslator addressTranslator, Endian endian)
        {
            SlaveAddress = slaveAddress;
            var translateAddress = addressTranslator.AddressTranslate(startAddress, false);

            FunctionCode = (byte)translateAddress.Area;
            StartAddress = (ushort)translateAddress.Address;
            var writeByteValue = ValueHelper.GetInstance(endian).ObjectArrayToByteArray(writeValue);

            WriteCount =
                (ushort)(writeByteValue.Length / addressTranslator.GetAreaByteLength(translateAddress.AreaString));
            WriteByteCount = (byte)writeByteValue.Length;
            WriteValue     = writeByteValue;
        }
示例#3
0
        /// <summary>
        ///     构造函数
        /// </summary>
        /// <param name="slaveAddress">从站号</param>
        /// <param name="masterAddress">主站号</param>
        /// <param name="pduRef">报文索引</param>
        /// <param name="getType">获取数据类型</param>
        /// <param name="startAddress">开始地址</param>
        /// <param name="getCount">获取个数</param>
        /// <param name="addressTranslator">地址转换器</param>
        public ReadRequestSiemensInputStruct(byte slaveAddress, byte masterAddress, ushort pduRef,
                                             SiemensTypeCode getType, string startAddress, ushort getCount, AddressTranslator addressTranslator)
        {
            SlaveAddress  = slaveAddress;
            MasterAddress = masterAddress;
            PduRef        = pduRef;
            TypeCode      = (byte)getType;
            var address = addressTranslator.AddressTranslate(startAddress, true);

            Offset = address.Address;
            var area = address.Area;

            Area             = (byte)(area % 256);
            DbBlock          = Area == 0x84 ? (ushort)(area / 256) : (ushort)0;
            NumberOfElements = getCount;
        }
示例#4
0
 public WriteDataModbusInputStruct(byte belongAddress, string startAddress, object[] writeValue, AddressTranslator addressTranslator)
 {
     BelongAddress = belongAddress;
     KeyValuePair<int, int> translateAddress = addressTranslator.AddressTranslate(startAddress, false);
     FunctionCode = (byte)translateAddress.Value;
     StartAddress = (ushort)translateAddress.Key;
     WriteCount = (ushort)writeValue.Length;
     WriteByteCount = 0;
     WriteValue = writeValue;
 }
示例#5
0
 public WriteRequestSimenseInputStruct(ushort pduRef, string startAddress, object[] writeValue, AddressTranslator addressTranslator)
 {
     PduRef = pduRef;
     var address = addressTranslator.AddressTranslate(startAddress, true);
     Offset = address.Key;
     int area = address.Value;
     Area = (byte)(area % 256);
     DbBlock = Area == 0x84 ? (ushort)(area / 256) : (ushort)0;
     WriteValue = writeValue;
 }
示例#6
0
 public ReadRequestSimenseInputStruct(ushort pduRef, SimenseTypeCode getType, string startAddress, ushort getCount, AddressTranslator addressTranslator)
 {
     PduRef = pduRef;
     TypeCode = (byte) getType;
     var address = addressTranslator.AddressTranslate(startAddress, true);
     Offset = address.Key;
     int area = address.Value;
     Area = (byte)(area%256);
     DbBlock = Area == 0x84 ? (ushort)(area/256) : (ushort)0;
     NumberOfElements = getCount;         
 }