BTT_ctrl.cpp
上传用户: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) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  *   BTT_ctrl.cpp
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *  BT Tester control function source
  48.  *
  49.  * Author:
  50.  * -------
  51.  *  Andy Ueng (mtk00490)
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * $Revision$
  58.  * $Modtime$
  59.  * $Log$
  60.  *
  61.  *------------------------------------------------------------------------------
  62.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  63.  *============================================================================
  64.  ****************************************************************************/
  65. #include <vcl.h>
  66. #pragma hdrstop
  67. // equipment
  68. #ifndef  _CMU200_BT_SIG_H_
  69. #include "cmu200_bt_sig.h"
  70. #endif
  71. #ifndef  _BTT_COMMON_H_
  72. #include "btt_common.h"
  73. #endif
  74. #ifndef  _BTT_CTRL_H_
  75. #include "btt_ctrl.h"
  76. #endif
  77. #ifndef  _CBT_BT_SIG_H_
  78. #include "cbt_bt_sig.h"
  79. #endif
  80. //===========================================================================
  81. CBTTCTRL::CBTTCTRL( void )
  82. {
  83. }
  84. //---------------------------------------------------------------------------
  85. CBTTCTRL::~CBTTCTRL()
  86. {
  87. }
  88. //=============================================================================
  89. bool CBTTCTRL::BTT_Init(S_BTT *p_btt)
  90. {
  91.     //-----------------------------------------------------------------------
  92.     // CMU
  93.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  94.     {
  95.         if (!cmu_sig_bt_init(&(p_btt->cmu), p_btt->bReset))
  96.         {
  97.             return false;
  98.         }
  99.     }
  100.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  101.     {
  102.         if (!cbt_sig_bt_init(&(p_btt->s_cbt), p_btt->bReset))
  103.         {
  104.             return false;
  105.         }
  106.     }
  107.     return true;
  108. }
  109. //----------------------------------------------------------------------------
  110. bool CBTTCTRL::BTT_Close(S_BTT *p_btt)
  111. {
  112.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  113.     {
  114.         if (!cmu_sig_bt_close(&(p_btt->cmu)))
  115.         {
  116.             return false;
  117.         }
  118.     }
  119.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  120.     {
  121.         if (!cbt_sig_bt_close(&(p_btt->s_cbt)))
  122.         {
  123.             return false;
  124.         }
  125.     }
  126.     return true;
  127. }
  128. //----------------------------------------------------------------------------
  129. bool CBTTCTRL::BTT_Config_Slave_Parameter(S_BTT *p_btt, unsigned short ch)
  130. {
  131.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  132.     {
  133.         if (!cmu_sig_bt_config_slave_parameter(&(p_btt->cmu), ch))
  134.         {
  135.             return false;
  136.         }
  137.     }
  138.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  139.     {
  140.         if (!cbt_sig_bt_config_slave_parameter(&(p_btt->s_cbt), ch))
  141.         {
  142.             return false;
  143.         }
  144.     }
  145.     return true;
  146. }
  147. //----------------------------------------------------------------------------
  148. bool CBTTCTRL::BTT_Config_Downlink_Power(S_BTT *p_btt, double d_dn_power)
  149. {
  150.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  151.     {
  152.         if (!cmu_sig_bt_config_downlink_power(&(p_btt->cmu), d_dn_power))
  153.         {
  154.             return false;
  155.         }
  156.     }
  157.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  158.     {
  159.         if (!cbt_sig_bt_config_downlink_power(&(p_btt->s_cbt), d_dn_power))
  160.         {
  161.             return false;
  162.         }
  163.     }
  164.     return true;
  165. }
  166. //----------------------------------------------------------------------------
  167. bool CBTTCTRL::BTT_Config_BD_Address(S_BTT *p_btt, AnsiString as_bd_addr)
  168. {
  169.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  170.     {
  171.         if (!cmu_sig_bt_config_address(&(p_btt->cmu), as_bd_addr))
  172.         {
  173.             return false;
  174.         }
  175.     }
  176.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  177.     {
  178.         if (!cbt_sig_bt_config_address(&(p_btt->s_cbt), as_bd_addr))
  179.         {
  180.             return false;
  181.         }
  182.     }
  183.     return true;
  184. }
  185. //----------------------------------------------------------------------------
  186. bool CBTTCTRL::BTT_Config_Inquiry(S_BTT *p_btt, S_BTT_INQUIRY s_inquiry)
  187. {
  188.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  189.     {
  190.         if (!cmu_sig_bt_config_inquiry(&(p_btt->cmu), s_inquiry)) //unit of timeout: 1.28s
  191.         {
  192.             return false;
  193.         }
  194.     }
  195.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  196.     {
  197.         if (!cbt_sig_bt_config_inquiry(&(p_btt->s_cbt), s_inquiry)) //unit of timeout: 1.28s
  198.         {
  199.             return false;
  200.         }
  201.     }
  202.     return true;
  203. }
  204. //----------------------------------------------------------------------------
  205. bool CBTTCTRL::BTT_Inquiry(S_BTT *p_btt)
  206. {
  207.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  208.     {
  209.         if (!cmu_sig_bt_inquiry(&(p_btt->cmu)))
  210.         {
  211.             return false;
  212.         }
  213.     }
  214.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  215.     {
  216.         if (!cbt_sig_bt_inquiry(&(p_btt->s_cbt)))
  217.         {
  218.             return false;
  219.         }
  220.     }
  221.     return true;
  222. }
  223. //----------------------------------------------------------------------------
  224. bool CBTTCTRL::BTT_Connect_Test(S_BTT *p_btt)
  225. {
  226.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  227.     {
  228.         if (!cmu_sig_bt_connect_test(&(p_btt->cmu)))
  229.         {
  230.             return false;
  231.         }
  232.     }
  233.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  234.     {
  235.         if (!cbt_sig_bt_connect_test(&(p_btt->s_cbt)))
  236.         {
  237.             return false;
  238.         }
  239.     }
  240.     return true;
  241. }
  242. //----------------------------------------------------------------------------
  243. bool CBTTCTRL::BTT_Query_State(S_BTT *p_btt, E_BTT_STATE_T &e_state)
  244. {
  245.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  246.     {
  247.         if (!cmu_sig_bt_query_state(&(p_btt->cmu), &e_state))
  248.         {
  249.             return false;
  250.         }
  251.     }
  252.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  253.     {
  254.         if (!cbt_sig_bt_query_state(&(p_btt->s_cbt), &e_state))
  255.         {
  256.             return false;
  257.         }
  258.     }
  259.     
  260.     return true;
  261. }
  262. //----------------------------------------------------------------------------
  263. bool CBTTCTRL::BTT_Release(S_BTT *p_btt)
  264. {
  265.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  266.     {
  267.         if (!cmu_sig_bt_release(&(p_btt->cmu)))
  268.         {
  269.             return false;
  270.         }
  271.     }
  272.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  273.     {
  274.         if (!cbt_sig_bt_release(&(p_btt->s_cbt)))
  275.         {
  276.             return false;
  277.         }
  278.     }
  279.     return true;
  280. }
  281. //----------------------------------------------------------------------------
  282. bool CBTTCTRL::BTT_Config_MPR(S_BTT *p_btt, S_BTT_POWER bt_mpr)
  283. {
  284.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  285.     {
  286.         if (!cmu_sig_bt_config_mpr(&(p_btt->cmu), bt_mpr))
  287.         {
  288.             return false;
  289.         }
  290.     }
  291.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  292.     {
  293.         if (!cbt_sig_bt_config_mpr(&(p_btt->s_cbt), bt_mpr))
  294.         {
  295.             return false;
  296.         }
  297.     }
  298.     return true;
  299. }
  300. //----------------------------------------------------------------------------
  301. bool CBTTCTRL::BTT_Config_MOD(S_BTT *p_btt, S_BTT_MOD bt_mod)
  302. {
  303.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  304.     {
  305.         if (!cmu_sig_bt_config_mod(&(p_btt->cmu), bt_mod))
  306.         {
  307.             return false;
  308.         }
  309.     }
  310.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  311.     {
  312.         if (!cbt_sig_bt_config_mod(&(p_btt->s_cbt), bt_mod))
  313.         {
  314.             return false;
  315.         }
  316.     }
  317.     return true;
  318. }
  319. //----------------------------------------------------------------------------
  320. bool CBTTCTRL::BTT_Read_Average_Freq_Error(S_BTT *p_btt, double &freq_err)
  321. {
  322.     if (BT_DEVICE_CMU_200 == p_btt->e_device_type)
  323.     {
  324.         if (!cmu_sig_bt_read_average_freq_error(&(p_btt->cmu), &freq_err))
  325.         {
  326.             return false;
  327.         }
  328.     }
  329.     else if (BT_DEVICE_CBT == p_btt->e_device_type)
  330.     {
  331.         if (!cbt_sig_bt_read_average_freq_error(&(p_btt->s_cbt), &freq_err))
  332.         {
  333.             return false;
  334.         }
  335.     }
  336.     return true;
  337. }