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

MTK

开发平台:

C++ Builder

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2001
  8. *
  9. *****************************************************************************/
  10. /*****************************************************************************
  11.  *
  12.  * Filename:
  13.  * ---------
  14.  *   bt_throughput.h
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   BT throughput test header
  23.  *
  24.  * Author:
  25.  * -------
  26.  *  Andy Ueng (mtk00490)
  27.  *
  28.  *============================================================================
  29.  *             HISTORY
  30.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  31.  *------------------------------------------------------------------------------
  32.  * $Revision$
  33.  * $Modtime$
  34.  * $Log$
  35.  *
  36.  *------------------------------------------------------------------------------
  37.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  38.  *============================================================================
  39.  ****************************************************************************/
  40. #ifndef  _BT_THROUGHPUT_H_
  41. #define  _BT_THROUGHPUT_H_
  42. #include <vcl.h>
  43. // common
  44. #ifndef META_DLL_H
  45. #include "meta.h"
  46. #endif
  47. #ifndef  _MAN_HANDLE_H_
  48. #include "man_handle.h"
  49. #endif
  50. #ifndef  _METAAPP_COMMON_H_
  51. #include "metaapp_common.h"
  52. #endif
  53. // BT
  54. #ifndef  _BT_COMMON_H_
  55. #include "bt_common.h"
  56. #endif
  57. /*---------------------------------------------------------------------------*/
  58. typedef enum
  59. {
  60.     BT_TT_VER_0,
  61.     BT_TT_VER_1,
  62.     BT_TT_VER_2,
  63. }E_BT_TT_VER_T;
  64. typedef struct
  65. {
  66.     HANDLE hPostMsgDestHandle;
  67.     TStringList *log;
  68. }S_BT_TT;
  69. typedef struct
  70. {
  71.     E_BT_ACL_STATUS e_acl_status;
  72.     unsigned char uc_h1_acl;
  73.     unsigned char uc_h2_acl;
  74.     S_BD_ADDR s_bd_addr;
  75. }S_BT_TT_RES;
  76. typedef struct
  77. {
  78.     unsigned short us_data_len;
  79.     unsigned short us_packet_count;
  80. }S_BT_TT_TX_PARAMETER;
  81. typedef struct
  82. {
  83.     unsigned int ui_tx_pkt_length;
  84.     unsigned int ui_used_time;
  85. }S_BT_TT_MONITOR_TX_CNF;
  86. typedef struct
  87. {
  88.     unsigned int ui_rx_pkt_length;
  89.     unsigned int ui_used_time;
  90. } S_BT_TT_MONITOR_RX_CNF;
  91. /*---------------------------------------------------------------------------*/
  92. class  CBTTT
  93. {
  94. private:
  95.      // common
  96.      E_METAAPP_RESULT_T m_eConfirmState;
  97.      CMETAHANDLE m_META_HANDLE_Obj;
  98.      S_BT_SCAN m_sScan;
  99.      S_BT_CONNECT_ACL m_sConnectACL;
  100.      S_BT_DISCONNECT_ACL m_sDisconnectACL;
  101.      int  m_iEventCount;
  102.      bool  m_bEventOk;
  103.      bool  m_bEvent2Ok;
  104.      S_BT_TT  m_sBTTT;
  105.      S_BT_TT_TX_PARAMETER  m_sBTTxPar;
  106.      S_BT_TT_RES  m_sBTTTRes;
  107.      S_BT_TT_MONITOR_RX_CNF m_sBTRxCnf;
  108.      S_BT_TT_MONITOR_TX_CNF m_sBTTxCnf;
  109.      E_BT_TT_VER_T m_eTtVer;
  110. protected:
  111.    void  Confirm(E_METAAPP_RESULT_T confirm_state );
  112. public:
  113.    CBTTT( void );
  114.    ~CBTTT();
  115.    void  (*ConfirmCallback)( void );
  116.    void  REQ_Stop_Start( void );
  117.    void  REQ_Stop( void );
  118.    void  REQ_Finish( void );
  119.    void  REQ_TimeOut( void );
  120.    // auto accept
  121.    void  REQ_Auto_Accept_Start( S_BT_TT bt_tt );
  122.    void  REQ_Send_Auto_Accept_HCI_command( void );
  123.    void __stdcall CNF_ConnectACLAutoHCIEvent(const BT_HCI_EVENT *hci_event, const short token, void *usrData);
  124.    void __stdcall CNF_AutoAcceptHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  125.    void  Compose_Auto_Accept_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  126.    bool  DeCompose_Auto_Accept_HCI_Event( BT_HCI_EVENT hci_event );
  127.    // scan
  128.    void  REQ_Scan_Start( S_BT_TT bt_tt );
  129.    void  REQ_Send_Scan_HCI_command( void );
  130.    void __stdcall CNF_ScanHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  131.    void  Compose_Inquiry_Scan_Type_HCI_Command( BT_HCI_COMMAND &hci_cmd, S_BT_SCAN scan );
  132.    void  Compose_Page_Scan_Type_HCI_Command( BT_HCI_COMMAND &hci_cmd, S_BT_SCAN scan );
  133.    void  Compose_Scan_Enable_HCI_Command( BT_HCI_COMMAND &hci_cmd, S_BT_SCAN scan );
  134.    bool  DeCompose_Scan_HCI_Event( BT_HCI_EVENT hci_event );
  135.    
  136.    // connect
  137.    void  REQ_ConnectACL_Start( S_BT_TT bt_tt );
  138.    void  REQ_Send_ConnectACL_HCI_command( void );
  139.    void __stdcall CNF_ConnectACLHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  140.    void __stdcall CNF_DisconnectACLAutoHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  141.    void  Compose_ConnectACL_HCI_Command( BT_HCI_COMMAND &hci_cmd, S_BT_CONNECT_ACL connect );
  142.    bool  DeCompose_ConnectACL_HCI_Event( BT_HCI_EVENT hci_event );
  143.    void  Compose_Link_Key_Negative_Reply_HCI_Command( BT_HCI_COMMAND &hci_cmd, S_BT_CONNECT_ACL connect );
  144.    bool  DeCompose_Link_Key_Negative_Reply_HCI_Event( BT_HCI_EVENT hci_event, S_BT_CONNECT_ACL connect );
  145.    // change ACL packet type
  146.    void  REQ_Change_ACL_Packet_Type_Start( S_BT_TT bt_tt );
  147.    void  REQ_Send_Change_ACL_Packet_Type_HCI_command( void );
  148.    void __stdcall CNF_ChangeACLPacketTypeHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  149.    void  Compose_Change_ACL_Packet_Type_HCI_Command( BT_HCI_COMMAND &hci_cmd, S_BT_CONNECT_ACL connect );
  150.    bool  DeCompose_Change_ACL_Packet_Type_HCI_Event( BT_HCI_EVENT hci_event );
  151.    void __stdcall CNF_LinkKeyNegReplyHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  152.    // disconnect ACL
  153.    void  REQ_DisconnectACL_Start( S_BT_TT bt_tt );
  154.    void  REQ_Send_DisconnectACL_HCI_command( void );
  155.    void __stdcall CNF_DisconnectACLHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  156.    void  Compose_DisconnectACL_HCI_Command( BT_HCI_COMMAND &hci_cmd, S_BT_DISCONNECT_ACL disconnect );
  157.    bool  DeCompose_DisconnectACL_HCI_Event( BT_HCI_EVENT hci_event, S_BT_DISCONNECT_ACL disconnect );
  158.    // TX data
  159.    void  REQ_TX_Data_Start(E_BT_TT_VER_T ver, S_BT_TT bt_tt);
  160.    void  REQ_TX_Data(void);
  161.    void __stdcall CNF_TX_Data_V0(const BT_HCI_PACKET *cnf, const short token, void *usrData);
  162.    void __stdcall CNF_TX_Data_V1(const BT_HCI_TX_PURE_TEST_STAT *cnf, const short token, void *usrData);
  163.    void __stdcall CNF_TX_Data_V2(const BT_HCI_TX_PURE_TEST_STAT_V2 *cnf, const short token, void *usrData);
  164.    // RX data
  165.    void  REQ_RX_Data_Start(E_BT_TT_VER_T ver, S_BT_TT bt_tt);
  166.    void  REQ_RX_Data(void);
  167.    void __stdcall CNF_RX_Data_V0(const BT_HCI_BUFFER *cnf, const short token, void *usrData);
  168.    void __stdcall CNF_RX_Data_V2(const BT_HCI_RX_PURE_TEST_STAT *cnf, const short token, void *usrData);
  169.    void  REQ_Stop_RX_Data_Start(S_BT_TT bt_tt);
  170.    void  REQ_Stop_RX_Data(void);
  171.    // compose
  172.    void  Reset_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  173.    // log
  174.    void  AddTxLogToStringList( BT_HCI_COMMAND hci_cmd  );
  175.    void  AddRxLogToStringList( BT_HCI_EVENT hci_event );
  176.    // query
  177.    E_BT_TT_VER_T Query_TtTestVersion(void);
  178.    // export information
  179.    E_METAAPP_RESULT_T Get_ConfirmState(void);
  180.    void  Set_ScanParameter( S_BT_SCAN scan );
  181.    void  Set_ConnectACLParameter( S_BT_CONNECT_ACL connect );
  182.    void  Set_DisconnectACLParameter( S_BT_DISCONNECT_ACL disconnect );
  183.    void  Set_TxParameter( S_BT_TT_TX_PARAMETER  par);
  184.    S_BT_TT_RES Get_TTResult( void );
  185.    E_BT_TT_VER_T  Get_TtTestVer(void);
  186. };
  187. /*---------------------------------------------------------------------------*/
  188. #endif