BTool.RxDataInRspData.GetRspData C# (CSharp) Method

GetRspData() public method

public GetRspData ( RxDataIn rxDataIn, HCIStopWait stopWaitEvent ) : void
rxDataIn RxDataIn
stopWaitEvent HCIStopWait
return void
        public void GetRspData(RxDataIn rxDataIn, HCIStopWait.StopWaitEvent stopWaitEvent)
        {
            int index1 = 0;
            bool dataErr = false;
            int num1 = 0;
            try
            {
                HCIReplies hciReplies = new HCIReplies();
                hciReplies.ObjTag = null;
                hciReplies.CmdType = TxDataOut.CmdTypes.General;
                if (stopWaitEvent != null)
                {
                    hciReplies.ObjTag = stopWaitEvent.Tag;
                    hciReplies.CmdType = stopWaitEvent.CmdType;
                }
                switch (rxDataIn.CmdOpcode)
                {
                    case byte.MaxValue:
                        byte num2 = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                        if (dataErr)
                            break;
                        hciReplies.HciLeExtEvent = new HCIReplies.HCI_LE_ExtEvent();
                        hciReplies.HciLeExtEvent.Header.EventCode = rxDataIn.EventOpcode;
                        hciReplies.HciLeExtEvent.Header.EventStatus = num2;
                        ushort num3 = rxDataIn.EventOpcode;
                        if (num3 <= 1171U)
                        {
                            if (num3 <= 1153U)
                                return;
                            else if (num3 == 1163 || num3 == 1171)
                                break;
                            else
                                break;
                        }
                        else if (num3 <= 1408U)
                        {
                            switch (num3)
                            {
                                case 1281:
                                    hciReplies.HciLeExtEvent.AttErrorRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_ErrorRsp();
                                    if ((num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttErrorRsp.AttMsgHdr)) == 0 || dataErr)
                                        return;
                                    byte num4 = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttErrorRsp.ReqOpCode = num4;
                                    hciReplies.HciLeExtEvent.AttErrorRsp.Handle = m_dataUtils.Unload16Bits(rxDataIn.Data, ref index1, ref dataErr, false);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttErrorRsp.ErrorCode = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1282:
                                    return;
                                case 1283:
                                    return;
                                case 1284:
                                    return;
                                case 1285:
                                    hciReplies.HciLeExtEvent.AttFindInfoRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_FindInfoRsp();
                                    if ((num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttFindInfoRsp.AttMsgHdr)) == 0 || dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttFindInfoRsp.Format = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    int uuidLength = m_deviceUtils.GetUuidLength(hciReplies.HciLeExtEvent.AttFindInfoRsp.Format, ref dataErr);
                                    if (dataErr)
                                        return;
                                    int dataLength1 = uuidLength + 2;
                                    int totalLength1 = (int)rxDataIn.Length - index1;
                                    hciReplies.HciLeExtEvent.AttFindInfoRsp.HandleData = new List<HCIReplies.HandleData>();
                                    m_deviceUtils.UnloadHandleValueData(rxDataIn.Data, ref index1, totalLength1, dataLength1, ref dataErr, "Uuid", ref hciReplies.HciLeExtEvent.AttFindInfoRsp.HandleData);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1286:
                                    return;
                                case 1287:
                                    hciReplies.HciLeExtEvent.AttFindByTypeValueRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_FindByTypeValueRsp();
                                    int num5;
                                    if ((num5 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttFindByTypeValueRsp.AttMsgHdr)) == 0 || dataErr)
                                        return;
                                    if (num5 >= 2)
                                    {
                                        int length = num5 / 2;
                                        hciReplies.HciLeExtEvent.AttFindByTypeValueRsp.Handle = new ushort[length];
                                        for (int index2 = 0; index2 < length && !dataErr; ++index2)
                                        {
                                            hciReplies.HciLeExtEvent.AttFindByTypeValueRsp.Handle[index2] = m_dataUtils.Unload16Bits(rxDataIn.Data, ref index1, ref dataErr, false);
                                            if (dataErr)
                                                break;
                                        }
                                    }
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1288:
                                    return;
                                case 1289:
                                    hciReplies.HciLeExtEvent.AttReadByTypeRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_ReadByTypeRsp();
                                    int num6;
                                    if ((num6 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttReadByTypeRsp.AttMsgHdr)) == 0 || dataErr)
                                        return;
                                    int dataLength2 = (int)m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttReadByTypeRsp.Length = (byte)dataLength2;
                                    int totalLength2 = num6 - 1;
                                    if (dataLength2 == 0)
                                        return;
                                    string handleStr = string.Empty;
                                    string valueStr = string.Empty;
                                    hciReplies.HciLeExtEvent.AttReadByTypeRsp.HandleData = new List<HCIReplies.HandleData>();
                                    m_deviceUtils.UnloadHandleValueData(rxDataIn.Data, ref index1, totalLength2, dataLength2, ref handleStr, ref valueStr, ref dataErr, "Data", ref hciReplies.HciLeExtEvent.AttReadByTypeRsp.HandleData);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1290:
                                    return;
                                case 1291:
                                    hciReplies.HciLeExtEvent.AttReadRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_ReadRsp();
                                    int length1;
                                    if ((length1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttReadRsp.AttMsgHdr)) == 0 || dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttReadRsp.Data = new byte[length1];
                                    for (int index2 = 0; index2 < length1 && !dataErr; ++index2)
                                        hciReplies.HciLeExtEvent.AttReadRsp.Data[index2] = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1292:
                                    return;
                                case 1293:
                                    hciReplies.HciLeExtEvent.AttReadBlobRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_ReadBlobRsp();
                                    int length2 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttReadBlobRsp.AttMsgHdr);
                                    if (dataErr)
                                        return;
                                    if (length2 > 0)
                                    {
                                        hciReplies.HciLeExtEvent.AttReadBlobRsp.Data = new byte[length2];
                                        for (int index2 = 0; index2 < length2 && !dataErr; ++index2)
                                            hciReplies.HciLeExtEvent.AttReadBlobRsp.Data[index2] = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    }
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1294:
                                    return;
                                case 1295:
                                    return;
                                case 1296:
                                    return;
                                case 1297:
                                    hciReplies.HciLeExtEvent.AttReadByGrpTypeRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_ReadByGrpTypeRsp();
                                    if ((num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttReadByGrpTypeRsp.AttMsgHdr)) == 0 || dataErr)
                                        return;
                                    byte num7 = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttReadByGrpTypeRsp.Length = num7;
                                    if ((int)num7 == 0)
                                        return;
                                    int dataLength3 = (int)num7;
                                    int totalLength3 = (int)rxDataIn.Length - 3 - index1 + 1;
                                    hciReplies.HciLeExtEvent.AttReadByGrpTypeRsp.HandleData = new List<HCIReplies.HandleHandleData>();
                                    m_deviceUtils.UnloadHandleHandleValueData(rxDataIn.Data, ref index1, totalLength3, dataLength3, ref dataErr, ref hciReplies.HciLeExtEvent.AttReadByGrpTypeRsp.HandleData);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1298:
                                    return;
                                case 1299:
                                    hciReplies.HciLeExtEvent.AttWriteRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_WriteRsp();
                                    if ((num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttWriteRsp.attMsgHdr)) == 0 || dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1300:
                                    return;
                                case 1301:
                                    return;
                                case 1302:
                                    return;
                                case 1303:
                                    hciReplies.HciLeExtEvent.AttPrepareWriteRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_PrepareWriteRsp();
                                    num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttPrepareWriteRsp.AttMsgHdr);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttPrepareWriteRsp.Handle = m_dataUtils.Unload16Bits(rxDataIn.Data, ref index1, ref dataErr, false);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttPrepareWriteRsp.Offset = m_dataUtils.Unload16Bits(rxDataIn.Data, ref index1, ref dataErr, false);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttPrepareWriteRsp.Value = m_deviceUtils.UnloadColonData(rxDataIn.Data, ref index1, rxDataIn.Data.Length - index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1304:
                                    return;
                                case 1305:
                                    hciReplies.HciLeExtEvent.AttExecuteWriteRsp = new HCIReplies.HCI_LE_ExtEvent.ATT_ExecuteWriteRsp();
                                    num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttExecuteWriteRsp.AttMsgHdr);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1306:
                                    return;
                                case 1307:
                                    hciReplies.HciLeExtEvent.AttHandleValueNotification = new HCIReplies.HCI_LE_ExtEvent.ATT_HandleValueNotification();
                                    num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttHandleValueNotification.AttMsgHdr);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttHandleValueNotification.Handle = m_dataUtils.Unload16Bits(rxDataIn.Data, ref index1, ref dataErr, false);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttHandleValueNotification.Value = m_deviceUtils.UnloadColonData(rxDataIn.Data, ref index1, rxDataIn.Data.Length - index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1308:
                                    return;
                                case 1309:
                                    hciReplies.HciLeExtEvent.AttHandleValueIndication = new HCIReplies.HCI_LE_ExtEvent.ATT_HandleValueIndication();
                                    num1 = (int)UnloadAttMsgHeader(ref rxDataIn.Data, ref index1, ref dataErr, ref hciReplies.HciLeExtEvent.AttHandleValueIndication.AttMsgHdr);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttHandleValueIndication.Handle = m_dataUtils.Unload16Bits(rxDataIn.Data, ref index1, ref dataErr, false);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.AttHandleValueIndication.Value = m_deviceUtils.UnloadColonData(rxDataIn.Data, ref index1, rxDataIn.Data.Length - index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                case 1310:
                                    return;
                                case 1408:
                                    return;
                                default:
                                    return;
                            }
                        }
                        else
                        {
                            switch (num3)
                            {
                                case 1536:
                                case 1537:
                                case 1538:
                                case 1539:
                                case 1540:
                                case 1541:
                                case 1542:
                                case 1543:
                                case 1544:
                                case 1545:
                                case 1546:
                                case 1547:
                                case 1548:
                                case 1549:
                                case 1550:
                                case 1551:
                                    return;
                                case 1663:
                                    hciReplies.HciLeExtEvent.GapHciCmdStat = new HCIReplies.HCI_LE_ExtEvent.GAP_HCI_ExtentionCommandStatus();
                                    hciReplies.HciLeExtEvent.GapHciCmdStat.CmdOpCode = m_dataUtils.Unload16Bits(rxDataIn.Data, ref index1, ref dataErr, false);
                                    if (dataErr)
                                        return;
                                    hciReplies.HciLeExtEvent.GapHciCmdStat.DataLength = m_dataUtils.Unload8Bits(rxDataIn.Data, ref index1, ref dataErr);
                                    if (dataErr)
                                        return;
                                    ushort num8 = hciReplies.HciLeExtEvent.GapHciCmdStat.CmdOpCode;
                                    if ((uint)num8 <= 64918U)
                                    {
                                        if ((uint)num8 <= 64658U)
                                        {
                                            if ((int)num8 == 64650 || (int)num8 == 64658)
                                                return;
                                            else
                                                return;
                                        }
                                        else
                                        {
                                            switch (num8)
                                            {
                                                case 64778:
                                                case 64779:
                                                case 64780:
                                                case 64781:
                                                case 64786:
                                                case 64787:
                                                case 64790:
                                                case 64791:
                                                case 64792:
                                                case 64793:
                                                case 64902:
                                                case 64912:
                                                case 64908:
                                                case 64914:
                                                case 64918:
                                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                                    return;
                                                case 64900:
                                                case 64904:
                                                case 64906:
                                                    break;
                                                default:
                                                    return;
                                            }
                                        }
                                    }
                                    else if (num8 <= 64962U)
                                    {
                                        if (num8 != 64946U)
                                            return;
                                    }
                                    else
                                    {
                                        return;
                                    }
                                    m_deviceForm.threadMgr.rspDataIn.DataQueue.AddQTail(hciReplies);
                                    return;
                                default:
                                    return;
                            }
                        }
                }
            }
            catch (Exception ex)
            {
                m_msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, "Get Response Data Problem.\n" + ex.Message + "\nRxDataInRspData\n");
            }
        }