181 lines
5.5 KiB
C
181 lines
5.5 KiB
C
/** @file
|
|
* @brief Bluetooth UUID handling
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 2015 Intel Corporation
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
*
|
|
* 1) Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
*
|
|
* 2) Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
* and/or other materials provided with the distribution.
|
|
*
|
|
* 3) Neither the name of Intel Corporation nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software without
|
|
* specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
#ifndef __BT_UUID_H
|
|
#define __BT_UUID_H
|
|
|
|
/** @def BBT_UUID_GAP
|
|
* @brief Generic Access
|
|
*/
|
|
#define BT_UUID_GAP 0x1800
|
|
/** @def BBT_UUID_GATT
|
|
* @brief Generic Attribute
|
|
*/
|
|
#define BT_UUID_GATT 0x1801
|
|
/** @def BBT_UUID_CTS
|
|
* @brief Current Time Service
|
|
*/
|
|
#define BT_UUID_CTS 0x1805
|
|
/** @def BBT_UUID_DIS
|
|
* @brief Device Information Service
|
|
*/
|
|
#define BT_UUID_DIS 0x180a
|
|
/** @def BBT_UUID_HRS
|
|
* @brief Heart Rate Service
|
|
*/
|
|
#define BT_UUID_HRS 0x180d
|
|
/** @def BBT_UUID_BAS
|
|
* @brief Battery Service
|
|
*/
|
|
#define BT_UUID_BAS 0x180f
|
|
/** @def BT_UUID_GATT_PRIMARY
|
|
* @brief GATT Primary Service
|
|
*/
|
|
#define BT_UUID_GATT_PRIMARY 0x2800
|
|
/** @def BT_UUID_GATT_SECONDARY
|
|
* @brief GATT Secondary Service
|
|
*/
|
|
#define BT_UUID_GATT_SECONDARY 0x2801
|
|
/** @def BT_UUID_GATT_INCLUDE
|
|
* @brief GATT Include Service
|
|
*/
|
|
#define BT_UUID_GATT_INCLUDE 0x2802
|
|
/** @def BT_UUID_GATT_CHRC
|
|
* @brief GATT Characteristic
|
|
*/
|
|
#define BT_UUID_GATT_CHRC 0x2803
|
|
/** @def BT_UUID_GATT_CEP
|
|
* @brief GATT Characteristic Extended Properties
|
|
*/
|
|
#define BT_UUID_GATT_CEP 0x2900
|
|
/** @def BT_UUID_GATT_CUD
|
|
* @brief GATT Characteristic User Description
|
|
*/
|
|
#define BT_UUID_GATT_CUD 0x2901
|
|
/** @def BT_UUID_GATT_CCC
|
|
* @brief GATT Client Characteristic Configuration
|
|
*/
|
|
#define BT_UUID_GATT_CCC 0x2902
|
|
/** @def BT_UUID_GAP_DEVICE_NAME
|
|
* @brief GAP Characteristic Device Name
|
|
*/
|
|
#define BT_UUID_GAP_DEVICE_NAME 0x2a00
|
|
/** @def BT_UUID_GAP_APPEARANCE
|
|
* @brief GAP Characteristic Appearance
|
|
*/
|
|
#define BT_UUID_GAP_APPEARANCE 0x2a01
|
|
/** @def BT_UUID_BAS_BATTERY_LEVEL
|
|
* @brief BAS Characteristic Battery Level
|
|
*/
|
|
#define BT_UUID_BAS_BATTERY_LEVEL 0x2a19
|
|
/** @def BT_UUID_DIS_SYSTEM_ID
|
|
* @brief DIS Characteristic System ID
|
|
*/
|
|
#define BT_UUID_DIS_SYSTEM_ID 0x2a23
|
|
/** @def BT_UUID_DIS_MODEL_NUMBER_STRING
|
|
* @brief DIS Characteristic Model Number String
|
|
*/
|
|
#define BT_UUID_DIS_MODEL_NUMBER_STRING 0x2a24
|
|
/** @def BT_UUID_DIS_SERIAL_NUMBER_STRING
|
|
* @brief DIS Characteristic Serial Number String
|
|
*/
|
|
#define BT_UUID_DIS_SERIAL_NUMBER_STRING 0x2a25
|
|
/** @def BT_UUID_DIS_FIRMWARE_REVISION_STRING
|
|
* @brief DIS Characteristic Firmware Revision String
|
|
*/
|
|
#define BT_UUID_DIS_FIRMWARE_REVISION_STRING 0x2a26
|
|
/** @def BT_UUID_DIS_HARDWARE_REVISION_STRING
|
|
* @brief DIS Characteristic Hardware Revision String
|
|
*/
|
|
#define BT_UUID_DIS_HARDWARE_REVISION_STRING 0x2a27
|
|
/** @def BT_UUID_DIS_SOFTWARE_REVISION_STRING
|
|
* @brief DIS Characteristic Software Revision String
|
|
*/
|
|
#define BT_UUID_DIS_SOFTWARE_REVISION_STRING 0x2a28
|
|
/** @def BT_UUID_DIS_MANUFACTURER_NAME_STRING
|
|
* @brief DIS Characteristic Manufacturer Name String
|
|
*/
|
|
#define BT_UUID_DIS_MANUFACTURER_NAME_STRING 0x2a29
|
|
/** @def BT_UUID_DIS_PNP_ID
|
|
* @brief DIS Characteristic PnP ID
|
|
*/
|
|
#define BT_UUID_DIS_PNP_ID 0x2a50
|
|
/** @def BT_UUID_CTS_CURRENT_TIME
|
|
* @brief CTS Characteristic Current Time
|
|
*/
|
|
#define BT_UUID_CTS_CURRENT_TIME 0x2a2b
|
|
/** @def BT_UUID_HR_MEASUREMENT
|
|
* @brief HRS Characteristic Measurement Interval
|
|
*/
|
|
#define BT_UUID_HRS_MEASUREMENT 0x2a37
|
|
/** @def BT_UUID_HRS_BODY_SENSOR
|
|
* @brief HRS Characteristic Body Sensor Location
|
|
*/
|
|
#define BT_UUID_HRS_BODY_SENSOR 0x2a38
|
|
/** @def BT_UUID_HR_CONTROL_POINT
|
|
* @brief HRS Characteristic Control Point
|
|
*/
|
|
#define BT_UUID_HRS_CONTROL_POINT 0x2a39
|
|
|
|
/** @brief Bluetooth UUID types */
|
|
enum bt_uuid_type {
|
|
BT_UUID_16,
|
|
BT_UUID_128,
|
|
};
|
|
|
|
/** @brief Bluetooth UUID structure */
|
|
struct bt_uuid {
|
|
/** UUID type */
|
|
uint8_t type;
|
|
union {
|
|
/** UUID 16 bits value */
|
|
uint16_t u16;
|
|
/** UUID 128 bits value */
|
|
uint8_t u128[16];
|
|
};
|
|
};
|
|
|
|
/** @brief Compare Bluetooth UUIDs.
|
|
*
|
|
* Compares 2 Bluetooth UUIDs, if the types are different both UUIDs are
|
|
* first converted to 128 bits format before comparing.
|
|
*
|
|
* @param u1 First Bluetooth UUID to compare
|
|
* @param u2 Second Bluetooth UUID to compare
|
|
*
|
|
* @return negative value if <u1> < <u2>, 0 if <u1> == <u2>, else positive
|
|
*/
|
|
int bt_uuid_cmp(const struct bt_uuid *u1, const struct bt_uuid *u2);
|
|
|
|
#endif /* __BT_UUID_H */
|