BLE test

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
Andrea Palmieri
Date:
Tue Apr 26 14:32:13 2016 +0200
Revision:
226:be2f4e1d0515
Parent:
132:51056160fa4a
Check Tx Power values according to Permitted Tx Power values

Signed-off-by: Andrea Palmieri <andrea.palmieri@st.com>

Who changed what in which revision?

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