protected RequestItem(PlcArea area, ushort dbNumber, ushort numberOfItems, int offset, DataTransportSize transportSize, ushort elementSize, Memory <byte> address) { Area = area; DbNumber = dbNumber; NumberOfItems = numberOfItems; Offset = offset; TransportSize = transportSize; Address = address; ElementSize = elementSize; }
private static ushort TransportSizeToElementSize(DataTransportSize t) => t switch {
protected void DetermineTransportAndElementSize(PlcArea area, ItemDataTransportSize t) { if (area == PlcArea.CT || area == PlcArea.TM) { TransportSize = DataTransportSize.OctetString; ElementSize = 2; return; } switch (t) { case ItemDataTransportSize.Bit: { TransportSize = DataTransportSize.Bit; ElementSize = 1; } break; case ItemDataTransportSize.Byte: case ItemDataTransportSize.Char: { TransportSize = DataTransportSize.Byte; ElementSize = 1; } break; case ItemDataTransportSize.Word: { TransportSize = DataTransportSize.Byte; ElementSize = 2; } break; case ItemDataTransportSize.Int: { TransportSize = DataTransportSize.Int; ElementSize = 2; } break; case ItemDataTransportSize.Dword: { TransportSize = DataTransportSize.Byte; ElementSize = 4; } break; case ItemDataTransportSize.Dint: { TransportSize = DataTransportSize.Dint; ElementSize = 4; } break; case ItemDataTransportSize.Real: { TransportSize = DataTransportSize.Real; ElementSize = 4; } break; default: { TransportSize = DataTransportSize.Byte; ElementSize = 1; } break; } }
internal WriteRequestItem(PlcArea area, ushort dbNumber, ushort numberOfItems, int offset, DataTransportSize transportSize, ushort elementSize, Memory <byte> address, Memory <byte> data) : base(area, dbNumber, numberOfItems, offset, transportSize, elementSize, address) { Data = data; }