public void IsValidDataLength() { // Arrange var header1 = new EnttecMessageHeader(); var header2 = new EnttecMessageHeader(); var header3 = new EnttecMessageHeader(); var header4 = new EnttecMessageHeader(); header1.SetMessageType(ApplicationMessages.OutputOnlySendDmxPacketRequest); header2.SetMessageType(ApplicationMessages.OutputOnlySendDmxPacketRequest); header3.SetMessageType(ApplicationMessages.OutputOnlySendDmxPacketRequest); header4.SetMessageType(ApplicationMessages.OutputOnlySendDmxPacketRequest); // Act header1.SetDataLength(601); header2.SetDataLength(0); header3.SetDataLength(1); header4.SetDataLength(600); // Assert Assert.False(header1.IsValid()); Assert.False(header2.IsValid()); Assert.True(header3.IsValid()); Assert.True(header4.IsValid()); }
private bool SendInternal(ApplicationMessages messageType, byte[] messageData) { var header = new EnttecMessageHeader(); header.SetMessageType(messageType); header.SetDataLength(messageData.Length); if (!header.IsValid()) { throw new ArgumentException("Invalid message data!"); } if (!_ftdiDriver.Write(header.Data)) { return(false); } var body = new EnttecMessageBody(messageData); if (!_ftdiDriver.Write(body.Data)) { return(false); } var footer = new EnttecMessageFooter(); if (!_ftdiDriver.Write(footer.Data)) { return(false); } return(true); }
public void DataBiggerThanFourByteThrowsException() { // Arrange, Act, Assert Assert.Throws <ArgumentException>(() => { var test = new EnttecMessageHeader(new byte[5]); }); }
public void DataLength() { // Arrange var header = new EnttecMessageHeader(); // Act header.SetDataLength(10); // Assert Assert.Equal(10, header.GetDataLength()); }
public byte[] CreateMessageFromParts(EnttecMessageHeader header, EnttecMessageBody body, EnttecMessageFooter footer) { var message = new List <byte>(); message.AddRange(header.Data); message.AddRange(body.Data); message.AddRange(footer.Data); return(message.ToArray()); }
public void MessageType() { // Arrange var header = new EnttecMessageHeader(); // Act header.SetMessageType(ApplicationMessages.GetWidgetSerialNumberRequest); // Assert Assert.Equal(10, header.Data[1]); }
public byte[] CreateMessage(ApplicationMessages messageType, byte[] messageData) { var header = new EnttecMessageHeader(); header.SetMessageType(messageType); header.SetDataLength(messageData.Length); var body = new EnttecMessageBody(messageData); var footer = new EnttecMessageFooter(); if (!header.IsValid() || !footer.IsValid()) { throw new ArgumentException("Invalid message data!"); } return(CreateMessageFromParts(header, body, footer)); }
public void StartCodeByte() { // Arrange var header1 = new EnttecMessageHeader(); var header2 = new EnttecMessageHeader(new byte[] { 0x02, 0x03, 0x04, 0x05 }); // Act header1.SetStartCodeByte(0x01); // Assert Assert.Equal(0x01, header1.GetStartCodeByte()); Assert.Equal(0x02, header2.GetStartCodeByte()); Assert.Equal(0x02, header2.Data[0]); Assert.Equal(0x03, header2.Data[1]); Assert.Equal(0x04, header2.Data[2]); Assert.Equal(0x05, header2.Data[3]); }
private byte[] ReceiveInternal(ApplicationMessages messageType) { var startCode = new byte[1]; if (!_ftdiDriver.Read(startCode)) { return(null); } if (EnttecMessageHeader.StartCodeByte != startCode[0]) { return(null); } var byte1 = new byte[1]; var byte2 = new byte[1]; var byte3 = new byte[1]; if (!_ftdiDriver.Read(byte1)) { return(null); } if (!_ftdiDriver.Read(byte2)) { return(null); } if (!_ftdiDriver.Read(byte3)) { return(null); } if (byte1[0] != (byte)messageType) { return(null); } var header = new EnttecMessageHeader(new byte[] { startCode[0], byte1[0], byte2[0], byte3[0] }); if (!header.IsValid()) { return(null); } var body = new EnttecMessageBody(new byte[header.GetDataLength()]); if (!_ftdiDriver.Read(body.Data)) { return(null); } var footer = new EnttecMessageFooter(); if (!(_ftdiDriver.Read(footer.Data) & footer.IsValid())) { return(null); } return(body.Data); }