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 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)); }
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); }