Beispiel #1
0
        public static byte[][] ReadRegisters(byte slaveAddress, ushort startAddress, ushort numberOfPoints, IModbusMaster master, uint wordSize, Func <byte[], byte[]> endianConverter, bool wordSwap = false)
        {
            var registerMultiplier = RegisterFunctions.GetRegisterMultiplier(wordSize);
            var registersToRead    = (ushort)(numberOfPoints * registerMultiplier);
            var values             = master.ReadHoldingRegisters(slaveAddress, startAddress, registersToRead);

            if (wordSwap)
            {
                Array.Reverse(values);
            }
            return(RegisterFunctions.ConvertRegistersToValues(values, registerMultiplier).Select(endianConverter).ToArray());
        }