Example #1
0
        private bool QueueDataReady()
        {
            object data = new TxDataOut();
            bool   flag = dataQ.RemoveQHead(ref data);

            if (flag)
            {
                TxDataOut txDataOut = (TxDataOut)data;
                bool      dataFound = false;
                flag = ProcessQData(txDataOut, ref dataFound);
            }
            Thread.Sleep(10);
            return(flag);
        }
Example #2
0
        private bool ProcessQData(TxDataOut txDataOut, ref bool dataFound)
        {
            bool flag = true;

            dataFound = false;
            ushort key = txDataOut.CmdOpcode;

            if (HCIStopWait.CmdChkDict.ContainsKey(key) &&
                HCIStopWait.CmdChkDict[key].StopWait &&
                HCIStopWait.CmdDict.ContainsKey(key))
            {
                HCIStopWait.StopWaitData stopWaitData = HCIStopWait.CmdDict[key];
                stopWaitEvent                    = new HCIStopWait.StopWaitEvent();
                stopWaitEvent.CmdName            = txDataOut.CmdName;
                stopWaitEvent.TxOpcode           = (HCICmds.HCICmdOpcode)key;
                stopWaitEvent.ReqEvt             = stopWaitData.ReqEvt;
                stopWaitEvent.RspEvt1            = stopWaitData.RspEvt1;
                stopWaitEvent.RspEvt2            = stopWaitData.RspEvt2;
                stopWaitEvent.ExtCmdStat         = new HCIStopWait.ExtCmdStat();
                stopWaitEvent.ExtCmdStat.MsgComp = stopWaitData.ExtCmdStat.MsgComp;
                stopWaitEvent.CmdGrp             = stopWaitData.CmdGrp;
                stopWaitEvent.CmdType            = txDataOut.CmdType;
                stopWaitEvent.MsgComp            = stopWaitData.MsgComp;
                stopWaitEvent.TxTime             = string.Empty;
                stopWaitEvent.Tag                = txDataOut.Tag;
                stopWaitEvent.Callback           = txDataOut.Callback;
                if (ShowProgressCallback != null)
                {
                    ShowProgressCallback(true);
                }
                if (DeviceRxStopWaitCallback != null)
                {
                    DeviceRxStopWaitCallback(true, stopWaitEvent);
                }
                stopWaitMsg = true;
                stopWaitSuccessEvent.Reset();
            }
            txDataOut.Time = DateTime.Now.ToString("hh:mm:ss.fff");
            if (stopWaitEvent != null)
            {
                stopWaitEvent.TxTime = txDataOut.Time;
            }
            if (DeviceTxDataCallback != null)
            {
                DeviceTxDataCallback(txDataOut);
            }
            dataFound = true;
            return(flag);
        }
Example #3
0
 private void SendGattDiscoverCmds(TreeNode treeNode, TxDataOut.CmdTypes cmdType)
 {
     DeviceForm deviceForm = GetActiveDeviceFormCallback();
     if (deviceForm == null || treeNode == null || !(treeNode.Name == "HostHandle") && !(treeNode.Name == "SlaveHandle"))
         return;
     string str = treeNode.Text.Replace("Handle: ", "");
     if (str != null)
     {
         try
         {
             ushort handle = Convert.ToUInt16(str, 16);
             deviceForm.sendCmds.SendGATT(new HCICmds.GATTCmds.GATT_DiscAllPrimaryServices() { connHandle = handle }, cmdType);
             deviceForm.sendCmds.SendGATT(new HCICmds.GATTCmds.GATT_DiscAllCharDescs() { connHandle = handle }, cmdType);
         }
         catch { }
     }
 }
Example #4
0
        public void DisplayTxCmd(TxDataOut txDataOut, bool displayBytes)
        {
            ushort opCode = txDataOut.CmdOpcode;
            byte[] data = txDataOut.Data;
            byte packetType = data[0];
            byte num1 = data[3];
            string str1 = string.Empty;
            string str2 = string.Empty;
            string msg1 = string.Format(
                "-Type\t\t: 0x{0:X2} ({1:S})\n-Opcode\t\t: 0x{2:X4} ({3:S})\n-Data Length\t: 0x{4:X2} ({5:D}) byte(s)\n",
                packetType,
                m_deviceUtils.GetPacketTypeStr(packetType),
                opCode,
                m_deviceUtils.GetOpCodeName(opCode),
                num1,
                num1
                );
            byte[] addr = new byte[6];
            string msgRaw = string.Empty;
            int index1 = 4;
            byte bits1 = 0;
            ushort bits2 = 0;
            bool dataErr = false;

            if (opCode <= 0xFD1E)
            {
                if (opCode <= 0xFC14)
                {
                    #region
                    switch (opCode)
                    {
                        case 0x1405:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 0x2010:
                        case 0xFC09:
                        case 0xFC0B:
                        case 0xFC0E:
                        case 0xFC10:
                            goto label_284;

                        case 0x2011:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" AddressType\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetLEAddressTypeStr(bits1)) + string.Format(" DeviceAddr\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;

                        case 0x2012:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" AddressType\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetLEAddressTypeStr(bits1)) + string.Format(" DeviceAddr\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;

                        case 0x2013:
                            m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" Handle\t\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" ConnInterval\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                    m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                    if (!dataErr)
                                    {
                                        msg1 += string.Format(" ConnIntervalMax\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                        m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                        if (!dataErr)
                                        {
                                            msg1 += string.Format(" ConnLatency\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                            m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                            if (!dataErr)
                                            {
                                                msg1 += string.Format(" ConnTimeout\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                                m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                                if (!dataErr)
                                                {
                                                    msg1 += string.Format(" MinimumLength\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                                    m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                                    if (!dataErr)
                                                        msg1 += string.Format(" MaximumLength\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        case 64512:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Rx Gain\t\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtRxGainStr(bits1));
                            goto label_284;
                        case 64513:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Tx Power\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtTxPowerStr(bits1));
                            goto label_284;
                        case 64514:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Control\t\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtOnePktPerEvtCtrlStr(bits1));
                            goto label_284;
                        case 64515:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Control\t\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtClkDivideOnHaltCtrlStr(bits1));
                            goto label_284;
                        case 64516:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Mode\t\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtDeclareNvUsageModeStr(bits1));
                            goto label_284;
                        case 64517:
                            str2 = string.Empty;
                            msg1 += string.Format(" Key\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 16, ref dataErr));
                            if (!dataErr)
                            {
                                str2 = string.Empty;
                                msg1 += string.Format(" Data\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            }
                            goto label_284;
                        case 64518:
                            str2 = string.Empty;
                            msg1 += string.Format(" LocalFeatures\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64519:
                            int num17 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Control\t\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtSetFastTxRespTimeCtrlStr(bits1));
                            goto label_284;
                        case 64520:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" CW Mode\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtCwModeStr(bits1));
                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" Tx RF Channel\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                            }
                            goto label_284;
                        case 64522:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Rx RF Channel\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                            goto label_284;
                        case 64524:
                            msg1 += string.Format(" BLEAddress\t: {0:S}\n", m_deviceUtils.UnloadDeviceAddr(data, ref addr, ref index1, true, ref dataErr));
                            goto label_284;
                        case 64525:
                            int num20 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                            if (!dataErr)
                                msg1 += string.Format(" SCA\t\t: 0x{0:X4} ({1:D})\n", num20, num20);
                            goto label_284;
                        case 64527:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Freq Tune\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtSetFreqTuneStr(bits1));
                            goto label_284;
                        case 64529:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" Max Tx Power\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtTxPowerStr(bits1));
                            goto label_284;
                        case 64530:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" PM IO Port\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtMapPmIoPortStr(bits1));
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" PM IO Port Pin\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                            }
                            goto label_284;
                        case 64531:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64532:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" PER Test Cmd\t: 0x{0:X2} ({1:D}) ({2:S})\n", bits1, bits1, m_deviceUtils.GetHciExtPERTestCommandStr(bits1));
                            }
                            goto label_284;
                    }
                    #endregion
                }
                else
                {
                    #region
                    switch (opCode)
                    {
                        case 64650:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                ushort infoTypes = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                if (!dataErr)
                                    msg1 += string.Format(" InfoType\t\t: 0x{0:X4} ({1:S})\n", infoTypes, m_deviceUtils.GetL2CapInfoTypesStr(infoTypes));
                            }
                            goto label_284;
                        case 64658:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                ushort num6 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" IntervalMin\t: 0x{0:X4} ({1:D})\n", num6, num6);
                                    ushort num7 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                    if (!dataErr)
                                    {
                                        msg1 += string.Format(" IntervalMax\t: 0x{0:X4} ({1:D})\n", num7, num7);
                                        ushort num8 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                        if (!dataErr)
                                        {
                                            msg1 += string.Format(" SlaveLatency\t: 0x{0:X4} ({1:D})\n", num8, num8);
                                            ushort num9 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                            if (!dataErr)
                                                msg1 += string.Format(" TimeoutMultiply\t: 0x{0:X4} ({1:D})\n", num9, num9);
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        case 64769:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                byte num6 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" ReqCode\t: 0x{0:X2} ({1:D})\n", num6, num6);
                                    m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                                    if (!dataErr)
                                    {
                                        byte num8 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                        if (!dataErr)
                                            msg1 += string.Format(" ErrorCode\t: 0x{0:X2} ({1:D})\n", num8, num8);
                                    }
                                }
                            }
                            goto label_284;
                        case 64770:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                ushort num6 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                if (!dataErr)
                                    msg1 += string.Format(" ClientRxMTU\t: 0x{0:X4} ({1:D})\n", num6, num6);
                            }
                            goto label_284;
                        case 64771:
                            ushort num24 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                            if (!dataErr)
                            {
                                m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                                if (!dataErr)
                                    msg1 += string.Format(" ServerRxMTU\t: 0x{0:X4} ({1:D})\n", num24, num24);
                            }
                            goto label_284;
                        case 64772:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64773:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                byte num6 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Format\t\t: 0x{0:X2} ({1:S})\n", num6, m_deviceUtils.GetFindFormatStr(num6));
                                    int uuidLength = m_deviceUtils.GetUuidLength(num6, ref dataErr);
                                    if (!dataErr)
                                    {
                                        int dataLength = uuidLength + 2;
                                        int totalLength = (int)num1 + 4 - index1;
                                        msg1 += m_deviceUtils.UnloadHandleValueData(data, ref index1, totalLength, dataLength, ref dataErr);
                                    }
                                }
                            }
                            goto label_284;
                        case 64774:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                str2 = string.Empty;
                                msg1 += string.Format(" Type\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 2, ref dataErr));
                                if (!dataErr)
                                {
                                    str2 = string.Empty;
                                    m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                                }
                            }
                            goto label_284;
                        case 64775:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                msg1 += string.Format(" HandlesInfo\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64776:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                msg1 += string.Format(" Type\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64777:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                byte num6 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Length\t\t: 0x{0:X2} ({1:D})\n", num6, num6);
                                    if ((int)num6 != 0)
                                    {
                                        int totalLength = (int)num1 + 4 - index1;
                                        msg1 += m_deviceUtils.UnloadHandleValueData(data, ref index1, totalLength, (int)num6, ref dataErr);
                                    }
                                }
                            }
                            goto label_284;
                        case 64778:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64779:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            goto label_284;
                        case 64780:
                            m_displayCmdUtils.AddConnectHandleOffset(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64781:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            goto label_284;
                        case 64782:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                for (int index2 = 0; index2 < ((int)num1 - 2) / 2; ++index2)
                                {
                                    ushort num6 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                    if (!dataErr)
                                        msg1 += string.Format(" Handle #{0:D}\t: 0x{1:X4} ({1:D})\n", index2, num6, num6);
                                    else
                                        break;
                                }
                            }
                            goto label_284;
                        case 64783:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            goto label_284;
                        case 64784:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                msg1 += string.Format(" GroupType\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64785:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                byte num6 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Length\t\t: 0x{0:X2} ({1:D})\n", num6, num6);
                                    msg1 += string.Format(" DataList\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                                }
                            }
                            goto label_284;
                        case 64786:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Signature\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapYesNoStr(bits1));
                                    int num7 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                    if (!dataErr)
                                    {
                                        msg1 += string.Format(" Command\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapYesNoStr(bits1));
                                        int num8 = (int)m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                                        if (!dataErr)
                                            m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                                    }
                                }
                            }
                            goto label_284;
                        case 64787:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64790:
                        case 64791:
                            m_displayCmdUtils.AddConnectHandleOffset(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            goto label_284;
                        case 64792:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" Flags\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetAttExecuteWriteFlagsStr(bits1));
                            }
                            goto label_284;
                        case 64793:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64795:
                        case 64797:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Authenticated\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapYesNoStr(bits1));
                                    int num7 = (int)m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                                    if (!dataErr)
                                        m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                                }
                            }
                            goto label_284;
                        case 64798:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                    }
                    #endregion
                }
            }
            else
            {
                if (opCode <= 0xFD9D)
                {
                    #region
                    switch (opCode)
                    {
                        case 64898:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                ushort num6 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                if (!dataErr)
                                    msg1 += string.Format(" ClientRxMTU\t: 0x{0:X4} ({1:D})\n", num6, num6);
                            }
                            goto label_284;
                        case 64900:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64902:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            goto label_284;
                        case 64904:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                msg1 += string.Format(" Type\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64906:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64908:
                            m_displayCmdUtils.AddConnectHandleOffset(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                msg1 += string.Format(" Type\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64910:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                msg1 += string.Format(" Handles\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64912:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64914:
                            break;
                        case 64918:
                            m_displayCmdUtils.AddConnectHandleOffset(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            goto label_284;
                        case 64923:
                        case 64925:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" Authentic\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapYesNoStr(bits1));
                                int num6 = (int)m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                                if (!dataErr)
                                    m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            }
                            goto label_284;
                        default:
                            goto label_280;
                    }
                    #endregion
                }
                else if (opCode <= 0xFE11)
                {
                    #region
                    switch (opCode)
                    {
                        case 64944:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64946:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64948:
                            m_displayCmdUtils.AddConnectStartEndHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                msg1 += string.Format(" Type\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            goto label_284;
                        case 64950:
                        case 64952:
                            break;
                        case 64954:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                byte num6 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Num Reqs\t: 0x{0:X2} ({1:D})\n", num6, num6);
                                    if ((int)num6 > 0)
                                    {
                                        for (int index2 = 0; index2 < (int)num6; ++index2)
                                        {
                                            byte num7 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                            if (!dataErr)
                                            {
                                                msg1 += string.Format(" Value Len\t: 0x{0:X2} ({1:D})\n", num7, num7);
                                                ushort num8 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                                if (!dataErr)
                                                {
                                                    msg1 += string.Format(" Handle\t\t: 0x{0:X4} ({1:D})\n", num8, num8);
                                                    ushort num9 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                                    if (!dataErr)
                                                    {
                                                        msg1 += string.Format(" Offset\t\t: 0x{0:X4} ({1:D})\n", num9, num9);
                                                        if ((int)num7 > 0)
                                                        {
                                                            msg1 += string.Format(" Value\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num7, ref dataErr));
                                                            if (dataErr)
                                                                break;
                                                        }
                                                    }
                                                    else
                                                        break;
                                                }
                                                else
                                                    break;
                                            }
                                            else
                                                break;
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        case 64956:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64958:
                            m_displayCmdUtils.AddConnectHandleOffset(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 64960:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                m_displayCmdUtils.AddOffset(data, ref index1, ref dataErr, ref msg1);
                                if (!dataErr)
                                    m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            }
                            goto label_284;
                        case 64962:
                            m_displayCmdUtils.AddConnectHandleOffset(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                                m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                            goto label_284;
                        case 65020:
                            ushort num10 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" UUID\t\t: 0x{0:X4} ({1:D})\n", num10, num10);
                                ushort num6 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                if (!dataErr)
                                    msg1 += string.Format(" NumAttrst\t: 0x{0:X4} ({1:D})\n", num6, num6);
                            }
                            goto label_284;
                        case 65021:
                            int num11 = (int)m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                            goto label_284;
                        case 65022:
                            msg1 += string.Format(" UUID\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1 - 1, ref dataErr));
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" Permissions\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGattPermissionsStr(bits1));
                            }
                            goto label_284;
                        case 65024:
                            int num25 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" ProfileRole\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapProfileStr(bits1));
                                byte num6 = m_dataUtils.Unload8Bits(data, ref index1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" MaxScanRsps\t: 0x{0:X2} ({1:D})\n", num6, num6) + string.Format(" IRK\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 16, ref dataErr));
                                    if (!dataErr)
                                    {
                                        msg1 += string.Format(" CSRK\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 16, ref dataErr));
                                        if (!dataErr)
                                        {
                                            uint num7 = m_dataUtils.Unload32Bits(data, ref index1, ref dataErr, false);
                                            if (!dataErr)
                                                msg1 += string.Format(" SignCounter\t: 0x{0:X8} ({1:D})\n", num7, num7);
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        case 65027:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" AddrType\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAddrTypeStr(bits1)) + string.Format(" Addr\t\t: 0x{0:S}\n", m_deviceUtils.UnloadDeviceAddr(data, ref addr, ref index1, true, ref dataErr));
                            goto label_284;
                        case 65028:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" Mode\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapDiscoveryModeStr(bits1));
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" ActiveScan\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapEnableDisableStr(bits1));
                                    int num7 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                    if (!dataErr)
                                        msg1 += string.Format(" WhiteList\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapEnableDisableStr(bits1));
                                }
                            }
                            goto label_284;
                        case 65029:
                        case 65032:
                            goto label_284;
                        case 65030:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" EventType\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapEventTypeStr(bits1));
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" InitAddrType\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAddrTypeStr(bits1)) + string.Format(" InitAddrs\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 6, ref dataErr));
                                    if (!dataErr)
                                    {
                                        m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                        if (!dataErr)
                                        {
                                            msg1 += string.Format(" ChannelMap\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapChannelMapStr(bits1));
                                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                            if (!dataErr)
                                                msg1 += string.Format(" FilterPolicy\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapFilterPolicyStr(bits1));
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        case 65031:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" AdType\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAdventAdTypeStr(bits1));
                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" DataLength\t: 0x{0:X2} ({1:D})\n", bits1, bits1) + string.Format(" AdvertData\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            }
                            goto label_284;
                        case 65033:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" HighDutyCycle\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapEnableDisableStr(bits1));
                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" WhiteList\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapEnableDisableStr(bits1));
                                    m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                    if (!dataErr)
                                        msg1 += string.Format(" AddrTypePeer\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAddrTypeStr(bits1)) + string.Format(" PeerAddr\t\t: {0:S}\n", m_deviceUtils.UnloadDeviceAddr(data, ref addr, ref index1, true, ref dataErr));
                                }
                            }
                            goto label_284;
                        case 65034:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" discReason\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapDisconnectReasonStr(bits1));
                            }
                            goto label_284;
                        case 65035:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" sec.ioCaps\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapIOCapsStr(bits1));
                                    m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                    if (!dataErr)
                                    {
                                        msg1 += string.Format(" sec.oobAvail\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapTrueFalseStr(bits1));
                                        msg1 += string.Format(" sec.oob\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 16, ref dataErr));
                                        if (!dataErr)
                                        {
                                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                            if (!dataErr)
                                            {
                                                msg1 += string.Format(" sec.authReq\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAuthReqStr(bits1));
                                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                if (!dataErr)
                                                {
                                                    msg1 += string.Format(" sec.maxEKeySize\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                                                    int num31 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                    if (!dataErr)
                                                    {
                                                        msg1 += string.Format(" sec.keyDist\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapKeyDiskStr(bits1));
                                                        m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                        if (!dataErr)
                                                        {
                                                            msg1 += string.Format(" pair.Enable\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapEnableDisableStr(bits1));
                                                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                            if (!dataErr)
                                                            {
                                                                msg1 += string.Format(" pair.ioCaps\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapIOCapsStr(bits1));
                                                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                                if (!dataErr)
                                                                {
                                                                    msg1 += string.Format(" pair.oobDFlag\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapEnableDisableStr(bits1));
                                                                    m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                                    if (!dataErr)
                                                                    {
                                                                        msg1 += string.Format(" pair.authReq\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAuthReqStr(bits1));
                                                                        m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                                        if (!dataErr)
                                                                        {
                                                                            msg1 += string.Format(" pair.maxEKeySize\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                                                                            int num37 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                                            if (!dataErr)
                                                                                msg1 += string.Format(" pair.keyDist\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapKeyDiskStr(bits1));
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        case 65036:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                string str3 = string.Empty;
                                for (int index2 = 0; index2 < 6; ++index2)
                                {
                                    str3 += string.Format("{0:X2} ", m_dataUtils.Unload8Bits(data, ref index1, ref dataErr));
                                    if (dataErr)
                                        break;
                                }
                                string msg3 = str3.Trim();
                                msg1 += string.Format(" PassKey\t\t: {0:S}\n", m_deviceUtils.HexStr2UserDefinedStr(msg3, SharedAppObjs.StringType.ASCII));
                            }
                            goto label_284;
                        case 65037:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" AuthReq\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAuthReqStr(bits1));
                            }
                            goto label_284;
                        case 65038:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Authenticated\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAuthenticatedCsrkStr(bits1));
                                    msg1 += string.Format(" CSRK\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 16, ref dataErr));
                                    if (!dataErr)
                                    {
                                        uint num7 = m_dataUtils.Unload32Bits(data, ref index1, ref dataErr, false);
                                        if (!dataErr)
                                            msg1 += string.Format(" SignCounter\t: 0x{0:X8} ({1:D})\n", num7, num7);
                                    }
                                }
                            }
                            goto label_284;
                        case 65039:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" Authenticated\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapYesNoStr(bits1));
                                    msg1 += string.Format(" LongTermKey\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 16, ref dataErr));
                                    if (!dataErr)
                                    {
                                        ushort num7 = m_dataUtils.Unload16Bits(data, ref index1, ref dataErr, false);
                                        if (!dataErr)
                                        {
                                            msg1 += string.Format(" DIV\t\t: 0x{0:X4} ({1:D})\n", num7, num7);
                                            msg1 += string.Format(" Rand\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 8, ref dataErr));
                                            if (!dataErr)
                                            {
                                                int num8 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                                if (!dataErr)
                                                    msg1 += string.Format(" LTKSize\t\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                                            }
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        case 65040:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" Reason\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapSMPFailureTypesStr(bits1));
                            }
                            goto label_284;
                        case 65041:
                            m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                            if (!dataErr)
                            {
                                m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" IntervalMin\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                    m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                    if (!dataErr)
                                    {
                                        msg1 += string.Format(" IntervalMax\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                        m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                        if (!dataErr)
                                        {
                                            msg1 += string.Format(" ConnLatency\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                            m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                            if (!dataErr)
                                                msg1 += string.Format(" ConnTimeout\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                                        }
                                    }
                                }
                            }
                            goto label_284;
                        default:
                            goto label_280;
                    }
                    #endregion
                }
                else
                {
                    #region
                    switch (opCode)
                    {
                        case 65072:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" ParamID\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapParamIdStr(bits1));
                                int num6 = (int)m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                                if (!dataErr)
                                    msg1 += string.Format(" ParamValue\t: 0x{0:X4} ({1:D})\n", bits2, bits2);
                            }
                            goto label_284;
                        case 65073:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" ParamID\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapParamIdStr(bits1));
                            goto label_284;
                        case 65074:
                            msg1 += string.Format(" IRK\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, 16, ref dataErr));
                            if (!dataErr)
                                msg1 += string.Format(" Addr\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                                goto label_284;
                        case 65075:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" AdType\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAdTypesStr(bits1));
                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" AdvDataLen\t: 0x{0:X2} ({1:D})\n", bits1, bits1) + string.Format(" AdvData\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            }
                            goto label_284;
                        case 65076:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" AdType\t\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetGapAdTypesStr(bits1));
                            goto label_284;
                        case 65077:
                        case 65155:
                            goto label_284;
                        case 65078:
                            m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" ParamID\t\t: 0x{0:X4} ({1:S})\n", bits2, m_deviceUtils.GetGapBondParamIdStr(bits2));
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                {
                                    msg1 += string.Format(" ParamLength\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                                    m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                                }
                            }
                            goto label_284;
                        case 65079:
                            m_dataUtils.Unload16Bits(data, ref index1, ref bits2, ref dataErr, false);
                            if (!dataErr)
                                msg1 += string.Format(" ParamID\t\t: 0x{0:X4} ({1:S})\n", bits2, m_deviceUtils.GetGapBondParamIdStr(bits2));
                            goto label_284;
                        case 65152:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                                msg1 += string.Format(" ResetType\t: 0x{0:X2} ({1:S})\n", bits1, m_deviceUtils.GetUtilResetTypeStr(bits1));
                            goto label_284;
                        case 65153:
                            m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" NvID\t\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                                m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" NvDataLen\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                            }
                            goto label_284;
                        case 65154:
                            int num46 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                            if (!dataErr)
                            {
                                msg1 += string.Format(" NvID\t\t: 0x{0:X2} ({1:D})\n", bits1, bits1);
                                int num6 = (int)m_dataUtils.Unload8Bits(data, ref index1, ref bits1, ref dataErr);
                                if (!dataErr)
                                    msg1 += string.Format(" NvDataLen\t: 0x{0:X2} ({1:D})\n", bits1, bits1) + string.Format(" NvData\t\t: {0:S}\n", m_deviceUtils.UnloadColonData(data, ref index1, (int)num1 + 4 - index1, ref dataErr));
                            }
                            goto label_284;
                        default:
                            goto label_280;
                    }
                    #endregion
                }

                m_displayCmdUtils.AddConnectHandle(data, ref index1, ref dataErr, ref msg1);
                if (!dataErr)
                {
                    m_displayCmdUtils.AddHandle(data, ref index1, ref dataErr, ref msg1);
                    if (!dataErr)
                        m_displayCmdUtils.AddValue(data, ref index1, ref dataErr, ref msg1, (int)num1, 4);
                }
                goto label_284;
            }

            label_280:
            for (int index2 = 4; index2 < (int)num1 + 4 && index2 < data.Length; ++index2)
            {
                msgRaw = msgRaw + string.Format("{0:X2} ", data[index2]);
                m_deviceUtils.CheckLineLength(ref msgRaw, (uint)(index2 - 4), true);
            }
            msg1 += string.Format(" Raw\t\t: {0:S}\n", msgRaw);
            goto label_284;

            label_284:
            if (DisplayMsgCallback != null)
            {
                if (dataErr)
                    DisplayMsgCallback(SharedAppObjs.MsgType.Error, "Could Not Convert All The Data In The Following Message\n(Message Is Missing Data Bytes To Process)\n");
                if (data.Length != index1)
                    DisplayMsgCallback(SharedAppObjs.MsgType.Warning, string.Format("The Last {0} Bytes In This Message Were Not Decoded.\n", (data.Length - index1)) + "(Message Has More Than The Expected Number Of Data Bytes)\n");

                if (DisplayMsgTimeCallback != null)
                    DisplayMsgTimeCallback(SharedAppObjs.MsgType.Outgoing, msg1, txDataOut.Time);

                if (displayBytes)
                {
                    string msg4 = "";
                    uint num47 = 0U;
                    foreach (byte num6 in data)
                    {
                        msg4 = msg4 + string.Format("{0:X2} ", num6);
                        m_deviceUtils.CheckLineLength(ref msg4, num47++, false);
                    }
                    DisplayMsgCallback(SharedAppObjs.MsgType.TxDump, msg4);
                }
            }
        }
Example #5
0
 public bool SendATT(HCICmds.ATTCmds.ATT_ReadByGrpTypeReq cmd, TxDataOut.CmdTypes cmdType)
 {
     bool success = true;
     try
     {
         byte[] sourceData = m_deviceFormUtils.String2Bytes_LSBMSB(cmd.groupType, 16);
         if (sourceData == null)
         {
             m_msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, string.Format("Invalid Group Type Entry.\n '{0}'\nFormat Is Either 00:00 or 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00\n", cmd.groupType));
             return false;
         }
         byte dataLength = (byte)(cmd.dataLength + sourceData.Length);
         byte[] data = new byte[dataLength + 4];
         int index = 0;
         bool dataErr = false;
         if (m_deviceFormUtils.LoadMsgHeader(ref data, ref index, 1, cmd.opCodeValue, dataLength)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.connHandle, ref dataErr, false)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.startHandle, ref dataErr, false)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.endHandle, ref dataErr, false)
         && !m_dataUtils.LoadDataBytes(ref data, ref index, sourceData, ref dataErr))
             TransmitCmd(cmd.cmdName, cmd.opCodeValue, data, cmdType);
         if (dataErr)
             success = HandleDataError(cmd.cmdName);
     }
     catch (Exception ex)
     {
         success = HandleException(cmd.cmdName, ex.Message);
     }
     return success;
 }
Example #6
0
 public bool SendATT(HCICmds.ATTCmds.ATT_ReadBlobReq cmd, TxDataOut.CmdTypes cmdType, SendCmds.SendCmdResult callback)
 {
     bool success = true;
     try
     {
         byte dataLength = cmd.dataLength;
         byte[] data = new byte[dataLength + 4];
         int index = 0;
         bool dataErr = false;
         if (m_deviceFormUtils.LoadMsgHeader(ref data, ref index, 1, cmd.opCodeValue, dataLength)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.connHandle, ref dataErr, false)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.handle, ref dataErr, false)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.offset, ref dataErr, false))
             TransmitCmd(cmd.cmdName, cmd.opCodeValue, data, cmdType, cmd.handle, callback);
         if (dataErr)
             success = HandleDataError(cmd.cmdName);
     }
     catch (Exception ex)
     {
         success = HandleException(cmd.cmdName, ex.Message);
     }
     return success;
 }
Example #7
0
 private void TransmitCmd(string cmdName, ushort cmdOpcode, byte[] data, TxDataOut.CmdTypes cmdType)
 {
     TransmitCmd(cmdName, cmdOpcode, data, cmdType, null, (SendCmds.SendCmdResult)null);
 }
Example #8
0
 private void TransmitCmd(string cmdName, ushort cmdOpcode, byte[] data, TxDataOut.CmdTypes cmdType, object tag, SendCmds.SendCmdResult callback)
 {
     m_deviceForm.threadMgr.txDataOut.dataQ.AddQTail(
         new TxDataOut()
         {
             CmdName = cmdName,
             CmdOpcode = cmdOpcode,
             Data = data,
             CmdType = cmdType,
             Tag = tag,
             Callback = callback
         });
 }
Example #9
0
 public bool SendGATT(HCICmds.GATTCmds.GATT_DiscAllCharDescs cmd, TxDataOut.CmdTypes cmdType)
 {
     bool success = true;
     try
     {
         byte dataLength = cmd.dataLength;
         byte[] data = new byte[(int)dataLength + 4];
         int index = 0;
         bool dataErr = false;
         if (m_deviceFormUtils.LoadMsgHeader(ref data, ref index, 1, cmd.opCodeValue, dataLength)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.connHandle, ref dataErr, false)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.startHandle, ref dataErr, false)
         && !m_dataUtils.Load16Bits(ref data, ref index, cmd.endHandle, ref dataErr, false))
             TransmitCmd(cmd.cmdName, cmd.opCodeValue, data, cmdType);
         if (dataErr)
             success = HandleDataError(cmd.cmdName);
     }
     catch (Exception ex)
     {
         success = HandleException(cmd.cmdName, ex.Message);
     }
     return success;
 }
Example #10
0
 private bool ProcessQData(TxDataOut txDataOut, ref bool dataFound)
 {
     bool flag = true;
     dataFound = false;
     ushort key = txDataOut.CmdOpcode;
     if (HCIStopWait.CmdChkDict.ContainsKey(key)
     && HCIStopWait.CmdChkDict[key].StopWait
     && HCIStopWait.CmdDict.ContainsKey(key))
     {
         HCIStopWait.StopWaitData stopWaitData = HCIStopWait.CmdDict[key];
         stopWaitEvent = new HCIStopWait.StopWaitEvent();
         stopWaitEvent.CmdName = txDataOut.CmdName;
         stopWaitEvent.TxOpcode = (HCICmds.HCICmdOpcode)key;
         stopWaitEvent.ReqEvt = stopWaitData.ReqEvt;
         stopWaitEvent.RspEvt1 = stopWaitData.RspEvt1;
         stopWaitEvent.RspEvt2 = stopWaitData.RspEvt2;
         stopWaitEvent.ExtCmdStat = new HCIStopWait.ExtCmdStat();
         stopWaitEvent.ExtCmdStat.MsgComp = stopWaitData.ExtCmdStat.MsgComp;
         stopWaitEvent.CmdGrp = stopWaitData.CmdGrp;
         stopWaitEvent.CmdType = txDataOut.CmdType;
         stopWaitEvent.MsgComp = stopWaitData.MsgComp;
         stopWaitEvent.TxTime = string.Empty;
         stopWaitEvent.Tag = txDataOut.Tag;
         stopWaitEvent.Callback = txDataOut.Callback;
         if (ShowProgressCallback != null)
             ShowProgressCallback(true);
         if (DeviceRxStopWaitCallback != null)
             DeviceRxStopWaitCallback(true, stopWaitEvent);
         stopWaitMsg = true;
         stopWaitSuccessEvent.Reset();
     }
     txDataOut.Time = DateTime.Now.ToString("hh:mm:ss.fff");
     if (stopWaitEvent != null)
         stopWaitEvent.TxTime = txDataOut.Time;
     if (DeviceTxDataCallback != null)
         DeviceTxDataCallback(txDataOut);
     dataFound = true;
     return flag;
 }
Example #11
0
 private bool QueueDataReady()
 {
     object data = new TxDataOut();
     bool flag = dataQ.RemoveQHead(ref data);
     if (flag)
     {
         TxDataOut txDataOut = (TxDataOut)data;
         bool dataFound = false;
         flag = ProcessQData(txDataOut, ref dataFound);
     }
     Thread.Sleep(10);
     return flag;
 }
Example #12
0
 private void DeviceTxData(TxDataOut txDataOut)
 {
     if (InvokeRequired)
     {
         try
         {
             BeginInvoke((Delegate)new DeviceForm.DeviceTxDataDelegate(DeviceTxData), txDataOut);
         }
         catch { }
     }
     else
     {
         if (formClosing)
             return;
         threadMgr.rxTxMgr.dataQ.AddQTail(
             new RxTxMgrData()
             {
                 rxDataIn = null,
                 txDataOut = txDataOut
             });
     }
 }