BTool.RxDataInThread.FindStopWait C# (CSharp) Method

FindStopWait() private method

private FindStopWait ( RxDataIn rxDataIn ) : bool
rxDataIn RxDataIn
return bool
        private bool FindStopWait(RxDataIn rxDataIn)
        {
            bool flag = false;
            try
            {
                if (rxDataIn.RxType == 4)
                {
                    int index = 0;
                    bool dataErr = false;
                    switch (rxDataIn.CmdOpcode)
                    {
                        case 0xff:
                            byte eventStatus = dataUtils.Unload8Bits(rxDataIn.Data, ref index, ref dataErr);
                            if (!dataErr)
                            {
                                ushort num1 = rxDataIn.EventOpcode;
                                if (num1 <= 1171)
                                {
                                    if (num1 <= 1153)
                                    {
                                    }
                                    else if (num1 != 1163)
                                    {
                                        if (num1 == 1171)
                                            break;
                                        else
                                            break;
                                    }
                                    else
                                        break;
                                }
                                else if (num1 <= 1408)
                                {
                                    switch (num1)
                                    {
                                        case 1281:
                                            HCIReplies.ATT_MsgHeader attMsgHdr = new HCIReplies.ATT_MsgHeader();
                                            int num2;
                                            if ((num2 = rxDataInRspData.UnloadAttMsgHeader(ref rxDataIn.Data, ref index, ref dataErr, ref attMsgHdr)) == 0)
                                            {
                                                if (num2 == 0)
                                                    break;
                                            }
                                            byte num3 = dataUtils.Unload8Bits(rxDataIn.Data, ref index, ref dataErr);
                                            if (!dataErr)
                                            {
                                                if ((num3 & 0x80) != (int)(byte)(stopWaitEvent.TxOpcode & (HCICmds.HCICmdOpcode)65408) && (num3 & 0x80) != (int)(byte)(stopWaitEvent.ReqEvt & (HCICmds.HCIEvtOpCode)65408))
                                                {
                                                    if (stopWaitEvent.ReqEvt != HCICmds.HCIEvtOpCode.InvalidEventCode)
                                                        break;
                                                }
                                                flag = true;
                                                break;
                                            }
                                            else
                                                break;
                                        case (ushort)1282:
                                        case (ushort)1283:
                                        case (ushort)1284:
                                        case (ushort)1285:
                                        case (ushort)1286:
                                        case (ushort)1287:
                                        case (ushort)1288:
                                        case (ushort)1289:
                                        case (ushort)1290:
                                        case (ushort)1291:
                                        case (ushort)1292:
                                        case (ushort)1293:
                                        case (ushort)1294:
                                        case (ushort)1295:
                                        case (ushort)1296:
                                        case (ushort)1297:
                                        case (ushort)1298:
                                        case (ushort)1299:
                                        case (ushort)1302:
                                        case (ushort)1303:
                                        case (ushort)1304:
                                        case (ushort)1305:
                                        case (ushort)1307:
                                        case (ushort)1309:
                                        case (ushort)1310:
                                            if ((int)rxDataIn.EventOpcode != (int)(ushort)stopWaitEvent.RspEvt1)
                                            {
                                                if ((int)rxDataIn.EventOpcode != (int)(ushort)stopWaitEvent.RspEvt2)
                                                    break;
                                            }
                                            flag = CheckMsgComplete(stopWaitEvent.MsgComp, eventStatus);
                                            break;
                                    }
                                }
                                else
                                {
                                    switch (num1)
                                    {
                                        case 1663:
                                            ushort num4 = dataUtils.Unload16Bits(rxDataIn.Data, ref index, ref dataErr, false);
                                            if (!dataErr)
                                            {
                                                if (num4 == (ushort)stopWaitEvent.TxOpcode)
                                                {
                                                    flag = CheckMsgComplete(stopWaitEvent.ExtCmdStat.MsgComp, eventStatus);
                                                    break;
                                                }
                                                else
                                                    break;
                                            }
                                            else
                                                break;
                                    }
                                }
                            }
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                string msg = "Find Stop Wait Problem.\n" + ex.Message + "\nRxDataInThread\n";
                msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
            }
            return flag;
        }