private StackPacket SwitchDecodeMcsSendDataRequestPDU(
byte[] data,
byte[] decryptedUserData,
SecurityHeaderType securityHeaderType)
{
// Parse "share control header"
int currentIndex = 0;
TS_SHARECONTROLHEADER header = ParseTsShareControlHeader(decryptedUserData, ref currentIndex);
ShareControlHeaderType shareControlHeaderType = GetShareControlHeaderType(header);
// Switch decoder by share control header type
StackPacket pdu = null;
switch (shareControlHeaderType)
{
// Confirm Active PDU
case ShareControlHeaderType.PDUTYPE_CONFIRMACTIVEPDU:
pdu = DecodeConfirmActivePDU(data, decryptedUserData, securityHeaderType);
break;
// Data PDU
case ShareControlHeaderType.PDUTYPE_DATAPDU:
pdu = SwitchDecodeMcsDataPDU(data, decryptedUserData, securityHeaderType);
break;
case (ShareControlHeaderType)9:
pdu = DecodeClientInfoPdu(data, decryptedUserData, securityHeaderType);
break;
default:
throw new FormatException(ConstValue.ERROR_MESSAGE_ENUM_UNRECOGNIZED);
}
return pdu;
}