1 /* 2 * Copyright 2019-2023, Cypress Semiconductor Corporation or 3 * an affiliate of Cypress Semiconductor Corporation. All rights reserved. 4 * 5 * This software, including source code, documentation and related 6 * materials ("Software") is owned by Cypress Semiconductor Corporation 7 * or one of its affiliates ("Cypress") and is protected by and subject to 8 * worldwide patent protection (United States and foreign), 9 * United States copyright laws and international treaty provisions. 10 * Therefore, you may use this Software only as provided in the license 11 * agreement accompanying the software package from which you 12 * obtained this Software ("EULA"). 13 * If no EULA applies, Cypress hereby grants you a personal, non-exclusive, 14 * non-transferable license to copy, modify, and compile the Software 15 * source code solely for use in connection with Cypress's 16 * integrated circuit products. Any reproduction, modification, translation, 17 * compilation, or representation of this Software except as specified 18 * above is prohibited without the express written permission of Cypress. 19 * 20 * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND, 21 * EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED 22 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress 23 * reserves the right to make changes to the Software without notice. Cypress 24 * does not assume any liability arising out of the application or use of the 25 * Software or any product or circuit described in the Software. Cypress does 26 * not authorize its products for use in any products where a malfunction or 27 * failure of the Cypress product may reasonably be expected to result in 28 * significant property damage, injury or death ("High Risk Product"). By 29 * including Cypress's product in a High Risk Product, the manufacturer 30 * of such system or application assumes all risk of such use and in doing 31 * so agrees to indemnify Cypress against all liability. 32 */ 33 34 /** @file 35 * 36 * WICED Generic Attribute (GATT) Application Programming Interface definitions 37 */ 38 39 #ifndef _GATTDEFS_H 40 #define _GATTDEFS_H 41 42 #define GATT_ILLEGAL_UUID 0 43 44 /* GATT attribute types 45 */ 46 #define GATT_UUID_PRI_SERVICE 0x2800 47 #define GATT_UUID_SEC_SERVICE 0x2801 48 #define GATT_UUID_INCLUDE_SERVICE 0x2802 49 #define GATT_UUID_CHAR_DECLARE 0x2803 /* Characteristic Declaration*/ 50 51 #define GATT_UUID_CHAR_EXT_PROP 0x2900 /* Characteristic Extended Properties */ 52 #define GATT_UUID_CHAR_DESCRIPTION 0x2901 /* Characteristic User Description*/ 53 #define GATT_UUID_CHAR_CLIENT_CONFIG 0x2902 /* Client Characteristic Configuration */ 54 #define GATT_UUID_CHAR_SRVR_CONFIG 0x2903 /* Server Characteristic Configuration */ 55 #define GATT_UUID_CHAR_PRESENT_FORMAT 0x2904 /* Characteristic Presentation Format*/ 56 #define GATT_UUID_CHAR_AGG_FORMAT 0x2905 /* Characteristic Aggregate Format*/ 57 #define GATT_UUID_CHAR_VALID_RANGE 0x2906 /* Characteristic Valid Range */ 58 #define GATT_UUID_EXT_RPT_REF_DESCR 0x2907 59 #define GATT_UUID_RPT_REF_DESCR 0x2908 60 61 #define GATT_UUID_CLIENT_SUPPORTED_FEATURES 0x2B29 /* Client supported features */ 62 #define GATT_UUID_GATT_DATABASE_HASH 0x2B2A /* GATT Robust caching */ 63 #define GATT_UUID_SERVER_SUPPORTED_FEATURES 0x2B3A /* Server supported features */ 64 65 /* GAP Profile Attributes 66 */ 67 #define GATT_UUID_GAP_DEVICE_NAME UUID_CHARACTERISTIC_DEVICE_NAME 68 #define GATT_UUID_GAP_ICON UUID_CHARACTERISTIC_APPEARANCE 69 #define GATT_UUID_GAP_PREF_CONN_PARAM UUID_CHARACTERISTIC_PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS 70 #define GATT_UUID_GAP_CENTRAL_ADDR_RESOL UUID_CHARACTERISTIC_CENTRAL_ADDRESS_RESOLUTION 71 #define GATT_UUID_GAP_RPA_ONLY UUID_CHARACTERISTIC_RPA_ONLY 72 73 /* Attribute Profile Attribute UUID */ 74 #define GATT_UUID_GATT_SRV_CHGD UUID_CHARACTERISTIC_SERVICE_CHANGED 75 /* Attribute Protocol Test */ 76 77 /* Link Loss Service */ 78 #define GATT_UUID_ALERT_LEVEL UUID_CHARACTERISTIC_ALERT_LEVEL /* Alert Level */ 79 #define GATT_UUID_TX_POWER_LEVEL UUID_CHARACTERISTIC_TX_POWER_LEVEL /* TX power level */ 80 81 /* Time Profile */ 82 /* Current Time Service */ 83 #define GATT_UUID_CURRENT_TIME UUID_CHARACTERISTIC_CURRENT_TIME /* Current Time */ 84 #define GATT_UUID_LOCAL_TIME_INFO UUID_CHARACTERISTIC_LOCAL_TIME_INFORMATION /* Local time info */ 85 #define GATT_UUID_REF_TIME_INFO UUID_CHARACTERISTIC_REFERENCE_TIME_INFORMATION /* reference time information */ 86 87 /* phone alert */ 88 #define GATT_UUID_ALERT_STATUS UUID_CHARACTERISTIC_ALERT_STATUS /* alert status */ 89 #define GATT_UUID_RINGER_CP UUID_CHARACTERISTIC_RINGER_CONTROL_POINT /* ringer control point */ 90 #define GATT_UUID_RINGER_SETTING UUID_CHARACTERISTIC_RINGER_SETTING /* ringer setting */ 91 92 /* Glucose Service */ 93 #define GATT_UUID_GM_MEASUREMENT UUID_CHARACTERISTIC_GLUCOSE_MEASUREMENT 94 #define GATT_UUID_GM_CONTEXT UUID_CHARACTERISTIC_GLUCOSE_MEASUREMENT_CONTEXT 95 #define GATT_UUID_GM_CONTROL_POINT UUID_CHARACTERISTIC_RECORD_ACCESS_CONTROL_POINT 96 #define GATT_UUID_GM_FEATURE UUID_CHARACTERISTIC_GLUCOSE_FEATURES 97 98 /* device infor characteristic */ 99 #define GATT_UUID_SYSTEM_ID UUID_CHARACTERISTIC_SYSTEM_ID 100 #define GATT_UUID_MODEL_NUMBER_STR UUID_CHARACTERISTIC_MODEL_NUMBER_STRING 101 #define GATT_UUID_SERIAL_NUMBER_STR UUID_CHARACTERISTIC_SERIAL_NUMBER_STRING 102 #define GATT_UUID_FW_VERSION_STR UUID_CHARACTERISTIC_FIRMWARE_REVISION_STRING 103 #define GATT_UUID_HW_VERSION_STR UUID_CHARACTERISTIC_HARDWARE_REVISION_STRING 104 #define GATT_UUID_SW_VERSION_STR UUID_CHARACTERISTIC_SOFTWARE_REVISION_STRING 105 #define GATT_UUID_MANU_NAME UUID_CHARACTERISTIC_MANUFACTURER_NAME_STRING 106 #define GATT_UUID_IEEE_DATA UUID_CHARACTERISTIC_IEEE_11073_20601_REGULATORY_CERTIFICATION_DATA_LIST 107 #define GATT_UUID_PNP_ID UUID_CHARACTERISTIC_PNP_ID 108 109 /* HID characteristics */ 110 #define GATT_UUID_HID_INFORMATION UUID_CHARACTERISTIC_HID_INFORMATION 111 #define GATT_UUID_HID_REPORT_MAP UUID_CHARACTERISTIC_HID_REPORT_MAP 112 #define GATT_UUID_HID_CONTROL_POINT UUID_CHARACTERISTIC_HID_CONTROL_POINT 113 #define GATT_UUID_HID_REPORT UUID_CHARACTERISTIC_HID_REPORT 114 #define GATT_UUID_HID_PROTO_MODE UUID_CHARACTERISTIC_HID_PROTOCOL_MODE 115 #define GATT_UUID_HID_BT_KB_INPUT UUID_CHARACTERISTIC_BOOT_KEYBOARD_INPUT_REPORT 116 #define GATT_UUID_HID_BT_KB_OUTPUT UUID_CHARACTERISTIC_BOOT_KEYBOARD_OUTPUT_REPORT 117 #define GATT_UUID_HID_BT_MOUSE_INPUT UUID_CHARACTERISTIC_BOOT_MOUSE_INPUT_REPORT 118 119 /* Battery Service char */ 120 #define GATT_UUID_BATTERY_LEVEL UUID_CHARACTERISTIC_BATTERY_LEVEL 121 122 #define GATT_UUID_SC_CONTROL_POINT UUID_CHARACTERISTIC_SC_CONTROL_POINT 123 #define GATT_UUID_SENSOR_LOCATION UUID_CHARACTERISTIC_SENSOR_LOCATION 124 125 /* RUNNERS SPEED AND CADENCE SERVICE */ 126 #define GATT_UUID_RSC_MEASUREMENT UUID_CHARACTERISTIC_RSC_MEASUREMENT 127 #define GATT_UUID_RSC_FEATURE UUID_CHARACTERISTIC_RSC_FEATURE 128 129 /* CYCLING SPEED AND CADENCE SERVICE */ 130 #define GATT_UUID_CSC_MEASUREMENT UUID_CHARACTERISTIC_CSC_MEASUREMENT 131 #define GATT_UUID_CSC_FEATURE UUID_CHARACTERISTIC_CSC_FEATURE 132 133 /* CYCLING POWER SERVICE (Temp for IOP) */ 134 #define GATT_UUID_CP_MEASUREMENT UUID_CHARACTERISTIC_CYCLING_POWER_MEASUREMENT 135 #define GATT_UUID_CP_VECTOR UUID_CHARACTERISTIC_CYCLING_POWER_VECTOR 136 #define GATT_UUID_CP_FEATURE UUID_CHARACTERISTIC_CYCLING_POWER_FEATURE 137 #define GATT_UUID_CP_CONTROL_POINT UUID_CHARACTERISTIC_CYCLING_POWER_CONTROL_POINT 138 139 /* LOCATION AND NAVIGATION SERVICE (Temp for IOP) */ 140 #define GATT_UUID_LN_LOC_AND_SPEED UUID_CHARACTERISTIC_LOCATION_AND_SPEED 141 #define GATT_UUID_LN_NAVIGATION UUID_CHARACTERISTIC_NAVIGATION 142 #define GATT_UUID_LN_POSITION_QUALITY UUID_CHARACTERISTIC_POSITION_QUALITY 143 #define GATT_UUID_LN_FEATURE UUID_CHARACTERISTIC_LN_FEATURE 144 #define GATT_UUID_LN_CONTROL_POINT UUID_CHARACTERISTIC_LN_CONTROL_POINT 145 146 147 /* HTTP Proxy Service */ 148 #define GATT_UUID_HPS_URI 0x7F11 149 #define GATT_UUID_HPS_HEADERS 0x7F12 150 #define GATT_UUID_HPS_STATUS_CODE 0x7F13 151 #define GATT_UUID_HPS_ENTITY_BODY 0x7F14 152 #define GATT_UUID_HPS_CONTROL_POINT 0x7F15 153 #define GATT_UUID_HPS_SERCURITY 0x7F16 154 155 156 /* Scan Parameter charatceristics */ 157 #define GATT_UUID_SCAN_INT_WINDOW UUID_CHARACTERISTIC_SCAN_INTERVAL_WINDOW 158 #define GATT_UUID_SCAN_REFRESH UUID_CHARACTERISTIC_SCAN_REFRESH 159 160 161 /** 162 * GATT appearance definitions 163 * 164 * @ingroup wicedbt_gatt 165 * 166 */ 167 enum gatt_appearance_e 168 { 169 APPEARANCE_GENERIC_PHONE = 64, 170 APPEARANCE_GENERIC_COMPUTER = 128, 171 APPEARANCE_GENERIC_WATCH = 192, 172 APPEARANCE_WATCH_SPORTS = 193, 173 APPEARANCE_GENERIC_CLOCK = 256, 174 APPEARANCE_GENERIC_DISPLAY = 320, 175 APPEARANCE_GENERIC_REMOTE_CONTROL = 384, 176 APPEARANCE_GENERIC_EYE_GLASSES = 448, 177 APPEARANCE_GENERIC_TAG = 512, 178 APPEARANCE_GENERIC_KEYRING = 576, 179 APPEARANCE_GENERIC_MEDIA_PLAYER = 640, 180 APPEARANCE_GENERIC_BARCODE_SCANNER = 704, 181 APPEARANCE_GENERIC_THERMOMETER = 768, 182 APPEARANCE_THERMOMETER_EAR = 769, 183 APPEARANCE_GENERIC_HEART_RATE_SENSOR = 832, 184 APPEARANCE_HEART_RATE_BELT = 833, 185 APPEARANCE_GENERIC_BLOOD_PRESSURE = 896, 186 APPEARANCE_BLOOD_PRESSURE_ARM = 897, 187 APPEARANCE_BLOOD_PRESSURE_WRIST = 898, 188 APPEARANCE_GENERIC_HID_DEVICE = 960, 189 APPEARANCE_HID_KEYBOARD = 961, 190 APPEARANCE_HID_MOUSE = 962, 191 APPEARANCE_HID_JOYSTICK = 963, 192 APPEARANCE_HID_GAMEPAD = 964, 193 APPEARANCE_HID_DIGITIZER_TABLET = 965, 194 APPEARANCE_HID_CARD_READER = 966, 195 APPEARANCE_HID_DIGITAL_PEN = 967, 196 APPEARANCE_HID_BARCODE_SCANNER = 968, 197 APPEARANCE_GENERIC_GLUCOSE_METER = 1024, 198 APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR = 1088, 199 APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE = 1089, 200 APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE = 1090, 201 APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP = 1091, 202 APPEARANCE_GENERIC_CYCLING = 1152, 203 APPEARANCE_CYCLING_COMPUTER = 1153, 204 APPEARANCE_CYCLING_SPEED_SENSOR = 1154, 205 APPEARANCE_CYCLING_CADENCE_SENSOR = 1155, 206 APPEARANCE_CYCLING_POWER_SENSOR = 1156, 207 APPEARANCE_CYCLING_SPEED_AND_CADENCE_SENSOR = 1157, 208 APPEARANCE_CONTROL_DEVICE_SWITCH = 1217, /// Switch Control Device subtype 209 APPEARANCE_CONTROL_DEVICE_MULTI_SWITCH = 1218, /// Multi - switch 210 APPEARANCE_CONTROL_DEVICE_BUTTON = 1219, /// Button 211 APPEARANCE_CONTROL_DEVICE_SLIDER = 1220, /// Slider 212 APPEARANCE_CONTROL_DEVICE_ROTARY = 1221, /// Rotary 213 APPEARANCE_CONTROL_DEVICE_TOUCH_PANEL = 1222, /// Touch - panel 214 APPEARANCE_NETWORK_DEVICE = 1280, /// Generic Network Device Generic category 215 APPEARANCE_ACCESS_POINT = 1281, /// Access Point Generic Network subtype 216 APPEARANCE_SENSOR_GENERIC = 1344, /// Generic Sensor Generic category 217 APPEARANCE_SENSOR_MOTION = 1345, /// Motion Sensor 218 APPEARANCE_SENSOR_AIR_QUALITY = 1346, /// Air Quality Sensor 219 APPEARANCE_SENSOR_TEMPERATURE = 1347, /// Temperature Sensor 220 APPEARANCE_SENSOR_HUMIDITY = 1348, /// Humidity Sensor 221 APPEARANCE_SENSOR_LEAK = 1349, /// Leak Sensor 222 APPEARANCE_SENSOR_SMOKE = 1350, /// Smoke Sensor 223 APPEARANCE_SENSOR_OCCUPANCY = 1351, /// Occupancy Sensor 224 APPEARANCE_SENSOR_CONTACT = 1352, /// Contact Sensor 225 APPEARANCE_SENSOR_CARBON_MONOXIDE = 1353, /// Carbon Monoxide Sensor 226 APPEARANCE_SENSOR_CARBON_DIOXIDE = 1354, /// Carbon Dioxide Sensor 227 APPEARANCE_SENSOR_AMBIENT_LIGHT = 1355, /// Ambient Light Sensor 228 APPEARANCE_SENSOR_ENERGY = 1356, /// Energy Sensor 229 APPEARANCE_SENSOR_COLOR_LIGHT = 1357, /// Color Light Sensor 230 APPEARANCE_SENSOR_RAIN = 1358, /// Rain Sensor 231 APPEARANCE_SENSOR_FIRE = 1359, /// Fire SensorF 232 APPEARANCE_SENSOR_WIND = 1360, /// Wind Sensor 233 APPEARANCE_SENSOR_PROXYMITY = 1361, /// Proximity Sensor 234 APPEARANCE_SENSOR_MULTI_SENSOR = 1362, /// Multi - Sensor 235 APPEARANCE_LIGHT_GENERIC_FIXTURE = 1408, /// Generic Light Fixtures Generic category 236 APPEARANCE_LIGHT_WALL = 1409, /// Wall Light 237 APPEARANCE_LIGHT_CEILING = 1410, /// Ceiling Light 238 APPEARANCE_LIGHT_FLOOR = 1411, /// Floor Light 239 APPEARANCE_LIGHT_CABINET = 1412, /// Cabinet Light 240 APPEARANCE_LIGHT_DESK = 1413, /// Desk Light 241 APPEARANCE_LIGHT_TROFFER = 1414, /// Troffer Light 242 APPEARANCE_LIGHT_PENDANT = 1415, /// Pendant Light 243 APPEARANCE_LIGHT_IN_GROUND = 1416, /// In - ground Light 244 APPEARANCE_LIGHT_FLOOD = 1417, /// Flood Light 245 APPEARANCE_LIGHT_UNDERWATER = 1418, /// Underwater Light 246 APPEARANCE_LIGHT_BOLLAR = 1419, /// Bollard with Light 247 APPEARANCE_LIGHT_PATHWAY = 1420, /// Pathway Light 248 APPEARANCE_LIGHT_GARDEN = 1421, /// Garden Light 249 APPEARANCE_LIGHT_POLE = 1422, /// Pole - top Light 250 APPEARANCE_LIGHT_SPOTLIGHT = 1423, /// Spotlight 251 APPEARANCE_LIGHT_LINEAR = 1424, /// Linear Light 252 APPEARANCE_LIGHT_STREET = 1425, /// Street Light 253 APPEARANCE_LIGHT_SHELVE = 1426, /// Shelves Light 254 APPEARANCE_LIGHT_HIGH_BAY_LOW_BAY = 1427, /// High - bay / Low - bay Light 255 APPEARANCE_LIGHT_EMERGENCY_EXIT = 1428, /// Emergency Exit Light 256 APPEARANCE_LOCATION_AND_NAVIGATION_POD = 5188, 257 }; 258 259 #define IS_CHAR_DECLARATION_UUID(type) ((type.len == 2) && (type.uu.uuid16 == GATT_UUID_CHAR_DECLARE)) 260 #define IS_CHAR_CLIENT_CONFIG_UUID(type) ((type.len == 2) && (type.uu.uuid16 == GATT_UUID_CHAR_CLIENT_CONFIG)) 261 262 #endif 263