BLE temperature profile using digital DS1820 or analog LM35 sensors

Dependencies:   DS1820

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 #include "blecommon.h"
00021 
00022 #define GAP_ADV_PARAMS_INTERVAL_MIN        (0x0020)
00023 #define GAP_ADV_PARAMS_INTERVAL_MIN_NONCON (0x00A0)
00024 #define GAP_ADV_PARAMS_INTERVAL_MAX        (0x1000)
00025 #define GAP_ADV_PARAMS_TIMEOUT_MAX         (0x3FFF)
00026 
00027 /**************************************************************************/
00028 /*!
00029     \brief
00030     This class provides a wrapper for the core advertising parameters,
00031     including the advertising type (Connectable Undirected,
00032     Non Connectable Undirected, etc.), as well as the advertising and
00033     timeout intervals.
00034 
00035     \par
00036     See the following for more information on advertising types:
00037     
00038     \li \c Bluetooth Core Specification 4.0 (Vol. 6), Part B, Section 2.3.1
00039     \li \c Bluetooth Core Specification 4.0 (Vol. 3), Part C, Section 9.3
00040 
00041     \par EXAMPLE
00042     
00043     \code
00044     
00045     // ToDo
00046     
00047     \endcode
00048 */
00049 /**************************************************************************/
00050 class GapAdvertisingParams
00051 {
00052   public:
00053     /**************************************************************************/
00054     /*!
00055         \brief
00056         Encapsulates the peripheral advertising modes, which determine how
00057         the device appears to other central devices in hearing range
00058 
00059         \par
00060         See the following for more information on advertising types:
00061         
00062         \li \c Bluetooth Core Specification 4.0 (Vol. 6), Part B, Section 2.3.1
00063         \li \c Bluetooth Core Specification 4.0 (Vol. 3), Part C, Section 9.3
00064     */
00065     /**************************************************************************/
00066     enum AdvertisingType
00067     {
00068       ADV_CONNECTABLE_UNDIRECTED,       /**< Vol 3, Part C, Section 9.3.4 and Vol 6, Part B, Section 2.3.1.1 */
00069       ADV_CONNECTABLE_DIRECTED,         /**< Vol 3, Part C, Section 9.3.3 and Vol 6, Part B, Section 2.3.1.2 */
00070       ADV_SCANNABLE_UNDIRECTED,         /**< Include support for Scan Response payloads, see Vol 6, Part B, Section 2.3.1.4 */
00071       ADV_NON_CONNECTABLE_UNDIRECTED    /**< Vol 3, Part C, Section 9.3.2 and Vol 6, Part B, Section 2.3.1.3 */
00072     };
00073   
00074     GapAdvertisingParams(AdvertisingType advType = GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED,
00075                          uint16_t interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON,
00076                          uint16_t timeout = 0);
00077     virtual ~GapAdvertisingParams (void);
00078     
00079     virtual AdvertisingType getAdvertisingType(void);
00080     virtual uint16_t        getInterval(void);
00081     virtual uint16_t        getTimeout(void);
00082 
00083   private:
00084     AdvertisingType  _advType;
00085     uint16_t _interval;
00086     uint16_t _timeout;
00087 };
00088 
00089 #endif