mbed-os

Fork of mbed-os by erkin yucel

Committer:
xuaner
Date:
Thu Jul 20 14:26:57 2017 +0000
Revision:
1:3deb71413561
Parent:
0:f269e3021894
mbed_os

Who changed what in which revision?

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