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

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_pkt.h
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   BT packet 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_PKT_H_
  41. #define  _BT_PKT_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. #ifndef  _BT_PKT_COMMON_H_
  58. #include "bt_pkt_common.h"
  59. #endif
  60. #ifndef  _BT_HCI_FT_H_
  61. #include "bt_hci_ft.h"
  62. #endif
  63. /*---------------------------------------------------------------------------*/
  64. typedef enum
  65. {
  66.     BT_PACKET_TESTER=0,
  67.     BT_PACKET_DUT
  68. }E_BT_PACKET_DEVICE_T;
  69. typedef struct
  70. {
  71.     HANDLE hPostMsgDestHandle;
  72.     TStringList *log;
  73.     S_BD_ADDR s_tester_bd_addr;
  74.     S_BD_ADDR s_dut_bd_addr;
  75.    // E_BT_ACL_P1 e_p1;
  76.    // E_BT_ACL_P1 e_p2;
  77.    // E_BT_SCO    e_sco;
  78.     unsigned char uc_h1;
  79.     unsigned char uc_h2;
  80. }S_BT_PKT;
  81. /*---------------------------------------------------------------------------*/
  82. class  CBTPKT
  83. {
  84. private:
  85.      // common
  86.      E_METAAPP_RESULT_T m_eConfirmState;
  87.      CMETAHANDLE m_META_HANDLE_Obj;
  88.      CBTHCIFT m_cBT_HCI_FT_Obj;
  89.      E_BT_PACKET_DEVICE_T m_sPktDevice;
  90.      int  m_iEventCount;
  91.      bool  m_bEventOk;
  92.      bool  m_bTeserAct;
  93.      bool  m_bStop;
  94.      S_BT_PKT  m_sBTPKT;
  95.      S_BT_PKT_TCI m_sBTTCI;
  96.     // S_BT_PKT_MONITOR_REQ m_sBTMonReq;
  97.      S_BT_PKT_MONITOR_CNF m_sBTMonCnf;
  98.     // BT_HCI_COMMAND  m_sHciCmd;
  99. protected:
  100.    void  Confirm(E_METAAPP_RESULT_T confirm_state);
  101.    E_METAAPP_RESULT_T REQ_ResetBD(E_BT_PACKET_DEVICE_T device);
  102.    E_METAAPP_RESULT_T REQ_Read_BDAdrress(E_BT_PACKET_DEVICE_T device);
  103.    E_METAAPP_RESULT_T REQ_DUT_Enter_Test_mode(void);
  104.    E_METAAPP_RESULT_T REQ_DUT_Scan_Enable(void);
  105.    E_METAAPP_RESULT_T REQ_DUT_Auto_Accept(void);
  106.    E_METAAPP_RESULT_T REQ_Tester_Create_Connection(void);
  107.    E_METAAPP_RESULT_T REQ_Tester_TCI_Activate_Remote_DUT(void);
  108.    E_METAAPP_RESULT_T REQ_Read_Device_TX_RX_Count(E_BT_PACKET_DEVICE_T device);
  109.    E_METAAPP_RESULT_T REQ_Read_Device_EDR_TX_RX_Count(E_BT_PACKET_DEVICE_T device);
  110. public:
  111.    CBTPKT(void);
  112.    ~CBTPKT();
  113.    void (*ConfirmCallback)(void);
  114.    void REQ_Pkt_Test(void);
  115.    void REQ_Tester_TCI_Control_Remote_DUT(void);
  116.    void REQ_Read_TX_RX_Count(void);
  117.    void REQ_Read_EDR_TX_RX_Count(void);
  118.    void REQ_Stop(void);
  119.    // public interface
  120.    void REQ_Start(S_BT_PKT &bt_pkt);
  121.    void REQ_TCI_Control_Remote_DUT_Start(S_BT_PKT_TCI tci);
  122.    void REQ_Read_TX_RX_Count_Start(void);
  123.    void REQ_Read_EDR_TX_RX_Count_Start(void);
  124.    void REQ_Stop_Start(void);
  125. // callback
  126.    void __stdcall CNF_ResetBDHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  127.    void __stdcall CNF_ReadBDAddressHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  128.    void __stdcall CNF_DUTEnterTestModeHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  129.    void __stdcall CNF_DUTScanEnableHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  130.    void __stdcall CNF_DUTAutoAcceptHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  131.    void __stdcall CNF_TesterCreateConnectionHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  132.    void __stdcall CNF_TesterTCIActivateRemoteDUTHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  133.    void __stdcall CNF_TesterTCIControlRemoteDUTHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  134.    void __stdcall CNF_ReadDeviceTxRxCountHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  135.    void __stdcall CNF_ReadDeviceEDRTxRxCountHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  136. #if 0
  137.    // ----------------------   HCI command    -----------------------------
  138.    void  Reset_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  139.    // read BD address
  140.    void  Compose_Read_BD_Addr_HCI_Command1(BT_HCI_COMMAND &hci_cmd);
  141.    void  Compose_Read_BD_Addr_HCI_Command2(BT_HCI_COMMAND &hci_cmd);
  142.    bool  DeCompose_Read_BD_Addr_HCI_Event2(BT_HCI_EVENT hci_event, S_BD_ADDR &bd_addr);
  143.    // enter test mode
  144.    void  Compose_Enter_Test_Mode_HCI_Command(BT_HCI_COMMAND &hci_cmd);
  145.    bool  DeCompose_Enter_Test_Mode_HCI_Event(BT_HCI_EVENT hci_event);
  146.    // scan enable
  147.    void  Compose_Scan_Enable_HCI_Command(BT_HCI_COMMAND &hci_cmd);
  148. //   void  Compose_Scan_Enable_HCI_Command2( BT_HCI_COMMAND &hci_cmd );
  149.    bool  DeCompose_Scan_Enable_HCI_Event(BT_HCI_EVENT hci_event);
  150.    void  Compose_Auto_Accept_HCI_Command(BT_HCI_COMMAND &hci_cmd);
  151.    bool  DeCompose_Auto_Accept_HCI_Event(BT_HCI_EVENT hci_event);
  152. //   bool  DeCompose_Scan_Enable_HCI_Event2( BT_HCI_EVENT &hci_event );
  153.    // ACL connect
  154.    void  Compose_ACL_Connect_HCI_Command(S_BD_ADDR &bd_addr, BT_HCI_COMMAND &hci_cmd);
  155.    bool  DeCompose_ACL_Connect_HCI_Event1(BT_HCI_EVENT hci_event);
  156.    bool  DeCompose_ACL_Connect_HCI_Event2(BT_HCI_EVENT hci_event, S_BD_ADDR &bd_addr, unsigned char &h1, unsigned char &h2 );
  157.    bool  DeCompose_ACL_Connect_HCI_Event3(BT_HCI_EVENT hci_event, unsigned char &h1, unsigned char &h2 );
  158.    bool  DeCompose_ACL_Connect_HCI_Event4(BT_HCI_EVENT hci_event, unsigned char &h1, unsigned char &h2 );
  159.    // enable SCO connect
  160.   // void  Compose_Enable_SCO_Connect_HCI_Command1( BT_HCI_COMMAND &hci_cmd );
  161.   // bool  DeCompose_Enable_SCO_Connect_HCI_Event1( BT_HCI_EVENT &hci_event );
  162.   // void  Compose_Enable_SCO_Connect_HCI_Command2( S_BD_ADDR &bd_addr, E_BT_SCO sco, BT_HCI_COMMAND &hci_cmd );
  163.    // create SCO connect
  164.   // void  Compose_Create_SCO_Connect_HCI_Command( E_BT_ACL_P1 p1, E_BT_ACL_P1 p2, E_BT_SCO sco, BT_HCI_COMMAND &hci_cmd );
  165.    // TCI
  166.    void  Compose_TCI_Activate_Remote_DUT_HCI_Command( unsigned char &h1, unsigned char &h2, BT_HCI_COMMAND &hci_cmd );
  167.    bool  DeCompose_TCI_Activate_Remote_DUT_HCI_Event1( BT_HCI_EVENT &hci_event );
  168.    bool  DeCompose_TCI_Activate_Remote_DUT_HCI_Event2( BT_HCI_EVENT &hci_event );
  169.    void  Compose_TCI_Control_Remote_DUT_HCI_Command( unsigned char h1,
  170.                                                           unsigned char h2,
  171.                                                           S_BT_PKT_TCI req,
  172.                                                           BT_HCI_COMMAND &hci_cmd );
  173.    bool  DeCompose_TCI_Control_Remote_DUT_HCI_Event1(BT_HCI_EVENT hci_event);
  174.    bool  DeCompose_TCI_Control_Remote_DUT_HCI_Event2(BT_HCI_EVENT hci_event);
  175.    // start TX packet
  176. //   void  Compose_Start_TX_Packet_HCI_Command( E_BT_ACL_P1 p1, E_BT_ACL_P1 p2, unsigned char poll_period,
  177. //                                                   unsigned short packet_length, BT_HCI_COMMAND &hci_cmd );
  178. //   bool  DeCompose_Start_TX_Packet_HCI_Event( BT_HCI_EVENT &hci_event );
  179.    // Get Packet TX/RX count
  180.    void  Compose_Read_TX_RX_Count_HCI_Command(BT_HCI_COMMAND &hci_cmd);
  181.    bool  DeCompose_Read_TX_RX_Count_HCI_Event(BT_HCI_EVENT hci_event, S_BT_PKT_MONITOR_TXRX_CNF &monitor);
  182.    void  Compose_Read_EDR_TX_RX_Count_HCI_Command(BT_HCI_COMMAND &hci_cmd);
  183.    bool  DeCompose_Read_EDR_TX_RX_Count_HCI_Event(BT_HCI_EVENT hci_event, S_BT_PKT_MONITOR_TXRX_CNF &monitor);
  184.    // reset
  185.    void  Compose_Reset_HCI_Command(BT_HCI_COMMAND &hci_cmd);
  186. #endif   
  187.    // log
  188.    void  AddTxLogToStringList(BT_HCI_COMMAND hci_cmd, E_BT_PACKET_DEVICE_T obj);
  189.    void  AddRxLogToStringList(BT_HCI_EVENT hci_event, E_BT_PACKET_DEVICE_T obj);
  190.    // global information
  191.    E_METAAPP_RESULT_T Get_ConfirmState(void);
  192.    S_BD_ADDR Get_TesterBDAddress(void);
  193.    S_BD_ADDR Get_DUTBDAddress(void);
  194.    S_BT_PKT_MONITOR_CNF Get_MonitorResult(void);
  195. };
  196. /*---------------------------------------------------------------------------*/
  197. #endif