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; }