BLE lib
Fork of Nucleo_BLE_API by
public/GattService.h
- Committer:
- vijaynvr
- Date:
- 2015-02-08
- Revision:
- 4:f1696bf0e6c6
- Parent:
- 0:289fd2dae405
File content as of revision 4:f1696bf0e6c6:
/* mbed Microcontroller Library * Copyright (c) 2006-2013 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __GATT_SERVICE_H__ #define __GATT_SERVICE_H__ #include "blecommon.h" #include "UUID.h" #include "GattCharacteristic.h" /**************************************************************************/ /*! \brief GATT service */ /**************************************************************************/ class GattService { public: /** * @brief Creates a new GattCharacteristic using the specified 16-bit * UUID, value length, and properties * * @note The UUID value must be unique in the service and is normally >1 * * @param[in] uuid * The UUID to use for this characteristic * @param[in] characteristics * A pointer to an array of characteristics to be included within this service * @param[in] numCharacteristics * The number of characteristics */ /**************************************************************************/ GattService(const UUID &uuid, GattCharacteristic *characteristics[], unsigned numCharacteristics); enum { UUID_ALERT_NOTIFICATION_SERVICE = 0x1811, UUID_BATTERY_SERVICE = 0x180F, UUID_BLOOD_PRESSURE_SERVICE = 0x1810, UUID_CURRENT_TIME_SERVICE = 0x1805, UUID_CYCLING_SPEED_AND_CADENCE = 0x1816, UUID_DEVICE_INFORMATION_SERVICE = 0x180A, UUID_GLUCOSE_SERVICE = 0x1808, UUID_HEALTH_THERMOMETER_SERVICE = 0x1809, UUID_HEART_RATE_SERVICE = 0x180D, UUID_VIJAYS_UNICORN_SERVICE = 0x18FF, UUID_HUMAN_INTERFACE_DEVICE_SERVICE = 0x1812, UUID_IMMEDIATE_ALERT_SERVICE = 0x1802, UUID_LINK_LOSS_SERVICE = 0x1803, UUID_NEXT_DST_CHANGE_SERVICE = 0x1807, UUID_PHONE_ALERT_STATUS_SERVICE = 0x180E, UUID_REFERENCE_TIME_UPDATE_SERVICE = 0x1806, UUID_RUNNING_SPEED_AND_CADENCE = 0x1814, UUID_SCAN_PARAMETERS_SERVICE = 0x1813, UUID_TX_POWER_SERVICE = 0x1804 }; const UUID &getUUID(void) const { return _primaryServiceID; } uint16_t getHandle(void) const { return _handle; } void setHandle(uint16_t handle) { _handle = handle; } uint8_t getCharacteristicCount(void) const { return _characteristicCount; } GattCharacteristic *getCharacteristic(uint8_t index) { if (index >= _characteristicCount) { return NULL; } return _characteristics[index]; } private: UUID _primaryServiceID; uint8_t _characteristicCount; GattCharacteristic **_characteristics; uint16_t _handle; }; #endif // ifndef __GATT_SERVICE_H__