private StackPacket SwitchDecodeMcsPDU(byte[] data)
{
// Check data length
if (ConstValue.MCS_CONNECT_RESPONSE_PDU_INDICATOR_INDEX >= data.Length)
{
throw new FormatException(ConstValue.ERROR_MESSAGE_DATA_INDEX_OUT_OF_RANGE);
}
// Decode by MCS PDU Type
StackPacket pdu = null;
byte mcsPduType = data[ConstValue.MCS_CONNECT_RESPONSE_PDU_INDICATOR_INDEX];
if (ConstValue.MCS_CONNECT_RESPONSE_PDU_INDICATOR_VALUE == mcsPduType)
{
// Decode MCS Connect Response PDU
pdu = DecodeMcsConnectResponsePDU(data);
}
else
{
// Decode MCS Domain PDU
pdu = SwitchDecodeMcsDomainPDU(data);
}
return pdu;
}