MbWords => MbRegisters
This commit is contained in:
parent
2fa1009bbd
commit
774e7d9110
|
@ -1,4 +1,5 @@
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using InnovEnergy.Lib.Utils;
|
||||||
|
|
||||||
namespace InnovEnergy.Lib.Protocols.Modbus.Conversions;
|
namespace InnovEnergy.Lib.Protocols.Modbus.Conversions;
|
||||||
|
|
||||||
|
@ -8,7 +9,7 @@ public partial class ModbusRegisters
|
||||||
{
|
{
|
||||||
var offset = index - StartRegister;
|
var offset = index - StartRegister;
|
||||||
|
|
||||||
var byteArray = BitConverter.GetBytes(Registers[offset]).Reverse().ToArray();
|
var byteArray = Registers[offset].Apply(BitConverter.GetBytes).Reverse().ToArray();
|
||||||
var bitArray = new BitArray(byteArray);
|
var bitArray = new BitArray(byteArray);
|
||||||
|
|
||||||
return bitArray.Get(bitIndex);
|
return bitArray.Get(bitIndex);
|
||||||
|
@ -18,7 +19,7 @@ public partial class ModbusRegisters
|
||||||
{
|
{
|
||||||
var offset = index - StartRegister;
|
var offset = index - StartRegister;
|
||||||
|
|
||||||
var byteArray = BitConverter.GetBytes(Registers[offset]).Reverse().ToArray();
|
var byteArray = Registers[offset].Apply(BitConverter.GetBytes).Reverse().ToArray();
|
||||||
var bitArray = new BitArray(byteArray);
|
var bitArray = new BitArray(byteArray);
|
||||||
|
|
||||||
bitArray.Set(bitIndex, value);
|
bitArray.Set(bitIndex, value);
|
||||||
|
|
|
@ -9,7 +9,7 @@ public partial class ModbusRegisters
|
||||||
var bytearray = BitConverter.GetBytes(value).Reverse().ToArray();
|
var bytearray = BitConverter.GetBytes(value).Reverse().ToArray();
|
||||||
var value32 = BitConverter.ToUInt32(bytearray);
|
var value32 = BitConverter.ToUInt32(bytearray);
|
||||||
|
|
||||||
Registers[index - StartRegister] = (UInt16)(value32 >> 16);
|
Registers[index - StartRegister ] = (UInt16)(value32 >> 16);
|
||||||
Registers[index - StartRegister + 1] = (UInt16)(value32 & 0xFFFF);
|
Registers[index - StartRegister + 1] = (UInt16)(value32 & 0xFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ public static class Accessors
|
||||||
public static MbWord WordAt (this ArraySegment<Byte> data, Byte i) => new MbWord(data, i);
|
public static MbWord WordAt (this ArraySegment<Byte> data, Byte i) => new MbWord(data, i);
|
||||||
public static MbAddress AddressAt(this ArraySegment<Byte> data, Byte i) => new MbAddress(data, i);
|
public static MbAddress AddressAt(this ArraySegment<Byte> data, Byte i) => new MbAddress(data, i);
|
||||||
|
|
||||||
public static MbWords WordsAt(this ArraySegment<Byte> data, Byte i) => new MbWords(data, i);
|
public static MbRegisters RegistersAt(this ArraySegment<Byte> data, Byte i) => new MbRegisters(data, i);
|
||||||
public static MbBits BitsAt (this ArraySegment<Byte> data, Byte i) => new MbBits(data, i);
|
public static MbBits BitsAt (this ArraySegment<Byte> data, Byte i) => new MbBits(data, i);
|
||||||
|
|
||||||
|
|
||||||
public static MbByte<T> ByteAt<T>(this ArraySegment<Byte> data,Byte i) where T : struct, IConvertible => new MbByte<T>(data, i);
|
public static MbByte<T> ByteAt<T>(this ArraySegment<Byte> data,Byte i) where T : struct, IConvertible => new MbByte<T>(data, i);
|
||||||
|
|
|
@ -16,7 +16,7 @@ internal class ReadWriteRegistersCommandFrame : ModbusFrame
|
||||||
public MbAddress WriteAddress => Data.AddressAt(6);
|
public MbAddress WriteAddress => Data.AddressAt(6);
|
||||||
public MbWord NbToWrite => Data.WordAt(8);
|
public MbWord NbToWrite => Data.WordAt(8);
|
||||||
public MbByte ByteCount => Data.ByteAt(10);
|
public MbByte ByteCount => Data.ByteAt(10);
|
||||||
public MbWords RegistersToWrite => Data.WordsAt(11);
|
public MbRegisters RegistersToWrite => Data.RegistersAt(11);
|
||||||
|
|
||||||
public Int32 ExpectedResponseSize => ReadWriteRegistersResponseFrame.ExpectedSize(NbToRead);
|
public Int32 ExpectedResponseSize => ReadWriteRegistersResponseFrame.ExpectedSize(NbToRead);
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ internal class WriteRegistersCommandFrame : ModbusFrame
|
||||||
public MbAddress WriteAddress => Data.AddressAt(2);
|
public MbAddress WriteAddress => Data.AddressAt(2);
|
||||||
public MbWord NbOfRegisters => Data.WordAt(4);
|
public MbWord NbOfRegisters => Data.WordAt(4);
|
||||||
public MbByte ByteCount => Data.ByteAt(6);
|
public MbByte ByteCount => Data.ByteAt(6);
|
||||||
public MbWords RegistersToWrite => Data.WordsAt(7);
|
public MbRegisters RegistersToWrite => Data.RegistersAt(7);
|
||||||
|
|
||||||
public Int32 ExpectedResponseSize => WriteRegistersResponseFrame.ExpectedSize();
|
public Int32 ExpectedResponseSize => WriteRegistersResponseFrame.ExpectedSize();
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ internal class ReadHoldingRegistersResponseFrame : ModbusFrame
|
||||||
internal new const Int32 MinSize = 3;
|
internal new const Int32 MinSize = 3;
|
||||||
|
|
||||||
public MbByte ByteCount => Data.ByteAt(2);
|
public MbByte ByteCount => Data.ByteAt(2);
|
||||||
public MbWords RegistersRead => Data.WordsAt(3);
|
public MbRegisters RegistersRead => Data.RegistersAt(3);
|
||||||
|
|
||||||
|
|
||||||
public ReadHoldingRegistersResponseFrame(Byte slave, UInt16s registersRead) : base(ExpectedSize(registersRead.Count))
|
public ReadHoldingRegistersResponseFrame(Byte slave, UInt16s registersRead) : base(ExpectedSize(registersRead.Count))
|
||||||
|
|
|
@ -12,7 +12,7 @@ internal class ReadInputRegistersResponseFrame : ModbusFrame
|
||||||
internal new const Int32 MinSize = 3;
|
internal new const Int32 MinSize = 3;
|
||||||
|
|
||||||
public MbByte ByteCount => Data.ByteAt(2);
|
public MbByte ByteCount => Data.ByteAt(2);
|
||||||
public MbWords RegistersRead => Data.WordsAt(3);
|
public MbRegisters RegistersRead => Data.RegistersAt(3);
|
||||||
|
|
||||||
public ReadInputRegistersResponseFrame(Byte slave, UInt16s registersRead) : base(ExpectedSize(registersRead.Count))
|
public ReadInputRegistersResponseFrame(Byte slave, UInt16s registersRead) : base(ExpectedSize(registersRead.Count))
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,7 +12,7 @@ internal class ReadWriteRegistersResponseFrame : ModbusFrame
|
||||||
internal new const Int32 MinSize = 3;
|
internal new const Int32 MinSize = 3;
|
||||||
|
|
||||||
public MbByte ByteCount => Data.ByteAt(2);
|
public MbByte ByteCount => Data.ByteAt(2);
|
||||||
public MbWords RegistersRead => Data.WordsAt(3);
|
public MbRegisters RegistersRead => Data.RegistersAt(3);
|
||||||
|
|
||||||
public ReadWriteRegistersResponseFrame(Byte slave, UInt16s registersRead) : base(ExpectedSize(registersRead.Count))
|
public ReadWriteRegistersResponseFrame(Byte slave, UInt16s registersRead) : base(ExpectedSize(registersRead.Count))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue