Exemplo n.º 1
0
        public int WriteUShorts(DeviceAddress deviceAddress, ushort[] datas)
        {
            ushort startAddress;

            if (Function.EnableWriteRegister(deviceAddress.Address, out startAddress))
            {
                byte[] valueBytes = UnsafeNetConvert.BytesPerversion(UnsafeNetConvert.UShortsToBytes(datas, deviceAddress.ByteOrder));
                byte[] sendBytes  = getWriteMulRegisterHeader((byte)deviceAddress.SalveId, startAddress, valueBytes);
                return(writeBytes(sendBytes));
            }
            else
            {
                return(-1);
            }
        }
Exemplo n.º 2
0
        public int WriteFloat(DeviceAddress deviceAddress, float datas)
        {
            ushort startAddress;

            if (Function.EnableWriteRegister(deviceAddress.Address, out startAddress))
            {
                var valueBytes = (deviceAddress.ByteOrder == ByteOrder.BigEndian) ? UnsafeNetConvert.FloatToBytes(datas, deviceAddress.ByteOrder)
                    : UnsafeNetConvert.BytesPerversion(UnsafeNetConvert.FloatToBytes(datas, deviceAddress.ByteOrder));
                byte[] sendBytes = getWriteMulRegisterHeader((byte)deviceAddress.SalveId, startAddress, valueBytes);
                return(writeBytes(sendBytes));
            }
            else
            {
                return(-1);
            }
        }
Exemplo n.º 3
0
        private byte[] readRegister(DeviceAddress deviceAddress, int lenght)
        {
            byte   salveID = (byte)deviceAddress.SalveId;
            ushort startAddress;
            byte   funcCode = (byte)Function.GetReadFunctionCode(deviceAddress.Address, out startAddress);

            if (funcCode == 3 || funcCode == 4)
            {
                //若byteOrder为bigEndian不需要颠倒word高低位
                return((deviceAddress.ByteOrder == ByteOrder.BigEndian)? readBytes(salveID, startAddress, funcCode, (ushort)lenght)
                    : UnsafeNetConvert.BytesPerversion(readBytes(salveID, startAddress, funcCode, (ushort)lenght)));
            }
            else
            {
                return(null);
            }
        }