Wallbot_CaaS

Dependencies:   MPU6050 mbed PID

Fork of BLE_MPU6050_test6_challenge_sb by Junichi Katsu

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GapAdvertisingParams.h Source File

GapAdvertisingParams.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015 */
00016 
00017 #ifndef __GAP_ADVERTISING_PARAMS_H__
00018 #define __GAP_ADVERTISING_PARAMS_H__
00019 
00020 /**************************************************************************/
00021 /*!
00022     \brief
00023     This class provides a wrapper for the core advertising parameters,
00024     including the advertising type (Connectable Undirected,
00025     Non Connectable Undirected, etc.), as well as the advertising and
00026     timeout intervals.
00027 
00028     \par
00029     See the following for more information on advertising types:
00030 
00031     \li \c Bluetooth Core Specification 4.0 (Vol. 6), Part B, Section 2.3.1
00032     \li \c Bluetooth Core Specification 4.0 (Vol. 3), Part C, Section 9.3
00033 */
00034 /**************************************************************************/
00035 class GapAdvertisingParams {
00036 public:
00037     static const unsigned GAP_ADV_PARAMS_INTERVAL_MIN        = 0x0020;
00038     static const unsigned GAP_ADV_PARAMS_INTERVAL_MIN_NONCON = 0x00A0;
00039     static const unsigned GAP_ADV_PARAMS_INTERVAL_MAX        = 0x4000;
00040     static const unsigned GAP_ADV_PARAMS_TIMEOUT_MAX         = 0x3FFF;
00041 
00042     /**************************************************************************/
00043     /*!
00044         \brief
00045         Encapsulates the peripheral advertising modes, which determine how
00046         the device appears to other central devices in hearing range
00047 
00048         \par
00049         See the following for more information on advertising types:
00050 
00051         \li \c Bluetooth Core Specification 4.0 (Vol. 6), Part B, Section 2.3.1
00052         \li \c Bluetooth Core Specification 4.0 (Vol. 3), Part C, Section 9.3
00053     */
00054     /**************************************************************************/
00055     enum AdvertisingType {
00056         ADV_CONNECTABLE_UNDIRECTED,     /**< Vol 3, Part C, Section 9.3.4 and Vol 6, Part B, Section 2.3.1.1 */
00057         ADV_CONNECTABLE_DIRECTED,       /**< Vol 3, Part C, Section 9.3.3 and Vol 6, Part B, Section 2.3.1.2 */
00058         ADV_SCANNABLE_UNDIRECTED,       /**< Include support for Scan Response payloads, see Vol 6, Part B, Section 2.3.1.4 */
00059         ADV_NON_CONNECTABLE_UNDIRECTED  /**< Vol 3, Part C, Section 9.3.2 and Vol 6, Part B, Section 2.3.1.3 */
00060     };
00061 
00062 public:
00063     GapAdvertisingParams(AdvertisingType advType  = GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED,
00064                          uint16_t        interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON,
00065                          uint16_t        timeout  = 0);
00066     virtual ~GapAdvertisingParams (void);
00067 
00068     AdvertisingType getAdvertisingType(void) const {return _advType; }
00069     uint16_t        getInterval(void)        const {return _interval;}
00070     uint16_t        getTimeout(void)         const {return _timeout; }
00071 
00072     void setAdvertisingType(AdvertisingType newAdvType) {_advType = newAdvType;  }
00073     void setInterval(uint16_t newInterval)              {_interval = newInterval;}
00074     void setTimeout(uint16_t newTimeout)                {_timeout = newTimeout;  }
00075 
00076 private:
00077     AdvertisingType _advType;
00078     uint16_t        _interval;
00079     uint16_t        _timeout;
00080 
00081 private:
00082     /* disallow copy constructor */
00083     GapAdvertisingParams(const GapAdvertisingParams &);
00084 };
00085 
00086 #endif // ifndef __GAP_ADVERTISING_PARAMS_H__