High level Bluetooth Low Energy API and radio abstraction layer

Fork of BLE_API by Bluetooth Low Energy

Committer:
rgrover1
Date:
Fri Aug 07 15:53:50 2015 +0100
Revision:
766:03f1a26f132f
Parent:
712:b04b5db36865
Child:
767:d6a79c77d1c3
Synchronized with git rev 0f2ba674
Author: Joshua Slater
Conversion from advertisement duration units to ms moved from Gap to GapAdvertisingParams. getInterval converts to ms. Added conversion in GapScanningParams

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 712:b04b5db36865 1 /* mbed Microcontroller Library
rgrover1 712:b04b5db36865 2 * Copyright (c) 2006-2013 ARM Limited
rgrover1 712:b04b5db36865 3 *
rgrover1 712:b04b5db36865 4 * Licensed under the Apache License, Version 2.0 (the "License");
rgrover1 712:b04b5db36865 5 * you may not use this file except in compliance with the License.
rgrover1 712:b04b5db36865 6 * You may obtain a copy of the License at
rgrover1 712:b04b5db36865 7 *
rgrover1 712:b04b5db36865 8 * http://www.apache.org/licenses/LICENSE-2.0
rgrover1 712:b04b5db36865 9 *
rgrover1 712:b04b5db36865 10 * Unless required by applicable law or agreed to in writing, software
rgrover1 712:b04b5db36865 11 * distributed under the License is distributed on an "AS IS" BASIS,
rgrover1 712:b04b5db36865 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rgrover1 712:b04b5db36865 13 * See the License for the specific language governing permissions and
rgrover1 712:b04b5db36865 14 * limitations under the License.
rgrover1 712:b04b5db36865 15 */
rgrover1 712:b04b5db36865 16
rgrover1 712:b04b5db36865 17 #include "ble/Gap.h"
rgrover1 712:b04b5db36865 18 #include "ble/GapScanningParams.h"
rgrover1 712:b04b5db36865 19
rgrover1 712:b04b5db36865 20 GapScanningParams::GapScanningParams(uint16_t interval, uint16_t window, uint16_t timeout, bool activeScanning) :
rgrover1 766:03f1a26f132f 21 _interval(Gap::MSEC_TO_SCAN_DURATION_UNITS(interval)),
rgrover1 766:03f1a26f132f 22 _window(Gap::MSEC_TO_SCAN_DURATION_UNITS(window)),
rgrover1 712:b04b5db36865 23 _timeout(timeout),
rgrover1 712:b04b5db36865 24 _activeScanning(activeScanning) {
rgrover1 712:b04b5db36865 25 /* stay within limits */
rgrover1 712:b04b5db36865 26 if (_interval < SCAN_INTERVAL_MIN) {
rgrover1 712:b04b5db36865 27 _interval = SCAN_INTERVAL_MIN;
rgrover1 712:b04b5db36865 28 }
rgrover1 712:b04b5db36865 29 if (_interval > SCAN_INTERVAL_MAX) {
rgrover1 712:b04b5db36865 30 _interval = SCAN_INTERVAL_MAX;
rgrover1 712:b04b5db36865 31 }
rgrover1 712:b04b5db36865 32 if (_window < SCAN_WINDOW_MIN) {
rgrover1 712:b04b5db36865 33 _window = SCAN_WINDOW_MIN;
rgrover1 712:b04b5db36865 34 }
rgrover1 712:b04b5db36865 35 if (_window > SCAN_WINDOW_MAX) {
rgrover1 712:b04b5db36865 36 _window = SCAN_WINDOW_MAX;
rgrover1 712:b04b5db36865 37 }
rgrover1 712:b04b5db36865 38 }
rgrover1 712:b04b5db36865 39
rgrover1 712:b04b5db36865 40 ble_error_t
rgrover1 712:b04b5db36865 41 GapScanningParams::setInterval(uint16_t newIntervalInMS)
rgrover1 712:b04b5db36865 42 {
rgrover1 766:03f1a26f132f 43 uint16_t newInterval = Gap::MSEC_TO_SCAN_DURATION_UNITS(newIntervalInMS);
rgrover1 712:b04b5db36865 44 if ((newInterval >= SCAN_INTERVAL_MIN) && (newInterval < SCAN_INTERVAL_MAX)) {
rgrover1 712:b04b5db36865 45 _interval = newInterval;
rgrover1 712:b04b5db36865 46 return BLE_ERROR_NONE;
rgrover1 712:b04b5db36865 47 }
rgrover1 712:b04b5db36865 48
rgrover1 712:b04b5db36865 49 return BLE_ERROR_PARAM_OUT_OF_RANGE;
rgrover1 712:b04b5db36865 50 }
rgrover1 712:b04b5db36865 51
rgrover1 712:b04b5db36865 52 ble_error_t
rgrover1 712:b04b5db36865 53 GapScanningParams::setWindow(uint16_t newWindowInMS)
rgrover1 712:b04b5db36865 54 {
rgrover1 766:03f1a26f132f 55 uint16_t newWindow = Gap::MSEC_TO_SCAN_DURATION_UNITS(newWindowInMS);
rgrover1 712:b04b5db36865 56 if ((newWindow >= SCAN_WINDOW_MIN) && (newWindow < SCAN_WINDOW_MAX)) {
rgrover1 712:b04b5db36865 57 _window = newWindow;
rgrover1 712:b04b5db36865 58 return BLE_ERROR_NONE;
rgrover1 712:b04b5db36865 59 }
rgrover1 712:b04b5db36865 60
rgrover1 712:b04b5db36865 61 return BLE_ERROR_PARAM_OUT_OF_RANGE;
rgrover1 712:b04b5db36865 62 }
rgrover1 712:b04b5db36865 63
rgrover1 712:b04b5db36865 64 ble_error_t
rgrover1 712:b04b5db36865 65 GapScanningParams::setTimeout(uint16_t newTimeout)
rgrover1 712:b04b5db36865 66 {
rgrover1 712:b04b5db36865 67 _timeout = newTimeout;
rgrover1 712:b04b5db36865 68 return BLE_ERROR_NONE;
rgrover1 712:b04b5db36865 69 }
rgrover1 712:b04b5db36865 70
rgrover1 712:b04b5db36865 71 void
rgrover1 712:b04b5db36865 72 GapScanningParams::setActiveScanning(bool activeScanning)
rgrover1 712:b04b5db36865 73 {
rgrover1 712:b04b5db36865 74 _activeScanning = activeScanning;
rgrover1 712:b04b5db36865 75 }