| /*! @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 */ |