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

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_rf.h
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   BT RF 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_RF_H_
  41. #define  _BT_RF_H_
  42. #include <vcl.h>
  43. #ifndef META_DLL_H
  44. #include "meta.h"
  45. #endif
  46. #ifndef  _METAAPP_COMMON_H_
  47. #include "metaapp_common.h"
  48. #endif
  49. #ifndef  _MAN_HANDLE_H_
  50. #include "man_handle.h"
  51. #endif
  52. // BT
  53. #ifndef  _BT_COMMON_H_
  54. #include "bt_common.h"
  55. #endif
  56. /*---------------------------------------------------------------------------*/
  57. typedef enum
  58. {
  59.    BT_TX=0,
  60.    BT_RX
  61. }BT_RF_TEST_TYPE;
  62. typedef enum
  63. {
  64.     BT_TX_ALL_ZEROS=0x01,
  65.     BT_TX_ALL_ONES,
  66.     BT_TX_ALTER_BITS,
  67.     BT_TX_PSEUDO_RANDOM,
  68.     BT_TX_LOOPBACK_ACL_WITH_WHITENING,
  69.     BT_TX_LOOPBACK_SCO_WITH_WHITENING,
  70.     BT_RX_TEST,
  71.    // BT_TX_LOOPBACK_ACL_WITHOUT_WHITENING,
  72.     BT_TX_LOOPBACK_SCO_WITHOUT_WHITENING,
  73.     BT_TX_ONES_ZEROS,
  74. }E_BT_TX_PATTERN;
  75. typedef enum
  76. {
  77.     BT_FREQ_SINGLE=0,
  78.     BT_FREQ_HOPPING
  79. }E_BT_FREQ_TYPE;
  80. typedef enum
  81. {
  82.     BT_RF_TX_NULL_IDX = 0,
  83.     BT_RF_TX_POLL_IDX,
  84.     BT_RF_TX_FHS_IDX,
  85.     BT_RF_TX_DM1_IDX,
  86.     BT_RF_TX_DH1_IDX,
  87.     BT_RF_TX_HV1_IDX,
  88.     BT_RF_TX_HV2_IDX,
  89.     BT_RF_TX_HV3_IDX,
  90.     BT_RF_TX_DV_IDX,
  91.     BT_RF_TX_AUX_IDX,
  92.     BT_RF_TX_DM3_IDX,
  93.     BT_RF_TX_DH3_IDX,
  94.     BT_RF_TX_DM5_IDX,
  95.     BT_RF_TX_DH5_IDX,
  96.     BT_RF_TX_EV3_IDX,
  97.     BT_RF_TX_EV4_IDX,
  98.     BT_RF_TX_EV5_IDX,
  99.     BT_RF_TX_NONEDR_IDX_COUNT,
  100.     // BT 2.0
  101.     BT_RF_TX_2DH1_IDX = BT_RF_TX_NONEDR_IDX_COUNT,
  102.     BT_RF_TX_2EV3_IDX,
  103.     BT_RF_TX_2DH3_IDX,
  104.     BT_RF_TX_2EV5_IDX,
  105.     BT_RF_TX_2DH5_IDX,
  106.     BT_RF_TX_3EV3_IDX,
  107.     BT_RF_TX_3DH1_IDX,
  108.     BT_RF_TX_3DH3_IDX,
  109.     BT_RF_TX_3EV5_IDX,
  110.     BT_RF_TX_3DH5_IDX,
  111.     BT_RF_TX_IDX_COUNT
  112. }E_BT_RF_TX_IDX_T;
  113. typedef enum
  114. {
  115.     BT_RF_PACKET_NULL=0x00,
  116.     BT_RF_PACKET_POLL=0x01,
  117.     BT_RF_PACKET_FHS=0x02,
  118.     BT_RF_PACKET_DM1=0x03,
  119.     BT_RF_PACKET_DH1=0x04,
  120.     BT_RF_PACKET_HV1=0x05,
  121.     BT_RF_PACKET_HV2=0x06,
  122.     BT_RF_PACKET_HV3=0x07,
  123.     BT_RF_PACKET_DV=0x08,
  124.     BT_RF_PACKET_AUX=0x09,
  125.     BT_RF_PACKET_DM3=0x0A,
  126.     BT_RF_PACKET_DH3=0x0B,
  127.     BT_RF_PACKET_DM5=0x0E,
  128.     BT_RF_PACKET_DH5=0x0F,
  129.     BT_RF_PACKET_EV3=0x17,
  130.     BT_RF_PACKET_EV4=0x1C,
  131.     BT_RF_PACKET_EV5=0x1D,
  132.     BT_RF_PACKET_BURST_RX=0x20,
  133.     BT_RF_PACKET_CONT_RX=0x21,
  134.     // BT 2.0
  135.     BT_RF_PACKET_2DH1=0x24,
  136.     BT_RF_PACKET_2EV3=0x36,
  137.     BT_RF_PACKET_2DH3=0x2A,
  138.     BT_RF_PACKET_2EV5=0x3C,
  139.     BT_RF_PACKET_2DH5=0x2E,
  140.     BT_RF_PACKET_3EV3=0x37,
  141.     BT_RF_PACKET_3DH1=0x28,
  142.     BT_RF_PACKET_3DH3=0x2B,
  143.     BT_RF_PACKET_3EV5=0x3D,
  144.     BT_RF_PACKET_3DH5=0x2F
  145. }E_BT_TX_PACKET_TYPE;
  146. typedef enum
  147. {
  148.     BT_TX_WHITEN_OFF=0,
  149.     BT_TX_WHITEN_ON
  150. }E_TX_WHITEN;
  151. typedef enum
  152. {
  153.     BT_TX_MODULATION_OFF=0,
  154.     BT_TX_MODULATION_ON
  155. }E_TX_MODULATION;
  156. typedef enum
  157. {
  158.     BT_TX_POWER_CTRL_ON=0,
  159.     BT_TX_POWER_CTRL_OFF
  160. }E_BT_TX_POWER_CTRL;
  161. typedef struct
  162. {
  163.     unsigned char uc_access_code[8];
  164. }S_BT_TX_ACCESS_CODE;
  165. typedef struct
  166. {
  167.     HANDLE hPostMsgDestHandle;
  168.     TStringList *log;
  169.     BT_RF_TEST_TYPE     e_test_type;
  170.     E_BT_TX_PATTERN     e_pattern;
  171.     E_BT_FREQ_TYPE      e_freq_type;
  172.     unsigned char       uc_freq;
  173.    // unsigned char       uc_rx_freq;
  174.     E_BT_TX_PACKET_TYPE e_packet_type;
  175.     unsigned short       us_data_len;
  176.     unsigned char       uc_poll_period;
  177.     E_TX_WHITEN         e_whiten;
  178.     E_TX_MODULATION     e_modulation;
  179.     E_BT_TX_POWER_CTRL  e_power_ctrl;
  180.     unsigned char       uc_pcl;
  181.    // unsigned int        ui_lap;
  182.    // S_BD_ADDRS  s_BDAddr;
  183.     S_BT_TX_ACCESS_CODE s_access_code;
  184. }S_BT_RF;
  185. typedef enum
  186. {
  187.     BT_RX_CONT_RX=0,
  188.     BT_RX_BURST_RX
  189. }E_BT_RX_TYPE;
  190. typedef struct
  191. {
  192.     E_BT_FREQ_TYPE      e_freq_type;
  193.     unsigned char       uc_freq;
  194.     E_BT_RX_TYPE        e_rx_type;
  195. }S_BT_RF_RX;
  196. /*---------------------------------------------------------------------------*/
  197. class  CBTRF
  198. {
  199. private:
  200.      E_METAAPP_RESULT_T m_eConfirmState;
  201.      bool  m_bEventOk;
  202.      CMETAHANDLE m_META_HANDLE_Obj;
  203.      
  204.      S_BT_RF  m_sBtRf;
  205.      S_BD_ADDR m_sBdAddr;
  206.     // BT_HCI_COMMAND  m_sHciCmd;
  207. protected:
  208.    void  Confirm(E_METAAPP_RESULT_T confirm_state);
  209. public:
  210.    CBTRF( void );
  211.    ~CBTRF();
  212.    void  REQ_Stop_Start( void );
  213.    void  REQ_Finish( void );
  214.    void  REQ_TimeOut( void );
  215. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  216.  // Public member
  217.    void  (*ConfirmCallback)( void );
  218.    void  REQ_Start( S_BT_RF  bt_rf );
  219.    void  REQ_Stop( void );
  220.    // send HCI command
  221.    void  REQ_Enter_Test_Mode_Start( S_BT_RF  bt_rf );
  222.    void  REQ_Enter_Test_Mode1( void );
  223.    void  REQ_Enter_Test_Mode2( void );
  224.    void  REQ_Enter_Test_Mode3( void );
  225.    void  REQ_Send_Whiten_HCI_command( void );
  226.   // void  REQ_Send_Modulation_HCI_command( void );
  227.    void  REQ_Send_AccessCode_HCI_command( void );
  228.    void  REQ_Send_TxParameter_HCI_command( void );
  229.    void  REQ_Send_RxParameter_HCI_command( void );
  230.    void  REQ_SendResetHCICommand( void );
  231.    void  REQ_QueryBDAddress_Start( S_BT_RF  bt_rf );
  232.    void  REQ_Send_Read_BDAdrress_HCI_command( void );
  233.    void  REQ_ChangePCL_Start( S_BT_RF  bt_rf );
  234.    void  REQ_ChangePCL( void );
  235.    // compose/decompose HCI command
  236.    void  Reset_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  237.    void  Compose_Enter_Test_Mode1_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  238.    void  Compose_Enter_Test_Mode2_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  239.    void  Compose_Enter_Test_Mode3_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  240.    void  Compose_Whiten_HCI_Command( E_TX_WHITEN &whiten, BT_HCI_COMMAND &hci_cmd );
  241.    void  DeCompose_Whiten_HCI_Event( BT_HCI_COMMAND &hci_cmd, E_TX_WHITEN &whiten );
  242.    void  Compose_Modulation_HCI_Command( E_TX_MODULATION &modulation, BT_HCI_COMMAND &hci_cmd );
  243.    void  DeCompose_Modulation_HCI_Event( BT_HCI_COMMAND &hci_cmd, E_TX_MODULATION &modulation );
  244.    void  Compose_AccessCode_HCI_Command( S_BT_TX_ACCESS_CODE &access_code, BT_HCI_COMMAND &hci_cmd );
  245.    void  DeCompose_AccessCode_HCI_Event( BT_HCI_COMMAND &hci_cmd, S_BT_TX_ACCESS_CODE &access_code );
  246.    void  Compose_TxParameter_HCI_command( S_BT_RF bt_rf_tx, BT_HCI_COMMAND &hci_cmd );
  247.    void  DeCompose_TxParameter_HCI_Event( BT_HCI_COMMAND &hci_cmd, S_BT_RF bt_rf_tx );
  248.    void  Compose_RxParameter_HCI_command( S_BT_RF bt_rf_rx, BT_HCI_COMMAND &hci_cmd );
  249.    void  DeCompose_RxParameter_HCI_Event( BT_HCI_COMMAND &hci_cmd, S_BT_RF bt_rf_rx );
  250.    void  Compose_Reset_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  251.    void  Compose_Read_BD_Addr_HCI_Command1( BT_HCI_COMMAND &hci_cmd );
  252.    void  Compose_Read_BD_Addr_HCI_Command2( BT_HCI_COMMAND &hci_cmd );
  253.    bool  DeCompose_Read_BD_Addr_HCI_Event2(BT_HCI_EVENT hci_event, S_BD_ADDR &bd_addr);
  254.    void  Compose_ChangePCL_HCI_Command( BT_HCI_COMMAND &hci_cmd );
  255.    // callback
  256.    void __stdcall CNF_EnterTestMode1HCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  257.    void __stdcall CNF_EnterTestMode2HCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  258.    void __stdcall CNF_EnterTestMode3HCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  259.    void __stdcall CNF_SendWhitenHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  260.    void __stdcall CNF_SendModulationHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  261.    void __stdcall CNF_SendAccessCodeHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  262.    void __stdcall CNF_SendTxParameterHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  263.    void __stdcall CNF_SendRxParameterHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  264.    void __stdcall CNF_ResetHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  265.    void __stdcall CNF_DUTSendReadBDAddressHCIEvent1(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  266.    void __stdcall CNF_DUTSendReadBDAddressHCIEvent2(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  267.    void __stdcall CNF_SendReadBDAddressHCIEvent1(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  268.    void __stdcall CNF_SendReadBDAddressHCIEvent2(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  269.    void __stdcall CNF_ChangePCLHCIEvent(const BT_HCI_EVENT *cnf, const short token, void *usrData);
  270.    // log
  271.    void  AddTxLogToStringList(BT_HCI_COMMAND hci_cmd);
  272.    void  AddRxLogToStringList(BT_HCI_EVENT hci_event);
  273.    
  274.    // global information
  275.    E_METAAPP_RESULT_T Get_ConfirmState(void);
  276.    S_BD_ADDR Get_BdAddress( void );
  277.    
  278. };
  279. /*---------------------------------------------------------------------------*/
  280. #endif