Fork of ble-x-nucleo-idb0xa1 with changes required by BleStarMbed

Dependents:   ble-star-mbed

Committer:
lorevee
Date:
Tue Feb 20 11:07:16 2018 +0000
Revision:
0:ac0b0725c6fa
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lorevee 0:ac0b0725c6fa 1 /* mbed Microcontroller Library
lorevee 0:ac0b0725c6fa 2 * Copyright (c) 2006-2013 ARM Limited
lorevee 0:ac0b0725c6fa 3 *
lorevee 0:ac0b0725c6fa 4 * Licensed under the Apache License, Version 2.0 (the "License");
lorevee 0:ac0b0725c6fa 5 * you may not use this file except in compliance with the License.
lorevee 0:ac0b0725c6fa 6 * You may obtain a copy of the License at
lorevee 0:ac0b0725c6fa 7 *
lorevee 0:ac0b0725c6fa 8 * http://www.apache.org/licenses/LICENSE-2.0
lorevee 0:ac0b0725c6fa 9 *
lorevee 0:ac0b0725c6fa 10 * Unless required by applicable law or agreed to in writing, software
lorevee 0:ac0b0725c6fa 11 * distributed under the License is distributed on an "AS IS" BASIS,
lorevee 0:ac0b0725c6fa 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
lorevee 0:ac0b0725c6fa 13 * See the License for the specific language governing permissions and
lorevee 0:ac0b0725c6fa 14 * limitations under the License.
lorevee 0:ac0b0725c6fa 15 */
lorevee 0:ac0b0725c6fa 16
lorevee 0:ac0b0725c6fa 17 #include "ble_utils.h"
lorevee 0:ac0b0725c6fa 18
lorevee 0:ac0b0725c6fa 19 /**************************************************************************/
lorevee 0:ac0b0725c6fa 20 /*!
lorevee 0:ac0b0725c6fa 21 @brief sets values of EN_HIGH_POWER and PA_LEVEL corresponding to dBMLevel of tx power
lorevee 0:ac0b0725c6fa 22
lorevee 0:ac0b0725c6fa 23 */
lorevee 0:ac0b0725c6fa 24 /**************************************************************************/
lorevee 0:ac0b0725c6fa 25 tBleStatus getHighPowerAndPALevelValue(int8_t dBMLevel, int8_t& EN_HIGH_POWER, int8_t& PA_LEVEL) {
lorevee 0:ac0b0725c6fa 26 tBleStatus ret = BLE_STATUS_SUCCESS;
lorevee 0:ac0b0725c6fa 27
lorevee 0:ac0b0725c6fa 28 if(dBMLevel==-18) {
lorevee 0:ac0b0725c6fa 29 EN_HIGH_POWER = 0;
lorevee 0:ac0b0725c6fa 30 PA_LEVEL = 0;
lorevee 0:ac0b0725c6fa 31 }
lorevee 0:ac0b0725c6fa 32 else if(dBMLevel==-15) {
lorevee 0:ac0b0725c6fa 33 EN_HIGH_POWER = 0;
lorevee 0:ac0b0725c6fa 34 PA_LEVEL = 1;
lorevee 0:ac0b0725c6fa 35 }
lorevee 0:ac0b0725c6fa 36 else if(dBMLevel==-14) {
lorevee 0:ac0b0725c6fa 37 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 38 PA_LEVEL = 0;
lorevee 0:ac0b0725c6fa 39 }
lorevee 0:ac0b0725c6fa 40 else if(dBMLevel==-12) {
lorevee 0:ac0b0725c6fa 41 EN_HIGH_POWER = 0;
lorevee 0:ac0b0725c6fa 42 PA_LEVEL = 2;
lorevee 0:ac0b0725c6fa 43 }
lorevee 0:ac0b0725c6fa 44 else if(dBMLevel==-11) {
lorevee 0:ac0b0725c6fa 45 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 46 PA_LEVEL = 1;
lorevee 0:ac0b0725c6fa 47 }
lorevee 0:ac0b0725c6fa 48 else if(dBMLevel==-9) {
lorevee 0:ac0b0725c6fa 49 EN_HIGH_POWER = 0;
lorevee 0:ac0b0725c6fa 50 PA_LEVEL = 3;
lorevee 0:ac0b0725c6fa 51 }
lorevee 0:ac0b0725c6fa 52 else if(dBMLevel==-8) {
lorevee 0:ac0b0725c6fa 53 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 54 PA_LEVEL = 2;
lorevee 0:ac0b0725c6fa 55 }
lorevee 0:ac0b0725c6fa 56 else if(dBMLevel==-6) {
lorevee 0:ac0b0725c6fa 57 EN_HIGH_POWER = 0;
lorevee 0:ac0b0725c6fa 58 PA_LEVEL = 4;
lorevee 0:ac0b0725c6fa 59 }
lorevee 0:ac0b0725c6fa 60 else if(dBMLevel==-5) {
lorevee 0:ac0b0725c6fa 61 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 62 PA_LEVEL = 3;
lorevee 0:ac0b0725c6fa 63 }
lorevee 0:ac0b0725c6fa 64 else if(dBMLevel==-2) {
lorevee 0:ac0b0725c6fa 65 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 66 PA_LEVEL = 4;
lorevee 0:ac0b0725c6fa 67 }
lorevee 0:ac0b0725c6fa 68 else if(dBMLevel==0) {
lorevee 0:ac0b0725c6fa 69 EN_HIGH_POWER = 0;
lorevee 0:ac0b0725c6fa 70 PA_LEVEL = 6;
lorevee 0:ac0b0725c6fa 71 }
lorevee 0:ac0b0725c6fa 72 else if(dBMLevel==2) {
lorevee 0:ac0b0725c6fa 73 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 74 PA_LEVEL = 5;
lorevee 0:ac0b0725c6fa 75 }
lorevee 0:ac0b0725c6fa 76 else if(dBMLevel==4) {
lorevee 0:ac0b0725c6fa 77 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 78 PA_LEVEL = 6;
lorevee 0:ac0b0725c6fa 79 }
lorevee 0:ac0b0725c6fa 80 else if(dBMLevel==5) {
lorevee 0:ac0b0725c6fa 81 EN_HIGH_POWER = 0;
lorevee 0:ac0b0725c6fa 82 PA_LEVEL = 7;
lorevee 0:ac0b0725c6fa 83 }
lorevee 0:ac0b0725c6fa 84 else if(dBMLevel==8) {
lorevee 0:ac0b0725c6fa 85 EN_HIGH_POWER = 1;
lorevee 0:ac0b0725c6fa 86 PA_LEVEL = 7;
lorevee 0:ac0b0725c6fa 87 }
lorevee 0:ac0b0725c6fa 88 else {
lorevee 0:ac0b0725c6fa 89 ret = ERR_INVALID_HCI_CMD_PARAMS;
lorevee 0:ac0b0725c6fa 90 }
lorevee 0:ac0b0725c6fa 91
lorevee 0:ac0b0725c6fa 92 return ret;
lorevee 0:ac0b0725c6fa 93 }