Example #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;
 }
Example #2
0
        public ReadDataModbusInputStruct(byte slaveAddress, string startAddress, ushort getCount,
                                         AddressTranslator addressTranslator)
        {
            SlaveAddress = slaveAddress;
            var translateAddress = addressTranslator.AddressTranslate(startAddress, true);

            FunctionCode = (byte)translateAddress.Area;
            StartAddress = (ushort)translateAddress.Address;
            GetCount     = (ushort)Math.Ceiling(getCount / addressTranslator.GetAreaByteLength(translateAddress.AreaString));
        }
        /// <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;
        }
Example #4
0
        /// <summary>
        ///     构造函数
        /// </summary>
        /// <param name="slaveAddress">从站地址</param>
        /// <param name="masterAddress">主站地址</param>
        /// <param name="pduRef">报文索引</param>
        /// <param name="startAddress">开始地址</param>
        /// <param name="writeValue">写入值</param>
        /// <param name="addressTranslator">地址转换器</param>
        public WriteRequestSiemensInputStruct(byte slaveAddress, byte masterAddress, ushort pduRef, string startAddress,
                                              object[] writeValue, AddressTranslator addressTranslator)
        {
            SlaveAddress  = slaveAddress;
            MasterAddress = masterAddress;
            PduRef        = pduRef;
            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;
            WriteValue = writeValue;
        }
 public void Setup()
 {
     _excelDataProvider = A.Fake <ExcelDataProvider>();
     A.CallTo(() => _excelDataProvider.ExcelMaxRows).Returns(ExcelMaxRows);
     _addressTranslator = new AddressTranslator(_excelDataProvider);
 }
Example #6
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;
 }
Example #7
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;
        }
Example #8
0
 public void Setup()
 {
     _excelDataProvider = MockRepository.GenerateStub <ExcelDataProvider>();
     _excelDataProvider.Stub(x => x.ExcelMaxRows).Return(ExcelMaxRows);
     _addressTranslator = new AddressTranslator(_excelDataProvider);
 }
Example #9
0
        public ReadDataModbusInputStruct(byte belongAddress, string startAddress, ushort getCount, AddressTranslator addressTranslator)
        {
            BelongAddress = belongAddress;
            var translateAddress = addressTranslator.AddressTranslate(startAddress, true);

            FunctionCode = (byte)translateAddress.Area;
            StartAddress = (ushort)translateAddress.Address;
            GetCount     = getCount;
        }
Example #10
0
        public WriteDataModbusInputStruct(byte belongAddress, string startAddress, object[] writeValue, AddressTranslator addressTranslator)
        {
            BelongAddress = belongAddress;
            var translateAddress = addressTranslator.AddressTranslate(startAddress, false);

            FunctionCode   = (byte)translateAddress.Area;
            StartAddress   = (ushort)translateAddress.Address;
            WriteCount     = (ushort)Math.Ceiling(writeValue.Length / 2.0);
            WriteByteCount = 0;
            WriteValue     = writeValue;
        }
Example #11
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;
 }
Example #12
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;         
 }