public Item <bool>[] ReadBools(DeviceAddress deviceAddress, ushort length) { var datas = readBool(deviceAddress, length); var bdatas = NetConvert.BytesToBools(datas, length); return(NetConvert.ToItems(bdatas, 0, length)); }
public Item <bool>[] ReadBools(DeviceAddress deviceAddress, ushort length) { var datas = readyBytes(deviceAddress, (int)Math.Ceiling((double)(deviceAddress.BitAddress + length) / 8)); var bools = NetConvert.BytesToBools(datas, deviceAddress.BitAddress, length); return(NetConvert.ToItems(bools, 0, length)); }
/// <summary> /// Force Multi Coils Rely /// Function:0x0F /// </summary> /// <param name="address">00001~09999</param> /// <param name="data"></param> /// <param name="count">bools count of byte array</param> /// <returns></returns> private byte[] writeMulColilRely(int address, byte[] data, int count) { byte[] relyBuffer = new byte[6]; var values = NetConvert.BytesToBools(data, count); for (int i = 0; i < count; i++) { var addressString = string.Format("{0:D5}", address + i + 1);//地址偏移+1 if (_mapping.SetValue(addressString, new bool[] { values[i] }) == -1) { return(errorRely(FunctionCode.ForceMulCoil, ErrorCode.LllegalDataAddress)); } } relyBuffer[0] = (byte)_salveId; relyBuffer[1] = (byte)FunctionCode.ForceMulCoil; var addrByte = UnsafeNetConvert.UShortToBytes((ushort)address, ByteOrder.BigEndian); Array.Copy(addrByte, 0, relyBuffer, 2, 2); var countByte = UnsafeNetConvert.UShortToBytes((ushort)count, ByteOrder.BigEndian); Array.Copy(countByte, 0, relyBuffer, 4, 2); return(relyBuffer); }