private void ParseBacNetMessage(byte[] bytes, IPEndPoint endPoint)
{
if (bytes[0] != BacNetEnums.BACNET_BVLC_TYPE_BIP || bytes[4] != BacNetEnums.BACNET_PROTOCOL_VERSION)
return;
BacNetRawMessage msg = new BacNetRawMessage();
msg.All = bytes;
if (msg.All == null)
{
_logger.Info("Malformed packet received.");
return;
}
byte type = (byte)(msg.Apdu[0] >> 4);
switch (type)
{
case 0:
ParseConfirmed(msg, endPoint);
break;
case 1:
ParseUncofirmed(msg, endPoint);
break;
case 2:
ParseSimpleAck(msg, endPoint);
break;
case 3:
ParseComplexAck(msg, endPoint);
break;
case 5:
ParseErrorAck(msg, endPoint);
break;
}
}