form_BT.h
上传用户:gelin96
上传日期:2017-01-08
资源大小:20993k
文件大小:34k
源码类别:

MTK

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #ifndef _FORM_BT_H_
  3. #define _FORM_BT_H_
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. #include <ComCtrls.hpp>
  10. #include <Grids.hpp>
  11. #include <Dialogs.hpp>
  12. #include <ExtCtrls.hpp>
  13. #include <Buttons.hpp>
  14. #include <ActnList.hpp>
  15. // general
  16. #ifndef  _T_CWT_H_
  17. #include "t_cwt.h"
  18. #endif
  19. // man
  20. #ifndef  _MAN_HANDLE_H_
  21. #include "man_handle.h"
  22. #endif
  23. // UART
  24. #ifndef  _UART_H_
  25. #include "uart.h"
  26. #endif
  27. // BT
  28. #ifndef  _BT_COMMON_H_
  29. #include "bt_common.h"
  30. #endif
  31. #ifndef  _BT_HCI_H_
  32. #include "bt_hci.h"
  33. #endif
  34. #ifndef  _BT_RF_H_
  35. #include "bt_rf.h"
  36. #endif
  37. #ifndef  _BT_PKT_H_
  38. #include "bt_pkt.h"
  39. #endif
  40. #ifndef  _BT_SCRIPT_H_
  41. #include "bt_script.h"
  42. #endif
  43. #ifndef  _BT_CON_H_
  44. #include "bt_con.h"
  45. #endif
  46. #ifndef  _BT_THROUGHPUT_H_
  47. #include "bt_throughput.h"
  48. #endif
  49. #ifndef  _BT_STOP_H_
  50. #include "bt_stop.h"
  51. #endif
  52. #ifndef _BT_MT_H_
  53. #include "bt_mt.h"
  54. #endif
  55. // misc
  56. #ifndef  _TIME_UTILS_H_
  57. #include "time_utils.h"
  58. #endif
  59. //---------------------------------------------------------------------------
  60. typedef enum
  61. {
  62.     DRAM_MASK_HCI_SEND=0x01,
  63.     DRAM_MASK_HCI_RECEIVE=0x02
  64. }E_DRAM_MASK_HCI;
  65. typedef enum
  66. {
  67.     DRAM_MASK_RF_BD_ADDRESS=0x01,
  68.     DRAM_MASK_RF_ACCESS_CODE=0x02,
  69.     DRAM_MASK_RF_TX_OTHERS=0x04,
  70.     DRAM_MASK_RF_RX=0x08
  71. }E_DRAM_MASK_RF;
  72. typedef enum
  73. {
  74.     CHECK_MASK_RF_TX=0,
  75.     CHECK_MASK_RF_RX,
  76. }E_CHECK_MASK_RF;
  77. typedef enum
  78. {
  79.     DRAM_MASK_PKT_CONFIG=0x01,
  80.     DRAM_MASK_PKT_MONITOR=0x02,
  81.     DRAM_MASK_PKT_BD_ADDR=0x04
  82. }E_DRAM_MASK_PKT;
  83. typedef enum
  84. {
  85.     DRAM_MASK_CT_LOCAL_BDADDR    = 0x01,
  86.     DRAM_MASK_CT_ACL_BDADDR      = 0x02,
  87.     DRAM_MASK_CT_SCO_BDADDR      = 0x04,
  88.     DRAM_MASK_CT_DISCOVERED_LIST = 0x08,
  89.     DRAM_MASK_CT_CONNECT_LIST    = 0x10,
  90.     DRAM_MASK_CT_BUTTON          = 0x20,
  91.     DRAM_MASK_CT_ACL_STATUS      = 0x40,
  92.     DRAM_MASK_CT_SCO_STATUS      = 0x80,
  93. }
  94. E_DRAM_MASK_CT;
  95. typedef enum
  96. {
  97.     CHECK_MASK_PKT=0,
  98.     CHECK_MASK_PKT_TCI,
  99.     CHECK_MASK_PKT_MONITOR
  100. }E_CHECK_MASK_PKT;
  101. typedef enum
  102. {
  103.     PKT_STATE_RUNNING=0,
  104.     PKT_STATE_IDLE
  105. }E_PKT_STATE;
  106. typedef struct
  107. {
  108.     E_PKT_STATE e_state[BT_PACKET_IDX_COUNT];
  109.     bool b_finish[BT_PACKET_IDX_COUNT];
  110. }S_PKT_STATUS;
  111. typedef enum
  112. {
  113.     CHECK_MASK_TT_BD_ADDR=0,
  114.     CHECK_MASK_TT_TX,
  115. }E_CHECK_MASK_TT;
  116. typedef enum
  117. {
  118.     DRAM_MASK_TT_ACL_STATUS = 0x01,
  119.     DRAM_MASK_TT_BUTTON = 0x02,
  120. }E_DRAM_MASK_TT;
  121. //---------------------------------------------------------------------------
  122. class TfrmBT : public TForm
  123. {
  124. __published: // IDE-managed Components
  125.         TPageControl *m_pctlToolSel;
  126.         TTabSheet *tsHCI;
  127.         TTabSheet *TabSheet2;
  128.         TTabSheet *TabSheet3;
  129.         TGroupBox *GroupBox1;
  130.         TStaticText *stHCIFile;
  131.         TButton *btnHCIFile;
  132.         TLabel *lblHCIGroup;
  133.         TComboBox *cbHCIGroup;
  134.         TLabel *lblHCICommand;
  135.         TComboBox *cbHCICommand;
  136.         TStringGrid *sgSendHCI;
  137.         TRichEdit *memHCIResult;
  138.         TSaveDialog *SaveDialog;
  139.         TTimer *HintTimer;
  140.         TOpenDialog *OpenDialog;
  141.         TOpenDialog *dlgOpenHCIFile;
  142.         TStatusBar *sbHCI;
  143.         TStatusBar *sbRF;
  144.         TStatusBar *sbPKT;
  145.         TStringGrid *sgReceiveHCI;
  146.         TLabel *Label1;
  147.         TStaticText *stHCIOpcode;
  148.         TLabel *Label2;
  149.         TGroupBox *GroupBox2;
  150.         TLabel *Label3;
  151.         TComboBox *cbRFTxPattern;
  152.         TPanel *Panel1;
  153.         TRadioButton *rbRFTxSingleFreq;
  154.         TRadioButton *rbRFTxFreqHop;
  155.         TEdit *edtRFTxSignleFreq;
  156.         TPanel *Panel2;
  157.         TLabel *Label4;
  158.         TLabel *Label5;
  159.         TLabel *Label6;
  160.         TComboBox *cbRFTxType;
  161.         TEdit *edtRFTxDataLen;
  162.         TEdit *edtRFTxPollPeriod;
  163.         TPanel *Panel3;
  164.         TLabel *Label9;
  165.         TEdit *edtRFTxAccessCode7;
  166.         TLabel *Label10;
  167.         TPanel *Panel4;
  168.         TCheckBox *cbRFTxPowerCtrl;
  169.         TLabel *Label11;
  170.         TEdit *edtRFTxLevel;
  171.         TGroupBox *GroupBox4;
  172.         TLabel *Label13;
  173.         TLabel *Label14;
  174.         TLabel *Label15;
  175.         TLabel *Label16;
  176.         TCheckBox *cbPKTDM1;
  177.         TEdit *edtPKTDM1DataLen;
  178.         TEdit *edtPKTDM1PollPeriod;
  179.         TEdit *edtPKTDM1PktCount;
  180.         TCheckBox *cbPKTDH1;
  181.         TEdit *edtPKTDH1DataLen;
  182.         TEdit *edtPKTDH1PollPeriod;
  183.         TEdit *edtPKTDM3PktCount;
  184.         TCheckBox *cbPKTDM3;
  185.         TEdit *edtPKTDM3DataLen;
  186.         TEdit *edtPKTDM3PollPeriod;
  187.         TEdit *edtPKTDH3PktCount;
  188.         TCheckBox *cbPKTDH3;
  189.         TEdit *edtPKTDH3DataLen;
  190.         TEdit *edtPKTDH3PollPeriod;
  191.         TEdit *edtPKTDM5PktCount;
  192.         TCheckBox *cbPKTDM5;
  193.         TEdit *edtPKTDM5DataLen;
  194.         TEdit *edtPKTDM5PollPeriod;
  195.         TEdit *edtPKTDH5PktCount;
  196.         TCheckBox *cbPKTDH5;
  197.         TEdit *edtPKTDH5DataLen;
  198.         TEdit *edtPKTDH5PollPeriod;
  199.         TCheckBox *cbPKTHV1;
  200.         TCheckBox *cbPKTHV2;
  201.         TCheckBox *cbPKTHV3;
  202.         TCheckBox *cbPKTEV3;
  203.         TCheckBox *cbPKTEV4;
  204.         TCheckBox *cbPKTEV5;
  205.         TEdit *edtPKTHV1PktCount;
  206.         TEdit *edtPKTHV1PollPeriod;
  207.         TEdit *edtPKTHV2PktCount;
  208.         TEdit *edtPKTHV2PollPeriod;
  209.         TEdit *edtPKTHV3PktCount;
  210.         TEdit *edtPKTHV3PollPeriod;
  211.         TEdit *edtPKTEV3PktCount;
  212.         TEdit *edtPKTEV3PollPeriod;
  213.         TEdit *edtPKTEV4PktCount;
  214.         TEdit *edtPKTEV4PollPeriod;
  215.         TEdit *edtPKTEV5PollPeriod;
  216.         TEdit *edtPKTDH1PktCount;
  217.         TEdit *edtPKTEV5PktCount;
  218.         TGroupBox *GroupBox5;
  219.         TLabel *Label18;
  220.         TLabel *Label19;
  221.         TEdit *edtPKTTesterDM1TXCount;
  222.         TEdit *edtPKTTesterDM1RXCount;
  223.         TEdit *edtPKTTesterDH1TXCount;
  224.         TEdit *edtPKTTesterDH1RXCount;
  225.         TEdit *edtPKTTesterDM3TXCount;
  226.         TEdit *edtPKTTesterDM3RXCount;
  227.         TEdit *edtPKTTesterDH3TXCount;
  228.         TEdit *edtPKTTesterDH3RXCount;
  229.         TEdit *edtPKTTesterDM5TXCount;
  230.         TEdit *edtPKTTesterDM5RXCount;
  231.         TEdit *edtPKTTesterDH5TXCount;
  232.         TEdit *edtPKTTesterDH5RXCount;
  233.         TEdit *edtPKTTesterHV1TXCount;
  234.         TEdit *edtPKTTesterHV1RXCount;
  235.         TEdit *edtPKTTesterHV2TXCount;
  236.         TEdit *edtPKTTesterHV2RXCount;
  237.         TEdit *edtPKTTesterHV3TXCount;
  238.         TEdit *edtPKTTesterHV3RXCount;
  239.         TEdit *edtPKTTesterEV3TXCount;
  240.         TEdit *edtPKTTesterEV3RXCount;
  241.         TEdit *edtPKTTesterEV4TXCount;
  242.         TEdit *edtPKTTesterEV4RXCount;
  243.         TEdit *edtPKTTesterEV5TXCount;
  244.         TEdit *edtPKTTesterEV5RXCount;
  245.         TEdit *edtRFTxAccessCode6;
  246.         TEdit *edtRFTxAccessCode5;
  247.         TEdit *edtRFTxAccessCode4;
  248.         TEdit *edtRFTxAccessCode3;
  249.         TEdit *edtRFTxAccessCode2;
  250.         TEdit *edtRFTxAccessCode1;
  251.         TEdit *edtRFTxAccessCode0;
  252.         TStaticText *lblHint;
  253.         TCheckBox *cbRFTxWhiten;
  254.         TLabel *Label12;
  255.         TStaticText *stPKTTesterBDAddr;
  256.         TStaticText *stPKTDUTBDAddr;
  257.         TLabel *Label21;
  258.         TGroupBox *GroupBox6;
  259.         TLabel *Label17;
  260.         TLabel *Label22;
  261.         TEdit *edtPKTDUTDM1TXCount;
  262.         TEdit *edtPKTDUTDH1TXCount;
  263.         TEdit *edtPKTDUTDM3TXCount;
  264.         TEdit *edtPKTDUTDH3TXCount;
  265.         TEdit *edtPKTDUTDM5TXCount;
  266.         TEdit *edtPKTDUTDH5TXCount;
  267.         TEdit *edtPKTDUTHV1TXCount;
  268.         TEdit *edtPKTDUTHV2TXCount;
  269.         TEdit *edtPKTDUTHV3TXCount;
  270.         TEdit *edtPKTDUTEV3TXCount;
  271.         TEdit *edtPKTDUTEV4TXCount;
  272.         TEdit *edtPKTDUTEV5TXCount;
  273.         TEdit *edtPKTDUTDM1RXCount;
  274.         TEdit *edtPKTDUTDH1RXCount;
  275.         TEdit *edtPKTDUTDM3RXCount;
  276.         TEdit *edtPKTDUTDH3RXCount;
  277.         TEdit *edtPKTDUTDH5RXCount;
  278.         TEdit *edtPKTDUTHV1RXCount;
  279.         TEdit *edtPKTDUTHV2RXCount;
  280.         TEdit *edtPKTDUTHV3RXCount;
  281.         TEdit *edtPKTDUTEV3RXCount;
  282.         TEdit *edtPKTDUTEV4RXCount;
  283.         TEdit *edtPKTDUTEV5RXCount;
  284.         TEdit *edtPKTDUTDM5RXCount;
  285.         TLabel *Label23;
  286.         TComboBox *cbHCICategory;
  287.         TGroupBox *GroupBox7;
  288.         TRadioButton *rbHCICategory;
  289.         TRadioButton *rbHCIGroup;
  290.         TLabel *Label24;
  291.         TLabel *Label25;
  292.         TStaticText *stHCILastEvent;
  293.         TRichEdit *memRFResult;
  294.         TTimer *glbTimer;
  295.         TGroupBox *GroupBox8;
  296.         TLabel *Label26;
  297.         TComboBox *cbPKTCOM;
  298.         TComboBox *cbPKTBaudRate;
  299.         TLabel *Label20;
  300.         TShape *shpPKTConnect;
  301.         TButton *btnPKTConnectDUT;
  302.         TBitBtn *btnPKTStart;
  303.         TBitBtn *btnPKTStop;
  304.         TGroupBox *GroupBox9;
  305.         TRadioButton *rbHCIDec;
  306.         TRadioButton *rbHCIHex;
  307.         TRichEdit *memPKTResult;
  308.         TLabel *Label27;
  309.         TLabel *Label28;
  310.         TEdit *edtHCITimeout;
  311.         TTimer *MonitorTimer;
  312.         TLabel *Label29;
  313.         TLabel *Label30;
  314.         TTabSheet *tsSCT;
  315.         TRichEdit *memSCTResult;
  316.         TStatusBar *sbSCT;
  317.         TOpenDialog *dlgOpenSCTFile;
  318.         TStaticText *stSCTFile;
  319.         TButton *btnSCTFile;
  320.         TBitBtn *btnRFTxStart;
  321.         TBitBtn *btnRFTxStop;
  322.         TBitBtn *btnHCIStart;
  323.         TBitBtn *btnHCIStop;
  324.         TBitBtn *btnSCTStop;
  325.         TBitBtn *btnSCTStart;
  326.         TListBox *lbSCT;
  327.         TButton *btnSCTClearLog;
  328.         TTabSheet *tsTT;
  329.         TButton *btnHCIClearLog;
  330.         TButton *btnRFClearLog;
  331.         TButton *btnPKTClearLog;
  332.         TRichEdit *memTTResult;
  333.         TStatusBar *sbTT;
  334.         TButton *btnTHClearLog;
  335.         TButton *btnRFEnterTestMode;
  336.         TButton *btnRFQueryBdAddr;
  337.         TButton *btnRFChangeLevel;
  338.         TGroupBox *GroupBox3;
  339.         TRadioButton *rbRFTx;
  340.         TRadioButton *rbRFRx;
  341.         TActionList *actList;
  342.         TAction *ToggleHide;
  343.         TTabSheet *tsCT;
  344.         TRichEdit *memCTResult;
  345.         TStatusBar *sbCT;
  346.         TGroupBox *GroupBox14;
  347.         TButton *btCTClearLog;
  348.         TGroupBox *GroupBox15;
  349.         TButton *btnCTLDIRead;
  350.         TButton *btnCTLDIWrite;
  351.         TLabel *Label47;
  352.         TLabel *Label48;
  353.         TEdit *edtCTLDINAP3;
  354.         TEdit *edtCTLDINAP2;
  355.         TEdit *edtCTLDINAP1;
  356.         TEdit *edtCTLDINAP0;
  357.         TEdit *edtCTLDIUAP1;
  358.         TEdit *edtCTLDIUAP0;
  359.         TLabel *Label49;
  360.         TLabel *Label50;
  361.         TEdit *edtCTLDILAP5;
  362.         TEdit *edtCTLDILAP4;
  363.         TEdit *edtCTLDILAP3;
  364.         TEdit *edtCTLDILAP2;
  365.         TEdit *edtCTLDILAP1;
  366.         TEdit *edtCTLDILAP0;
  367.         TGroupBox *GroupBox16;
  368.         TLabel *Label51;
  369.         TButton *btnCTEnterPIN;
  370.         TEdit *edtCTPIN;
  371.         TButton *btnCTConnectSCO;
  372.         TLabel *Label52;
  373.         TComboBox *cbCTSCOPktType;
  374.         TGroupBox *GroupBox17;
  375.         TLabel *Label53;
  376.         TComboBox *cbCTScanType;
  377.         TGroupBox *GroupBox18;
  378.         TBitBtn *btnCTInquiryStart;
  379.         TBitBtn *btnCTInquiryStop;
  380.         TLabel *Label54;
  381.         TEdit *edtCTInquiryTimeout;
  382.         TLabel *Label55;
  383.         TGroupBox *GroupBox19;
  384.         TGroupBox *GroupBox20;
  385.         TGroupBox *GroupBox21;
  386.         TLabel *Label56;
  387.         TLabel *Label57;
  388.         TButton *btnCTConnectACL;
  389.         TButton *btnCTDisconnectACL;
  390.         TButton *btnCTChangeAclPktType;
  391.         TListBox *lbCTDisDevices;
  392.         TListBox *lbCTConDevices;
  393.         TButton *btnCTResetLD;
  394.         TStaticText *stCTACLStatus;
  395.         TCheckBox *cbCTInterlacedInquiryScan;
  396.         TCheckBox *cbInterlacedPageScan;
  397.         TCheckBox *cbCTDM1;
  398.         TCheckBox *cbCTDM3;
  399.         TCheckBox *cbCTDH1;
  400.         TCheckBox *cbCTDH3;
  401.         TCheckBox *cbCTDH5;
  402.         TCheckBox *cbCTDM5;
  403.         TGroupBox *GroupBox22;
  404.         TButton *btnCTAutoAccept;
  405.         TButton *btnCTScan;
  406.         TStaticText *stCTSCOStatus;
  407.         TLabel *Label58;
  408.         TLabel *Label59;
  409.         TLabel *Label60;
  410.         TLabel *Label63;
  411.         TButton *btnCTDisconnectSCO;
  412.         TStaticText *m_stCTACLBDAddr;
  413.         TStaticText *m_stCTSCOBDAddr;
  414.         TGroupBox *GroupBox10;
  415.         TPanel *Panel5;
  416.         TLabel *Label43;
  417.         TStaticText *stTTACLStatus;
  418.         TLabel *Label32;
  419.         TLabel *Label31;
  420.         TCheckBox *cbTTDM1;
  421.         TCheckBox *cbTTDM3;
  422.         TCheckBox *cbTTDM5;
  423.         TCheckBox *cbTTDH1;
  424.         TCheckBox *cbTTDH3;
  425.         TCheckBox *cbTTDH5;
  426.         TButton *btnTTConnect;
  427.         TButton *btnTTChangeACLPacketType;
  428.         TButton *btnTTDisconnect;
  429.         TGroupBox *GroupBox11;
  430.         TPanel *Panel9;
  431.         TLabel *Label40;
  432.         TStaticText *stTTRxBytes;
  433.         TLabel *Label42;
  434.         TStaticText *stTTRxThroughput;
  435.         TLabel *Label7;
  436.         TEdit *edtRFBDAddress;
  437.         TLabel *Label8;
  438.         TEdit *edtTTBDAddr;
  439.         TBitBtn *btnTTRxStart;
  440.         TBitBtn *btnTTRxStop;
  441.         TGroupBox *GroupBox12;
  442.         TLabel *Label35;
  443.         TComboBox *m_cbTTScanType;
  444.         TCheckBox *CheckBox1;
  445.         TCheckBox *CheckBox2;
  446.         TButton *btnTTScan;
  447.         TGroupBox *GroupBox13;
  448.         TButton *btnTTAutoAccept;
  449.         TGroupBox *GroupBox23;
  450.         TPanel *Panel6;
  451.         TLabel *Label38;
  452.         TLabel *Label37;
  453.         TBitBtn *btnTTTxStart;
  454.         TBitBtn *btnTTTxStop;
  455.         TEdit *edtTTPacketCount;
  456.         TEdit *edtTTDataLen;
  457.         TPanel *Panel7;
  458.         TLabel *Label33;
  459.         TLabel *Label34;
  460.         TStaticText *stTTTxCount;
  461.         TStaticText *stTTTxThroughput;
  462.         TCheckBox *cbCT2DH1;
  463.         TCheckBox *cbCT3DH1;
  464.         TCheckBox *cbCT2DH3;
  465.         TCheckBox *cbCT3DH3;
  466.         TCheckBox *cbCT2DH5;
  467.         TCheckBox *cbCT3DH5;
  468.         TLabel *Label36;
  469.         TEdit *edtCTTxBandwidth;
  470.         TLabel *Label39;
  471.         TLabel *Label41;
  472.         TEdit *edtCTRxBandwidth;
  473.         TLabel *Label44;
  474.         TLabel *Label45;
  475.         TEdit *edtCTMaxLatency;
  476.         TLabel *Label46;
  477.         TLabel *Label61;
  478.         TEdit *edtCTRetransmitEffort;
  479.         TLabel *Label62;
  480.         TCheckBox *cbPK2DH1;
  481.         TEdit *edtPKT2DH1PollPeriod;
  482.         TEdit *edtPKT2EV3PollPeriod;
  483.         TEdit *edtPKT2DH3PollPeriod;
  484.         TEdit *edtPKT2EV5PollPeriod;
  485.         TEdit *edtPKT2DH5PollPeriod;
  486.         TEdit *edtPKT3EV3PollPeriod;
  487.         TEdit *edtPKT3DH1PollPeriod;
  488.         TEdit *edtPKT3DH3PollPeriod;
  489.         TEdit *edtPKT3EV5PollPeriod;
  490.         TEdit *edtPKT3DH5PollPeriod;
  491.         TEdit *edtPKT2DH1PktCount;
  492.         TEdit *edtPKT2EV3PktCount;
  493.         TEdit *edtPKT2DH3PktCount;
  494.         TEdit *edtPKT2EV5PktCount;
  495.         TEdit *edtPKT2DH5PktCount;
  496.         TEdit *edtPKT3EV3PktCount;
  497.         TEdit *edtPKT3DH1PktCount;
  498.         TEdit *edtPKT3DH3PktCount;
  499.         TEdit *edtPKT3EV5PktCount;
  500.         TEdit *edtPKT3DH5PktCount;
  501.         TCheckBox *cbPK2EV3;
  502.         TCheckBox *cbPK2DH3;
  503.         TCheckBox *cbPK2EV5;
  504.         TCheckBox *cbPK2DH5;
  505.         TCheckBox *cbPK3EV3;
  506.         TCheckBox *cbPK3DH1;
  507.         TCheckBox *cbPK3DH3;
  508.         TCheckBox *cbPK3EV5;
  509.         TCheckBox *cbPK3DH5;
  510.         TEdit *edtPKTTester2DH1TXCount;
  511.         TEdit *edtPKTTester2EV3TXCount;
  512.         TEdit *edtPKTTester2DH3TXCount;
  513.         TEdit *edtPKTTester2EV5TXCount;
  514.         TEdit *edtPKTTester2DH5TXCount;
  515.         TEdit *edtPKTTester3EV3TXCount;
  516.         TEdit *edtPKTTester3DH1TXCount;
  517.         TEdit *edtPKTTester3DH3TXCount;
  518.         TEdit *edtPKTTester3EV5TXCount;
  519.         TEdit *edtPKTTester3DH5TXCount;
  520.         TEdit *edtPKTTester2DH1RXCount;
  521.         TEdit *edtPKTTester2EV3RXCount;
  522.         TEdit *edtPKTTester2DH3RXCount;
  523.         TEdit *edtPKTTester2EV5RXCount;
  524.         TEdit *edtPKTTester2DH5RXCount;
  525.         TEdit *edtPKTTester3EV3RXCount;
  526.         TEdit *edtPKTTester3DH1RXCount;
  527.         TEdit *edtPKTTester3DH3RXCount;
  528.         TEdit *edtPKTTester3EV5RXCount;
  529.         TEdit *edtPKTTester3DH5RXCount;
  530.         TEdit *edtPKTDUT2DH1TXCount;
  531.         TEdit *edtPKTDUT2EV3TXCount;
  532.         TEdit *edtPKTDUT2DH3TXCount;
  533.         TEdit *edtPKTDUT2EV5TXCount;
  534.         TEdit *edtPKTDUT2DH5TXCount;
  535.         TEdit *edtPKTDUT3EV3TXCount;
  536.         TEdit *edtPKTDUT3DH1TXCount;
  537.         TEdit *edtPKTDUT3DH3TXCount;
  538.         TEdit *edtPKTDUT3EV5TXCount;
  539.         TEdit *edtPKTDUT3DH5TXCount;
  540.         TEdit *edtPKTDUT2DH1RXCount;
  541.         TEdit *edtPKTDUT2EV3RXCount;
  542.         TEdit *edtPKTDUT2DH3RXCount;
  543.         TEdit *edtPKTDUT2EV5RXCount;
  544.         TEdit *edtPKTDUT2DH5RXCount;
  545.         TEdit *edtPKTDUT3EV3RXCount;
  546.         TEdit *edtPKTDUT3DH1RXCount;
  547.         TEdit *edtPKTDUT3DH3RXCount;
  548.         TEdit *edtPKTDUT3EV5RXCount;
  549.         TEdit *edtPKTDUT3DH5RXCount;
  550.         TCheckBox *m_cbTT2DH1;
  551.         TCheckBox *m_cbTT2DH3;
  552.         TCheckBox *m_cbTT2DH5;
  553.         TCheckBox *m_cbTT3DH1;
  554.         TCheckBox *m_cbTT3DH3;
  555.         TCheckBox *m_cbTT3DH5;
  556.         TTabSheet *m_tsMT;
  557.         TGroupBox *grpTestItemList;
  558.         TStaticText *lblItem1;
  559.         TStaticText *lblItem2;
  560.         TStaticText *lblItem3;
  561.         TStaticText *lblItem9;
  562.         TStaticText *lblItem8;
  563.         TStaticText *lblItem10;
  564.         TStaticText *lblItem11;
  565.         TStaticText *lblItem13;
  566.         TStaticText *lblItem12;
  567.         TStaticText *lblItem14;
  568.         TStaticText *lblItem15;
  569.         TStaticText *lblItem16;
  570.         TStaticText *lblItem4;
  571.         TStaticText *lblItem5;
  572.         TStaticText *lblItem6;
  573.         TStaticText *lblItem7;
  574.         TScrollBar *scrTestItemList;
  575.         TStaticText *lblItem17;
  576.         TStaticText *lblItem18;
  577.         TStaticText *lblItem19;
  578.         TStaticText *lblItem20;
  579.         TStaticText *lblItem21;
  580.         TStaticText *lblItem22;
  581.         TStatusBar *m_sbMT;
  582.         TStaticText *m_lblMTStatus;
  583.         TLabel *Label64;
  584.         TEdit *m_edtMTRepeat;
  585.         TGroupBox *GroupBox24;
  586.         TRadioButton *m_rbMTTestItem0;
  587.         TRadioButton *m_rbMTTestItem1;
  588.         TRadioButton *m_rbMTTestItem2;
  589.         TRadioButton *m_rbMTTestItem3;
  590.         TRadioButton *m_rbMTTestItem4;
  591.         TSpeedButton *m_btnMTRun;
  592.         TRichEdit *m_edtMTLog;
  593.         TTimer *m_tmMT;
  594.         TGroupBox *GroupBox26;
  595.         TShape *m_shpMTConnect;
  596.         TLabel *Label66;
  597.         TComboBox *m_cbMTBT2COM;
  598.         TLabel *Label68;
  599.         TComboBox *m_cbMTBT2Baud;
  600.         TButton *m_btnMTConnect;
  601.         TCheckBox *m_cbMETAMode;
  602.         TButton *m_btnMTReload;
  603.         void __fastcall btnHCIFileClick(TObject *Sender);
  604.         void __fastcall FormCreate(TObject *Sender);
  605.         void __fastcall FormDestroy(TObject *Sender);
  606.         void __fastcall cbHCIGroupChange(TObject *Sender);
  607.         void __fastcall cbHCICommandChange(TObject *Sender);
  608.         void __fastcall btnHCISendClick(TObject *Sender);
  609.         void __fastcall edtRFTxSignleFreqCheck(TObject *Sender);
  610.         void __fastcall edtRFTxDataLenCheck(TObject *Sender);
  611.         void __fastcall edtRFTxPollPeriodCheck(TObject *Sender);
  612.         void __fastcall edtRFTxLevelCheck(TObject *Sender);
  613.         void __fastcall edtRFTxAccessCodeCheck(TObject *Sender);
  614.         void __fastcall HintTimerTimer(TObject *Sender);
  615.         void __fastcall btnRFTxStartClick(TObject *Sender);
  616.        // void __fastcall edtRFTxLapCheck(TObject *Sender);
  617.         void __fastcall btnRFRxStartClick(TObject *Sender);
  618.         void __fastcall rbHCICategoryClick(TObject *Sender);
  619.         void __fastcall rbHCIGroupClick(TObject *Sender);
  620.         void __fastcall FormShow(TObject *Sender);
  621.         void __fastcall glbTimerTimer(TObject *Sender);
  622.         void __fastcall btnPKTConnectDUTClick(TObject *Sender);
  623.         void __fastcall btnPKTStartClick(TObject *Sender);
  624.         void __fastcall rbHCIDecClick(TObject *Sender);
  625.         void __fastcall rbHCIHexClick(TObject *Sender);
  626.         void __fastcall sgSendHCICheck(TObject *Sender);
  627.         void __fastcall edtHCITimeoutCheck(TObject *Sender);
  628.         void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  629.         void __fastcall cbRFTxTypeChange(TObject *Sender);
  630.         void __fastcall edtRFRxSignleFreqCheck(TObject *Sender);
  631.         void __fastcall MonitorTimerTimer(TObject *Sender);
  632.         void __fastcall edtPKTDataLenCheck(TObject *Sender);
  633.         void __fastcall edtPKTPollPeriodCheck(TObject *Sender);
  634.         void __fastcall edtPKTCountCheck(TObject *Sender);
  635.         void __fastcall btnSCTFileClick(TObject *Sender);
  636.         void __fastcall btnSCTTestClick(TObject *Sender);
  637.         void __fastcall btnPKTStopClick(TObject *Sender);
  638.         void __fastcall btnRFTxStopClick(TObject *Sender);
  639.         void __fastcall cbHCICategoryChange(TObject *Sender);
  640.         void __fastcall btnHCIStartClick(TObject *Sender);
  641.         void __fastcall btnHCIStopClick(TObject *Sender);
  642.        // void __fastcall btnRFRxStopClick(TObject *Sender);
  643.         void __fastcall btnSCTStopClick(TObject *Sender);
  644.         void __fastcall btnSCTStartClick(TObject *Sender);
  645.         void __fastcall btnSCTClearLogClick(TObject *Sender);
  646.         void __fastcall btnHCIClearLogClick(TObject *Sender);
  647.         void __fastcall btnRFClearLogClick(TObject *Sender);
  648.         void __fastcall btnPKTClearLogClick(TObject *Sender);
  649.         void __fastcall btnTHClearLogClick(TObject *Sender);
  650.         void __fastcall btnTHConnectDUTClick(TObject *Sender);
  651.         void __fastcall cbTHCOMChange(TObject *Sender);
  652.         void __fastcall ComboBox1Change(TObject *Sender);
  653.         void __fastcall btnRFEnterTestModeClick(TObject *Sender);
  654.         void __fastcall btnRFQueryBdAddrClick(TObject *Sender);
  655.         void __fastcall cbRFTxPowerCtrlClick(TObject *Sender);
  656.         void __fastcall btnRFChangeLevelClick(TObject *Sender);
  657.         void __fastcall ToggleHideExecute(TObject *Sender);
  658.         void __fastcall edtRFNAPCheck(TObject *Sender);
  659.         void __fastcall edtRFUAPCheck(TObject *Sender);
  660.         void __fastcall edtRFLAPCheck(TObject *Sender);
  661.         void __fastcall btnCTLDIReadClick(TObject *Sender);
  662.         void __fastcall btnCTResetLDClick(TObject *Sender);
  663.         void __fastcall btnCTLDIWriteClick(TObject *Sender);
  664.         void __fastcall edtCTLDINAPCheck(TObject *Sender);
  665.         void __fastcall edtCTLDIUAPCheck(TObject *Sender);
  666.         void __fastcall edtCTLDILAPCheck(TObject *Sender);
  667.         void __fastcall btnCTInquiryStartClick(TObject *Sender);
  668.         void __fastcall edtCTInquiryTimeoutCheck(TObject *Sender);
  669.         void __fastcall btCTClearLogClick(TObject *Sender);
  670.        // void __fastcall btnCTScanStartClick(TObject *Sender);
  671.         void __fastcall lbCTDisDevicesClick(TObject *Sender);
  672.         void __fastcall btnCTConnectACLClick(TObject *Sender);
  673.         void __fastcall btnCTInquiryStopClick(TObject *Sender);
  674.         void __fastcall btnCTScanClick(TObject *Sender);
  675.         void __fastcall btnCTAutoAcceptClick(TObject *Sender);
  676.         void __fastcall btnCTDisconnectACLClick(TObject *Sender);
  677.         void __fastcall lbCTConDevicesClick(TObject *Sender);
  678.         void __fastcall btnCTChangeAclPktTypeClick(TObject *Sender);
  679.         void __fastcall btnCTConnectSCOClick(TObject *Sender);
  680.         void __fastcall edtCTPINCheck(TObject *Sender);
  681.         void __fastcall btnCTEnterPINClick(TObject *Sender);
  682.         void __fastcall FormActivate(TObject *Sender);
  683.         void __fastcall btnTTConnectClick(TObject *Sender);
  684.         void __fastcall btnTTDisconnectClick(TObject *Sender);
  685.         void __fastcall edtTTDataLenCheck(TObject *Sender);
  686.         void __fastcall edtTTPacketCountCheck(TObject *Sender);
  687.         void __fastcall btnTTTxStartClick(TObject *Sender);
  688.         void __fastcall btnTTChangeACLPacketTypeClick(TObject *Sender);
  689.         void __fastcall edtRFBDAddressCheck(TObject *Sender);
  690.         void __fastcall edtTTBdAddrCheck(TObject *Sender);
  691.         void __fastcall btnTTRxStartClick(TObject *Sender);
  692.         void __fastcall btnTTScanClick(TObject *Sender);
  693.         void __fastcall btnTTAutoAcceptClick(TObject *Sender);
  694.         void __fastcall btnTTTxStopClick(TObject *Sender);
  695.         void __fastcall edtCTTxBandwidthCheck(TObject *Sender);
  696.         void __fastcall edtCTRxBandwidthCheck(TObject *Sender);
  697.         void __fastcall edtCTMaxLatencyCheck(TObject *Sender);
  698.         void __fastcall edtCTRetransmitEffortCheck(TObject *Sender);
  699.         void __fastcall btnTTRxStopClick(TObject *Sender);
  700.         void __fastcall FormHide(TObject *Sender);
  701.         void __fastcall cbPKTCOMChange(TObject *Sender);
  702.         void __fastcall cbPKTBaudRateChange(TObject *Sender);
  703.         void __fastcall btnCTDisconnectSCOClick(TObject *Sender);
  704.         void __fastcall m_tmMTTimer(TObject *Sender);
  705.         void __fastcall m_btnMTReloadClick(TObject *Sender);
  706.         void __fastcall m_btnMTRunClick(TObject *Sender);
  707.         void __fastcall m_btnMTConnectClick(TObject *Sender);
  708.         void __fastcall m_cbMETAModeClick(TObject *Sender);
  709.         void __fastcall scrTestItemListChange(TObject *Sender);
  710. private: // User declarations
  711.         // common
  712.         bool  m_bInit;
  713.         bool m_bFirstFormShow;
  714.         CMETAHANDLE m_META_HANDLE_Obj;
  715.         unsigned char m_cBtId;
  716.         //----------------------------- UI ------------------------------
  717.         // RF test
  718.         TEdit *m_edtRFTxAccessCode[8];
  719.         // HCI
  720.         S_BT_HCI  m_sBTHCI;
  721.         CBTHCI    m_BT_HCI_Obj;
  722.         TStringList *m_pHCILog;
  723.         vector<S_BT_HCI_GROUP> *m_pvHCIGroup;
  724.         vector<S_BT_HCI_CATEGORY> *m_pvHCICategory;
  725.         BT_HCI_EVENT  m_sHCIEventFmt;
  726.         S_HCI_TX_CMD  m_sTxCmd;
  727.        // S_HCI_RX_EVENT  m_sRxEvent;
  728.         vector<S_BT_HCI_PARAMETER> *m_pvSendHCIPar;
  729.         vector<S_BT_HCI_PARAMETER> *m_pvReceiveHCIPar;
  730.         // RF test
  731.        // S_BT_RF  m_sBtRfTx;
  732.         S_BT_RF  m_sBtRf;
  733.         S_BD_ADDR m_sRFBdAddr;
  734.         CBTRF       m_BT_RF_Obj;
  735.         TStringList *m_pRFLog;
  736.         TEdit     *m_edtRFNAP[BD_ADDRESS_NAP_LEN];
  737.         TEdit     *m_edtRFUAP[BD_ADDRESS_UAP_LEN];
  738.         TEdit     *m_edtRFLAP[BD_ADDRESS_LAP_LEN];
  739.         // packet test
  740.         bool m_bConnectTargetok;
  741.         bool m_bConnectingTarget;
  742.         TCheckBox *m_cbPKTType[BT_PACKET_IDX_COUNT];
  743.         TEdit     *m_edtPKTDataLen[6];
  744.         TEdit     *m_edtPKTPollPeriod[BT_PACKET_IDX_COUNT];
  745.         TEdit     *m_edtPKTPktCount[BT_PACKET_IDX_COUNT];
  746.         TEdit     *m_edtPKTTesterTXCount[BT_PACKET_IDX_COUNT];
  747.         TEdit     *m_edtPKTTesterTXRate[BT_PACKET_IDX_COUNT];
  748.         TEdit     *m_edtPKTTesterRXCount[BT_PACKET_IDX_COUNT];
  749.         TEdit     *m_edtPKTTesterRXRate[BT_PACKET_IDX_COUNT];
  750.         TEdit     *m_edtPKTDUTTXCount[BT_PACKET_IDX_COUNT];
  751.         TEdit     *m_edtPKTDUTTXRate[BT_PACKET_IDX_COUNT];
  752.         TEdit     *m_edtPKTDUTRXCount[BT_PACKET_IDX_COUNT];
  753.         TEdit     *m_edtPKTDUTRXRate[BT_PACKET_IDX_COUNT];
  754.         unsigned short m_usComPortArray[MAX_SUPPORT_COM_NUM];
  755.         S_CWT  m_sCWT;
  756.         AnsiString m_asBaudrate;
  757.         T_META_ConnectWithTarget *m_pT_CWT;
  758.         TStringList *m_pPKTLog;
  759.         S_BT_PKT  m_sBTPKT;
  760.         S_BT_PKT_TCI m_sBTTCI;
  761.        // S_BT_PKT_MONITOR_REQ m_sBTMonReq;
  762.         S_BT_PKT_MONITOR_CNF m_sBTMonCnf;
  763.         CBTPKT  m_BT_PKT_Obj;
  764.         S_PKT_STATUS m_sPKTStatus;
  765.         unsigned int m_uiPKTLastTesterTx;
  766.         unsigned int m_uiPKTLastTesterRx;
  767.         unsigned int m_uiPKTLastDutTx;
  768.         unsigned int m_uiPKTLastDutRx;
  769.         unsigned int m_uiPKTCount;
  770.         // script test
  771.        // TButton *m_btnSCTTest[MAX_SCRIPT_NUM];
  772.         S_BT_SCT  m_sBTSCT;
  773.         CBTSCT  m_BT_SCT_Obj;
  774.         TStringList *m_pSCTLog;
  775.         vector<S_BT_SCT_SCRIPT> *m_pvScript;
  776.         // module test
  777.         CBTMT* Script[BT_MT_TESTCASE_NUM];
  778.         TRadioButton* m_rbTestItem[BT_MT_TESTCASE_NUM];
  779.         TStaticText*    lblItem[BT_MT_MAX_PROC_NUM];
  780.         int ActIdx;
  781.         int LoopCount;
  782.         // throughput test
  783.         E_BT_TT_VER_T m_eTtVer;
  784.         S_BD_ADDR m_sTTACLBdAddr;
  785.         CBTTT    m_cBT_TT_Obj;
  786.         S_BT_TT  m_sBTTT;
  787.         S_BT_TT_RES  m_sBTTTRes;
  788.         TStringList *m_pTTLog;
  789.         S_TIME  m_sTTTxStartTime;
  790.         S_TIME  m_sTTRxStartTime;
  791.         // connection test
  792.         CBTCT    m_cBT_CT_Obj;
  793.         S_BT_CT  m_sBTCT;
  794.         TStringList *m_pCTLog;
  795.         S_BD_ADDRS m_sLocalBdAddr;
  796.         S_BD_ADDR  m_sCTACLBdAddr;
  797.         S_BD_ADDR  m_sSCOBdAddr;
  798.         unsigned int m_uiInquiryTimeout;
  799.         S_BT_PIN   m_sBTPIN;
  800.         unsigned int m_uiTxBandwidth;
  801.         unsigned int m_uiRxBandwidth;
  802.         unsigned short m_usMaxLatency;
  803.         unsigned char m_ucRetransmissionEffort;
  804.         // stop
  805.         CBTSTOP  m_cBT_STOP_Obj;
  806. public: // User declarations
  807.         __fastcall TfrmBT(TComponent* Owner);
  808.         // ------------------------ common ---------------------------
  809.         void Init( void );
  810.         void _fastcall SubClassWndProc( Messages::TMessage &Message);
  811.         // memory
  812.         void  AllocateVector( void );
  813.         void  DeAllocateVector( void );
  814.         // ------------------------   UI  ----------------------------
  815.         // common
  816.         void  CurrentPageReset( void );
  817.         void  CurrentPageLock( void );
  818.        // bool  CheckFields( void );
  819.         bool  CheckHCIFields( void );
  820.         bool  CheckRFFields( E_CHECK_MASK_RF check_mask );
  821.         void  ShowHintLabel( TControl *sender, char* hint );
  822.         void  ApplyHideProperty( void );
  823.         // HCI
  824.         bool  CheckSendHCIValue( void );
  825.         void  DisplayHCIFile( void );
  826.         void  SaveHCIFile( void );
  827.         void  ReadHCIFile( AnsiString asFileName );
  828.         void  DisplayHCIUI( int draw_mask, int group_idx, int cmd_idx );
  829.         void  FillHCIResult( void );
  830.        // void  AddReceiveParameterVector( void );
  831.         void  ReDrawHCIFields( E_DRAM_MASK_HCI draw_mask );
  832.         bool  ComposeHCICommand( S_BT_HCI &hci );
  833.         bool  DeComposeHCIEvent( BT_HCI_EVENT &event );
  834.         // RF
  835.         void DisplayBtRfTestUi(void);
  836.         void DisplayRFDefaultDataLen(void);
  837.         unsigned short Get_RFTxDataDefaultLen(int index);
  838.         unsigned short Get_RFTxDataMinLen(int index);
  839.         unsigned short Get_RFTxDataMaxLen(int index);
  840.         void  FillRFResult(void);
  841.         void  ReDrawRFFields(E_DRAM_MASK_RF draw_mask);
  842.         void  SyncLAPAndAccessCode( void );
  843.         void  Build_Sync_Word(const unsigned int a_lap, unsigned int* pSyncHi, unsigned int* pSyncLo);
  844.         // pakcet test
  845.         void DisplayBtPktTestUi(void);
  846.         void  DisplayPKTBDAddress( E_BT_PACKET_DEVICE_T obj );
  847.         void  ReDrawPKTFields( E_DRAM_MASK_PKT draw_mask );
  848.         bool  IsPKTTestFinish( E_BT_PACKET_IDX idx );
  849.         bool  IsAllPKTTestFinish( void );
  850.         bool  SetPKTFinish( E_BT_PACKET_IDX idx );
  851.         bool  IsPKTTestRunning( E_BT_PACKET_IDX idx );
  852.         bool  IsNewTciRequired( void );
  853.         bool  CheckPKTFields( E_CHECK_MASK_PKT mark );
  854.         unsigned short Get_PKTTxDataDefaultLen( E_BT_PACKET_IDX index );
  855.         unsigned short Get_PKTTxDataMinLen( E_BT_PACKET_IDX index );
  856.         unsigned short Get_PKTTxDataMaxLen(E_BT_PACKET_IDX index);
  857.         void  FillPKTResult(void);
  858.         void  SetMetaConnectReq(META_Connect_Req &META_connect_req);
  859.         void  AbortConnectWithTarget(void);
  860.         // script test
  861.         void  DisplaySCTUI(void);
  862.         void  FillSCTResult(void);
  863.         // module test
  864.         int  UpdateProcessGroup(void);
  865.         int  ReloadScriptFiles(void);
  866.         // throughput test
  867.         void DisplayBtThroughputTestUi(void);
  868.         bool  CheckTTFields( E_CHECK_MASK_TT mask );
  869.         void  FillTTResult( void );
  870.         unsigned short Get_TTAclPacketType( void );
  871.         void  DisplayTHBDAddress( E_BT_PACKET_DEVICE_T obj );
  872.         void  SetTHMetaConnectReq( META_Connect_Req &META_connect_req );
  873.         void  ReDrawTTFields( E_DRAM_MASK_TT draw_mask );
  874.         // connection test
  875.         void DisplayBtConnectionTestUi(void);
  876.         void  FillCTResult( void );
  877.         void  ReDrawCTFields( E_DRAM_MASK_CT draw_mask );
  878.         void  DisplayInquiryBDList( void );
  879.         void  DisplayConnectBDList( void );
  880.         S_BD_ADDR Get_BDAddrFromString( AnsiString as_str );
  881.         unsigned short Get_CTAclPacketType( void );
  882.         E_SCO_PKT_MASK Get_ScoPacketType( void );
  883.         // stop
  884.         void  Force_BT_Stop(bool reset);
  885.         // callback
  886.         void  ConfirmCallback_HCI(void);
  887.         void  ConfirmCallback_SetupHCIFile(void);
  888.         void  ConfirmCallback_RFTX(void);
  889.         void  ConfirmCallback_RFRX(void);
  890.         void  ConfirmCallback_RFEnterTestMode(void);
  891.         void  CNF_PKT(void);
  892.         void  CNF_PKT_Stop(void);
  893.         void  CNF_PKT_TCI(void);
  894.         void  CNF_PKT_Read_TxRxCount(void);
  895.         void  CNF_PKT_Read_EDRTxRxCount(void);
  896.         void  ConfirmCallback_SetupSCTFile(void);
  897.         void  ConfirmCallback_SCT(void);
  898.         void  ConfirmCallback_QueryBDAddress(void);
  899.         void  ConfirmCallback_ChangePCL(void);
  900.         void __fastcall on_PKTConnectWithTarget_Success(TObject *Sender);
  901.         void __fastcall on_PKTConnectWithTarget_Fail(TObject *Sender);
  902.         void __fastcall on_PKTConnectWithTarget_ByUser(TObject *Sender);
  903.         void __fastcall on_THConnectWithTarget_Success(TObject *Sender);
  904.         void __fastcall on_THConnectWithTarget_Fail(TObject *Sender);
  905.         void __fastcall on_THConnectWithTarget_ByUser(TObject *Sender);
  906.         void  CNF_CT_ReadLocalBDAddr(void);
  907.         void  CNF_CT_WriteLocalBDAddr(void);
  908.         void  CNF_CT_Reset(void);
  909.         void  CNF_CT_Scan(void);
  910.         void  CNF_CT_AutoAccept(void);
  911.         void  CNF_CT_Inquiry(void);
  912.         void  CNF_CT_InquiryCancel(void);
  913.         void  CNF_CT_ConnectACL(void);
  914.         void  CNF_CT_DisconnectACL(void);
  915.         void  CNF_CT_ChangeACLPacketType(void);
  916.         void  CNF_CT_ConnectSCO(void);
  917.         void  CNF_CT_DisconnectSCO(void);
  918.         void  CNF_CT_EnterPIN(void);
  919.         void  CNF_TT_Scan(void);
  920.         void  CNF_TT_AutoAccept(void);
  921.         void  CNF_TT_ConnectACL(void);
  922.         void  CNF_TT_DisconnectACL(void);
  923.         void  CNF_TT_ChangeACLPacketType(void);
  924.         void  CNF_TT_TxData(void);
  925.         void  CNF_TT_RxData(void);
  926.         void  CNF_TT_Stop_RxData(void);
  927. };
  928. //---------------------------------------------------------------------------
  929. extern PACKAGE TfrmBT *frmBT;
  930. //---------------------------------------------------------------------------
  931. #endif