public void When_WriteIsCalled_Then_TheDataIsCorrect() { string sourceName = "My source name"; byte priority = 134; UInt16 syncAddress = 1023; byte sequenceNumber = 135; byte options = 0; UInt16 universe = 1953; var framingLayer = new DataPacketFramingLayer() { SourceName = sourceName, Priority = priority, SynchronizationAddress = syncAddress, SequenceNumber = sequenceNumber, Options = options, Universe = universe }; var expectedBytes = GetDataPacketFramingLayer(sourceName, priority, syncAddress, sequenceNumber, options, universe); using var owner = MemoryPool <byte> .Shared.Rent(DataPacketFramingLayer.Length); var actualBytes = owner.Memory.Span.Slice(0, DataPacketFramingLayer.Length); framingLayer.Write(actualBytes, 0); Assert.Equal(expectedBytes.ToArray(), actualBytes.ToArray()); }
public static Span <byte> GetDataPacket(byte[] CID, string sourceName, UInt16 universe, byte[] properties) { var rootLayer = new RootLayer { CID = CID, Vector = RootLayerVector.VECTOR_ROOT_E131_DATA }; var framingLayer = new DataPacketFramingLayer { SourceName = sourceName, Universe = universe }; var dmpLayer = new DMPLayer { PropertyValues = properties }; int totalLength = dmpLayer.Length + DataPacketFramingLayer.Length + RootLayer.Length; using var owner = MemoryPool <byte> .Shared.Rent(totalLength); var bytes = owner.Memory.Span.Slice(0, totalLength); rootLayer.Write(bytes, (UInt16)(DataPacketFramingLayer.Length + dmpLayer.Length)); framingLayer.Write(bytes.Slice(RootLayer.Length), dmpLayer.Length); dmpLayer.Write(bytes.Slice(RootLayer.Length + DataPacketFramingLayer.Length)); return(bytes); }
public void Given_TheDataIsCorrect_When_ParseIsCalled_Then_TheDataIsParsedAsExpected() { var expectedVector = FramingLayerVector.VECTOR_E131_DATA_PACKET; byte expectedPriority = 27; UInt16 expectedSyncAddress = 25; byte expectedSequenceNumber = 127; bool previewData = true; bool streamTerminated = true; bool forceSynchronization = true; byte expectedOptions = 0b0000_1110; UInt16 universe = 258; string expectedSourceName = "This is the source name"; var bytes = GetDataPacketFramingLayer(expectedSourceName, expectedPriority, expectedSyncAddress, expectedSequenceNumber, expectedOptions, universe); var framingLayer = DataPacketFramingLayer.Parse(bytes.ToArray()); Assert.Equal(expectedVector, framingLayer.Vector); Assert.Equal(expectedPriority, framingLayer.Priority); Assert.Equal(expectedSyncAddress, framingLayer.SynchronizationAddress); Assert.Equal(expectedSequenceNumber, framingLayer.SequenceNumber); Assert.Equal(previewData, framingLayer.PreviewData); Assert.Equal(streamTerminated, framingLayer.StreamTerminated); Assert.Equal(forceSynchronization, framingLayer.ForceSynchronization); Assert.Equal(expectedOptions, framingLayer.Options); Assert.Equal(universe, framingLayer.Universe); }
public DataPacket() { RootLayer = new RootLayer { Vector = RootLayerVector.VECTOR_ROOT_E131_DATA }; FramingLayer = new DataPacketFramingLayer(); DMPLayer = new DMPLayer(); }
public void When_TheOptionsFlagsAreSet_Then_TheResultsAreAsExpected(bool forceSynchronization, bool streamTerminated, bool previewData, byte expectedOptions) { DataPacketFramingLayer framingLayer = new DataPacketFramingLayer(); framingLayer.ForceSynchronization = forceSynchronization; framingLayer.StreamTerminated = streamTerminated; framingLayer.PreviewData = previewData; Assert.Equal(expectedOptions, framingLayer.Options); }
public static DataPacket Parse(ReadOnlySpan <byte> bytes, RootLayer rootLayer, DataPacketFramingLayer framingLayer) { DataPacket dataPacket = new DataPacket { RootLayer = rootLayer, FramingLayer = framingLayer, DMPLayer = DMPLayer.Parse(bytes) }; return(dataPacket); }
public void When_TheUniverseIsTooHigh_Then_AnExceptionIsThrown() { var framingLayer = new DataPacketFramingLayer(); Assert.Throws <ArgumentOutOfRangeException>(() => framingLayer.Universe = Constants.Universe_MaxValue + 1); }