bsal_sig.h 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. /*
  2. * Copyright (c) 2006-2020, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2020-05-28 Supperthomas the first version
  9. */
  10. #ifndef __BSAL_SIG_H__
  11. #define __BSAL_SIG_H__
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. #include <stdint.h>
  16. #include <stdbool.h>
  17. //=====================uuid===================
  18. //=====================uuid=PROFILE==================
  19. /**
  20. * Assigned numbers from www.bluetooth.com/specifications/gatt/declarations
  21. */
  22. #define BSAL_GATT_UUID_PRIMARY_SERVICE 0x2800 // Primary Service
  23. #define BSAL_GATT_UUID_SECONDARY_SERVICE 0x2801 // Secondary Service
  24. #define BSAL_GATT_UUID_INCLUDE 0x2802 // Include
  25. #define BSAL_GATT_UUID_CHARACTERISTIC 0x2803 // Characteristic Declaration
  26. /**
  27. * Assigned numbers from www.bluetooth.com/specifications/gatt/services
  28. */
  29. #define BSAL_GATT_SERVICE_ALERT_NOTIFICATION 0x1811 // Alert Notification Service
  30. #define BSAL_GATT_SERVICE_AUTOMATION_IO 0x1815 // Automation IO
  31. #define BSAL_GATT_SERVICE_BATTERY_SERVICE 0x180F // Battery Service
  32. #define BSAL_GATT_SERVICE_BLOOD_PRESSURE 0x1810 // Blood Pressure
  33. #define BSAL_GATT_SERVICE_BODY_COMPOSITION 0x181B // Body Composition
  34. #define BSAL_GATT_SERVICE_BOND_MANAGEMENT 0x181E // Bond Management Service
  35. #define BSAL_GATT_SERVICE_CONTINUOUS_GLUCOSE_MONITORING 0x181F // Continuous Glucose Monitoring
  36. #define BSAL_GATT_SERVICE_CURRENT_TIME 0x1805 // Current Time Service
  37. #define BSAL_GATT_SERVICE_CYCLING_POWER 0x1818 // Cycling Power
  38. #define BSAL_GATT_SERVICE_CYCLING_SPEED_AND_CADENCE 0x1816 // Cycling Speed and Cadence
  39. #define BSAL_GATT_SERVICE_DEVICE_INFORMATION 0x180A // Device Information
  40. #define BSAL_GATT_SERVICE_ENVIRONMENTAL_SENSING 0x181A // Environmental Sensing
  41. #define BSAL_GATT_SERVICE_FITNESS_MACHINE 0x1826 // Fitness Machine
  42. #define BSAL_GATT_SERVICE_GENERIC_ACCESS 0x1800 // Generic Access
  43. #define BSAL_GATT_SERVICE_GENERIC_ATTRIBUTE 0x1801 // Generic Attribute
  44. #define BSAL_GATT_SERVICE_GLUCOSE 0x1808 // Glucose
  45. #define BSAL_GATT_SERVICE_HEALTH_THERMOMETER 0x1809 // Health Thermometer
  46. #define BSAL_GATT_SERVICE_HEART_RATE 0x180D // Heart Rate
  47. #define BSAL_GATT_SERVICE_HTTP_PROXY 0x1823 // HTTP Proxy
  48. #define BSAL_GATT_SERVICE_HUMAN_INTERFACE_DEVICE 0x1812 // Human Interface Device
  49. #define BSAL_GATT_SERVICE_IMMEDIATE_ALERT 0x1802 // Immediate Alert
  50. #define BSAL_GATT_SERVICE_INDOOR_POSITIONING 0x1821 // Indoor Positioning
  51. #define BSAL_GATT_SERVICE_INSULIN_DELIVERY 0x183A // Insulin Delivery
  52. #define BSAL_GATT_SERVICE_INTERNET_PROTOCOL_SUPPORT 0x1820 // Internet Protocol Support Service
  53. #define BSAL_GATT_SERVICE_LINK_LOSS 0x1803 // Link Loss
  54. #define BSAL_GATT_SERVICE_LOCATION_AND_NAVIGATION 0x1819 // Location and Navigation
  55. #define BSAL_GATT_SERVICE_MESH_PROVISIONING 0x1827 // Mesh Provisioning Service
  56. #define BSAL_GATT_SERVICE_MESH_PROXY 0x1828 // Mesh Proxy Service
  57. #define BSAL_GATT_SERVICE_NEXT_DST_CHANGE 0x1807 // Next DST Change Service
  58. #define BSAL_GATT_SERVICE_OBJECT_TRANSFER 0x1825 // Object Transfer Service
  59. #define BSAL_GATT_SERVICE_PHONE_ALERT_STATUS 0x180E // Phone Alert Status Service
  60. #define BSAL_GATT_SERVICE_PULSE_OXIMETER 0x1822 // Pulse Oximeter Service
  61. #define BSAL_GATT_SERVICE_RECONNECTION_CONFIGURATION 0x1829 // Reconnection Configuration
  62. #define BSAL_GATT_SERVICE_REFERENCE_TIME_UPDATE 0x1806 // Reference Time Update Service
  63. #define BSAL_GATT_SERVICE_RUNNING_SPEED_AND_CADENCE 0x1814 // Running Speed and Cadence
  64. #define BSAL_GATT_SERVICE_SCAN_PARAMETERS 0x1813 // Scan Parameters
  65. #define BSAL_GATT_SERVICE_TRANSPORT_DISCOVERY 0x1824 // Transport Discovery
  66. #define BSAL_GATT_SERVICE_TX_POWER 0x1804 // Tx Power
  67. #define BSAL_GATT_SERVICE_USER_DATA 0x181C // User Data
  68. #define BSAL_GATT_SERVICE_WEIGHT_SCALE 0x181D // Weight Scale
  69. /**
  70. * Assigned numbers from www.bluetooth.com/specifications/gatt/characteristics
  71. */
  72. #define BSAL_UUID_CHAR_AEROBIC_HEART_RATE_LOWER_LIMIT 0x2A7E // Aerobic Heart Rate Lower Limit
  73. #define BSAL_UUID_CHAR_AEROBIC_HEART_RATE_UPPER_LIMIT 0x2A84 // Aerobic Heart Rate Upper Limit
  74. #define BSAL_UUID_CHAR_AEROBIC_THRESHOLD 0x2A7F // Aerobic Threshold
  75. #define BSAL_UUID_CHAR_AGE 0x2A80 // Age
  76. #define BSAL_UUID_CHAR_AGGREGATE 0x2A5A // Aggregate
  77. #define BSAL_UUID_CHAR_ALERT_CATEGORY_ID 0x2A43 // Alert Category ID
  78. #define BSAL_UUID_CHAR_ALERT_CATEGORY_ID_BIT_MASK 0x2A42 // Alert Category ID Bit Mask
  79. #define BSAL_UUID_CHAR_ALERT_LEVEL 0x2A06 // Alert Level
  80. #define BSAL_UUID_CHAR_ALERT_NOTIFICATION_CONTROL_POINT 0x2A44 // Alert Notification Control Point
  81. #define BSAL_UUID_CHAR_ALERT_STATUS 0x2A3F // Alert Status
  82. #define BSAL_UUID_CHAR_ALTITUDE 0x2AB3 // Altitude
  83. #define BSAL_UUID_CHAR_ANAEROBIC_HEART_RATE_LOWER_LIMIT 0x2A81 // Anaerobic Heart Rate Lower Limit
  84. #define BSAL_UUID_CHAR_ANAEROBIC_HEART_RATE_UPPER_LIMIT 0x2A82 // Anaerobic Heart Rate Upper Limit
  85. #define BSAL_UUID_CHAR_ANAEROBIC_THRESHOLD 0x2A83 // Anaerobic Threshold
  86. #define BSAL_UUID_CHAR_ANALOG 0x2A58 // Analog
  87. #define BSAL_UUID_CHAR_ANALOG_OUTPUT 0x2A59 // Analog Output
  88. #define BSAL_UUID_CHAR_APPARENT_WIND_DIRECTION 0x2A73 // Apparent Wind Direction
  89. #define BSAL_UUID_CHAR_APPARENT_WIND_SPEED 0x2A72 // Apparent Wind Speed
  90. #define BSAL_UUID_CHAR_BAROMETRIC_PRESSURE_TREND 0x2AA3 // Barometric Pressure Trend
  91. #define BSAL_UUID_CHAR_BATTERY_LEVEL 0x2A19 // Battery Level
  92. #define BSAL_UUID_CHAR_BATTERY_LEVEL_STATE 0x2A1B // Battery Level State
  93. #define BSAL_UUID_CHAR_BATTERY_POWER_STATE 0x2A1A // Battery Power State
  94. #define BSAL_UUID_CHAR_BLOOD_PRESSURE_FEATURE 0x2A49 // Blood Pressure Feature
  95. #define BSAL_UUID_CHAR_BLOOD_PRESSURE_MEASUREMENT 0x2A35 // Blood Pressure Measurement
  96. #define BSAL_UUID_CHAR_BODY_COMPOSITION_FEATURE 0x2A9B // Body Composition Feature
  97. #define BSAL_UUID_CHAR_BODY_COMPOSITION_MEASUREMENT 0x2A9C // Body Composition Measurement
  98. #define BSAL_UUID_CHAR_BODY_SENSOR_LOCATION 0x2A38 // Body Sensor Location
  99. #define BSAL_UUID_CHAR_BOND_MANAGEMENT_CONTROL_POINT 0x2AA4 // Bond Management Control Point
  100. #define BSAL_UUID_CHAR_BOND_MANAGEMENT_FEATURE 0x2AA5 // Bond Management Features
  101. #define BSAL_UUID_CHAR_BOOT_KEYBOARD_INPUT_REPORT 0x2A22 // Boot Keyboard Input Report
  102. #define BSAL_UUID_CHAR_BOOT_KEYBOARD_OUTPUT_REPORT 0x2A32 // Boot Keyboard Output Report
  103. #define BSAL_UUID_CHAR_BOOT_MOUSE_INPUT_REPORT 0x2A33 // Boot Mouse Input Report
  104. #define BSAL_UUID_CHAR_CGM_FEATURE 0x2AA8 // CGM Feature
  105. #define BSAL_UUID_CHAR_CGM_MEASUREMENT 0x2AA7 // CGM Measurement
  106. #define BSAL_UUID_CHAR_CGM_SESSION_RUN_TIME 0x2AAB // CGM Session Run Time
  107. #define BSAL_UUID_CHAR_CGM_SESSION_START_TIME 0x2AAA // CGM Session Start Time
  108. #define BSAL_UUID_CHAR_CGM_SPECIFIC_OPS_CONTROL_POINT 0x2AAC // CGM Specific Ops Control Point
  109. #define BSAL_UUID_CHAR_CGM_STATUS 0x2AA9 // CGM Status
  110. #define BSAL_UUID_CHAR_CROSS_TRAINER_DATA 0x2ACE // Cross Trainer Data
  111. #define BSAL_UUID_CHAR_CSC_FEATURE 0x2A5C // CSC Feature
  112. #define BSAL_UUID_CHAR_CSC_MEASUREMENT 0x2A5B // CSC Measurement
  113. #define BSAL_UUID_CHAR_CURRENT_TIME 0x2A2B // Current Time
  114. #define BSAL_UUID_CHAR_CYCLING_POWER_CONTROL_POINT 0x2A66 // Cycling Power Control Point
  115. #define BSAL_UUID_CHAR_CYCLING_POWER_FEATURE 0x2A65 // Cycling Power Feature
  116. #define BSAL_UUID_CHAR_CYCLING_POWER_MEASUREMENT 0x2A63 // Cycling Power Measurement
  117. #define BSAL_UUID_CHAR_CYCLING_POWER_VECTOR 0x2A64 // Cycling Power Vector
  118. #define BSAL_UUID_CHAR_DATABASE_CHANGE_INCREMENT 0x2A99 // Database Change Increment
  119. #define BSAL_UUID_CHAR_DATE_OF_BIRTH 0x2A85 // Date of Birth
  120. #define BSAL_UUID_CHAR_DATE_OF_THRESHOLD_ASSESSMENT 0x2A86 // Date of Threshold Assessment
  121. #define BSAL_UUID_CHAR_DATE_TIME 0x2A08 // Date Time
  122. #define BSAL_UUID_CHAR_DATE_UTC 0x2AED // Date UTC
  123. #define BSAL_UUID_CHAR_DAY_DATE_TIME 0x2A0A // Day Date Time
  124. #define BSAL_UUID_CHAR_DAY_OF_WEEK 0x2A09 // Day of Week
  125. #define BSAL_UUID_CHAR_DESCRIPTOR_VALUE_CHANGED 0x2A7D // Descriptor Value Changed
  126. #define BSAL_UUID_CHAR_DEW_POINT 0x2A7B // Dew Point
  127. #define BSAL_UUID_CHAR_DIGITAL 0x2A56 // Digital
  128. #define BSAL_UUID_CHAR_DIGITAL_OUTPUT 0x2A57 // Digital Output
  129. #define BSAL_UUID_CHAR_DST_OFFSET 0x2A0D // DST Offset
  130. #define BSAL_UUID_CHAR_ELEVATION 0x2A6C // Elevation
  131. #define BSAL_UUID_CHAR_EMAIL_ADDRESS 0x2A87 // Email Address
  132. #define BSAL_UUID_CHAR_EXACT_TIME_100 0x2A0B // Exact Time 100
  133. #define BSAL_UUID_CHAR_EXACT_TIME_256 0x2A0C // Exact Time 256
  134. #define BSAL_UUID_CHAR_FAT_BURN_HEART_RATE_LOWER_LIMIT 0x2A88 // Fat Burn Heart Rate Lower Limit
  135. #define BSAL_UUID_CHAR_FAT_BURN_HEART_RATE_UPPER_LIMIT 0x2A89 // Fat Burn Heart Rate Upper Limit
  136. #define BSAL_UUID_CHAR_FIRMWARE_REVISION_STRING 0x2A26 // Firmware Revision String
  137. #define BSAL_UUID_CHAR_FIRST_NAME 0x2A8A // First Name
  138. #define BSAL_UUID_CHAR_FITNESS_MACHINE_CONTROL_POINT 0x2AD9 // Fitness Machine Control Point
  139. #define BSAL_UUID_CHAR_FITNESS_MACHINE_FEATURE 0x2ACC // Fitness Machine Feature
  140. #define BSAL_UUID_CHAR_FITNESS_MACHINE_STATUS 0x2ADA // Fitness Machine Status
  141. #define BSAL_UUID_CHAR_FIVE_ZONE_HEART_RATE_LIMITS 0x2A8B // Five Zone Heart Rate Limits
  142. #define BSAL_UUID_CHAR_FLOOR_NUMBER 0x2AB2 // Floor Number
  143. #define BSAL_UUID_CHAR_GAP_APPEARANCE 0x2A01 // Appearance
  144. #define BSAL_UUID_CHAR_GAP_CENTRAL_ADDRESS_RESOLUTION 0x2AA6 // Central Address Resolution
  145. #define BSAL_UUID_CHAR_GAP_DEVICE_NAME 0x2A00 // Device Name
  146. #define BSAL_UUID_CHAR_GAP_PERIPHERAL_PREFERRED_CONNECTION_PARAMETERS 0x2A04 // Peripheral Preferred Connection Parameters
  147. #define BSAL_UUID_CHAR_GAP_PERIPHERAL_PRIVACY_FLAG 0x2A02 // Peripheral Privacy Flag
  148. #define BSAL_UUID_CHAR_GAP_RECONNECTION_ADDRESS 0x2A03 // Reconnection Address
  149. #define BSAL_UUID_CHAR_GATT_SERVICE_CHANGED 0x2A05 // Service Changed
  150. #define BSAL_UUID_CHAR_GENDER 0x2A8C // Gender
  151. #define BSAL_UUID_CHAR_GLUCOSE_FEATURE 0x2A51 // Glucose Feature
  152. #define BSAL_UUID_CHAR_GLUCOSE_MEASUREMENT 0x2A18 // Glucose Measurement
  153. #define BSAL_UUID_CHAR_GLUCOSE_MEASUREMENT_CONTEXT 0x2A34 // Glucose Measurement Context
  154. #define BSAL_UUID_CHAR_GUST_FACTOR 0x2A74 // Gust Factor
  155. #define BSAL_UUID_CHAR_HARDWARE_REVISION_STRING 0x2A27 // Hardware Revision String
  156. #define BSAL_UUID_CHAR_HEART_RATE_CONTROL_POINT 0x2A39 // Heart Rate Control Point
  157. #define BSAL_UUID_CHAR_HEART_RATE_MAX 0x2A8D // Heart Rate Max
  158. #define BSAL_UUID_CHAR_HEART_RATE_MEASUREMENT 0x2A37 // Heart Rate Measurement
  159. #define BSAL_UUID_CHAR_HEAT_INDEX 0x2A7A // Heat Index
  160. #define BSAL_UUID_CHAR_HEIGHT 0x2A8E // Height
  161. #define BSAL_UUID_CHAR_HID_CONTROL_POINT 0x2A4C // HID Control Point
  162. #define BSAL_UUID_CHAR_HID_INFORMATION 0x2A4A // HID Information
  163. #define BSAL_UUID_CHAR_HIP_CIRCUMFERENCE 0x2A8F // Hip Circumference
  164. #define BSAL_UUID_CHAR_HTTP_CONTROL_POINT 0x2ABA // HTTP Control Point
  165. #define BSAL_UUID_CHAR_HTTP_ENTITY_BODY 0x2AB9 // HTTP Entity Body
  166. #define BSAL_UUID_CHAR_HTTP_HEADERS 0x2AB7 // HTTP Headers
  167. #define BSAL_UUID_CHAR_HTTP_STATUS_CODE 0x2AB8 // HTTP Status Code
  168. #define BSAL_UUID_CHAR_HTTPS_SECURITY 0x2ABB // HTTPS Security
  169. #define BSAL_UUID_CHAR_HUMIDITY 0x2A6F // Humidity
  170. #define BSAL_UUID_CHAR_IDD_ANNUNCIATION_STATUS 0x2B22 // IDD Annunciation Status
  171. #define BSAL_UUID_CHAR_IDD_COMMAND_CONTROL_POINT 0x2B25 // IDD Command Control Point
  172. #define BSAL_UUID_CHAR_IDD_COMMAND_DATA 0x2B26 // IDD Command Data
  173. #define BSAL_UUID_CHAR_IDD_FEATURES 0x2B23 // IDD Features
  174. #define BSAL_UUID_CHAR_IDD_HISTORY_DATA 0x2B28 // IDD History Data
  175. #define BSAL_UUID_CHAR_IDD_RECORD_ACCESS_CONTROL_POINT 0x2B27 // IDD Record Access Control Point
  176. #define BSAL_UUID_CHAR_IDD_STATUS 0x2B21 // IDD Status
  177. #define BSAL_UUID_CHAR_IDD_STATUS_CHANGED 0x2B20 // IDD Status Changed
  178. #define BSAL_UUID_CHAR_IDD_STATUS_READER_CONTROL_POINT 0x2B24 // IDD Status Reader Control Point
  179. #define BSAL_UUID_CHAR_IEEE_11073_20601_REGULATORY_CERTIFICATION_DATA_LIST 0x2A2A // IEEE 11073-20601 Regulatory Certification Data List
  180. #define BSAL_UUID_CHAR_INDOOR_BIKE_DATA 0x2AD2 // Indoor Bike Data
  181. #define BSAL_UUID_CHAR_INDOOR_POSITIONING_CONFIGURATION 0x2AAD // Indoor Positioning Configuration
  182. #define BSAL_UUID_CHAR_INTERMEDIATE_CUFF_PRESSURE 0x2A36 // Intermediate Cuff Pressure
  183. #define BSAL_UUID_CHAR_INTERMEDIATE_TEMPERATURE 0x2A1E // Intermediate Temperature
  184. #define BSAL_UUID_CHAR_IRRADIANCE 0x2A77 // Irradiance
  185. #define BSAL_UUID_CHAR_LANGUAGE 0x2AA2 // Language
  186. #define BSAL_UUID_CHAR_LAST_NAME 0x2A90 // Last Name
  187. #define BSAL_UUID_CHAR_LATITUDE 0x2AAE // Latitude
  188. #define BSAL_UUID_CHAR_LN_CONTROL_POINT 0x2A6B // LN Control Point
  189. #define BSAL_UUID_CHAR_LN_FEATURE 0x2A6A // LN Feature
  190. #define BSAL_UUID_CHAR_LOCAL_EAST_COORDINATE 0x2AB1 // Local East Coordinate
  191. #define BSAL_UUID_CHAR_LOCAL_NORTH_COORDINATE 0x2AB0 // Local North Coordinate
  192. #define BSAL_UUID_CHAR_LOCAL_TIME_INFORMATION 0x2A0F // Local Time Information
  193. #define BSAL_UUID_CHAR_LOCATION_AND_SPEED 0x2A67 // Location and Speed Characteristic
  194. #define BSAL_UUID_CHAR_LOCATION_NAME 0x2AB5 // Location Name
  195. #define BSAL_UUID_CHAR_LONGITUDE 0x2AAF // Longitude
  196. #define BSAL_UUID_CHAR_MAGNETIC_DECLINATION 0x2A2C // Magnetic Declination
  197. #define BSAL_UUID_CHAR_MAGNETIC_FLUX_DENSITY_2D 0x2AA0 // Magnetic Flux Density - 2D
  198. #define BSAL_UUID_CHAR_MAGNETIC_FLUX_DENSITY_3D 0x2AA1 // Magnetic Flux Density - 3D
  199. #define BSAL_UUID_CHAR_MANUFACTURER_NAME_STRING 0x2A29 // Manufacturer Name String
  200. #define BSAL_UUID_CHAR_MAXIMUM_RECOMMENDED_HEART_RATE 0x2A91 // Maximum Recommended Heart Rate
  201. #define BSAL_UUID_CHAR_MEASUREMENT_INTERVAL 0x2A21 // Measurement Interval
  202. #define BSAL_UUID_CHAR_MODEL_NUMBER_STRING 0x2A24 // Model Number String
  203. #define BSAL_UUID_CHAR_NAVIGATION 0x2A68 // Navigation
  204. #define BSAL_UUID_CHAR_NETWORK_AVAILABILITY 0x2A3E // Network Availability
  205. #define BSAL_UUID_CHAR_NEW_ALERT 0x2A46 // New Alert
  206. #define BSAL_UUID_CHAR_OBJECT_ACTION_CONTROL_POINT 0x2AC5 // Object Action Control Point
  207. #define BSAL_UUID_CHAR_OBJECT_CHANGED 0x2AC8 // Object Changed
  208. #define BSAL_UUID_CHAR_OBJECT_FIRST_CREATED 0x2AC1 // Object First-Created
  209. #define BSAL_UUID_CHAR_OBJECT_ID 0x2AC3 // Object ID
  210. #define BSAL_UUID_CHAR_OBJECT_LAST_MODIFIED 0x2AC2 // Object Last-Modified
  211. #define BSAL_UUID_CHAR_OBJECT_LIST_CONTROL_POINT 0x2AC6 // Object List Control Point
  212. #define BSAL_UUID_CHAR_OBJECT_LIST_FILTER 0x2AC7 // Object List Filter
  213. #define BSAL_UUID_CHAR_OBJECT_NAME 0x2ABE // Object Name
  214. #define BSAL_UUID_CHAR_OBJECT_PROPERTIES 0x2AC4 // Object Properties
  215. #define BSAL_UUID_CHAR_OBJECT_SIZE 0x2AC0 // Object Size
  216. #define BSAL_UUID_CHAR_OBJECT_TYPE 0x2ABF // Object Type
  217. #define BSAL_UUID_CHAR_OTS_FEATURE 0x2ABD // OTS Feature
  218. #define BSAL_UUID_CHAR_PLX_CONTINUOUS_MEASUREMENT 0x2A5F // PLX Continuous Measurement Characteristic
  219. #define BSAL_UUID_CHAR_PLX_FEATURES 0x2A60 // PLX Features
  220. #define BSAL_UUID_CHAR_PLX_SPOT_CHECK_MEASUREMENT 0x2A5E // PLX Spot-Check Measurement
  221. #define BSAL_UUID_CHAR_PNP_ID 0x2A50 // PnP ID
  222. #define BSAL_UUID_CHAR_POLLEN_CONCENTRATION 0x2A75 // Pollen Concentration
  223. #define BSAL_UUID_CHAR_POSITION_2D 0x2A2F // Position 2D
  224. #define BSAL_UUID_CHAR_POSITION_3D 0x2A30 // Position 3D
  225. #define BSAL_UUID_CHAR_POSITION_QUALITY 0x2A69 // Position Quality
  226. #define BSAL_UUID_CHAR_PRESSURE 0x2A6D // Pressure
  227. #define BSAL_UUID_CHAR_PROTOCOL_MODE 0x2A4E // Protocol Mode
  228. #define BSAL_UUID_CHAR_PULSE_OXIMETRY_CONTROL_POINT 0x2A62 // Pulse Oximetry Control Point
  229. #define BSAL_UUID_CHAR_RAINFALL 0x2A78 // Rainfall
  230. #define BSAL_UUID_CHAR_RC_FEATURE 0x2B1D // RC Feature
  231. #define BSAL_UUID_CHAR_RC_SETTINGS 0x2B1E // RC Settings
  232. #define BSAL_UUID_CHAR_RECONNECTION_CONFIGURATION_CONTROL_POINT 0x2B1F // Reconnection Configuration Control Point
  233. #define BSAL_UUID_CHAR_RECORD_ACCESS_CONTROL_POINT 0x2A52 // Record Access Control Point
  234. #define BSAL_UUID_CHAR_REFERENCE_TIME_INFORMATION 0x2A14 // Reference Time Information
  235. #define BSAL_UUID_CHAR_REMOVABLE 0x2A3A // Removable
  236. #define BSAL_UUID_CHAR_REPORT 0x2A4D // Report
  237. #define BSAL_UUID_CHAR_REPORT_MAP 0x2A4B // Report Map
  238. #define BSAL_UUID_CHAR_RESOLVABLE_PRIVATE_ADDRESS_ONLY 0x2AC9 // Resolvable Private Address Only
  239. #define BSAL_UUID_CHAR_RESTING_HEART_RATE 0x2A92 // Resting Heart Rate
  240. #define BSAL_UUID_CHAR_RINGER_CONTROL_POINT 0x2A40 // Ringer Control point
  241. #define BSAL_UUID_CHAR_RINGER_SETTING 0x2A41 // Ringer Setting
  242. #define BSAL_UUID_CHAR_ROWER_DATA 0x2AD1 // Rower Data
  243. #define BSAL_UUID_CHAR_RSC_FEATURE 0x2A54 // RSC Feature
  244. #define BSAL_UUID_CHAR_RSC_MEASUREMENT 0x2A53 // RSC Measurement
  245. #define BSAL_UUID_CHAR_SC_CONTROL_POINT 0x2A55 // SC Control Point
  246. #define BSAL_UUID_CHAR_SCAN_INTERVAL_WINDOW 0x2A4F // Scan Interval Window
  247. #define BSAL_UUID_CHAR_SCAN_REFRESH 0x2A31 // Scan Refresh
  248. #define BSAL_UUID_CHAR_SCIENTIFIC_TEMPERATURE_CELSIUS 0x2A3C // Scientific Temperature Celsius
  249. #define BSAL_UUID_CHAR_SECONDARY_TIME_ZONE 0x2A10 // Secondary Time Zone
  250. #define BSAL_UUID_CHAR_SENSOR_LOCATION 0x2A5D // Sensor Location
  251. #define BSAL_UUID_CHAR_SERIAL_NUMBER_STRING 0x2A25 // Serial Number String
  252. #define BSAL_UUID_CHAR_SERVICE_REQUIRED 0x2A3B // Service Required
  253. #define BSAL_UUID_CHAR_SOFTWARE_REVISION_STRING 0x2A28 // Software Revision String
  254. #define BSAL_UUID_CHAR_SPORT_TYPE_FOR_AEROBIC_AND_ANAEROBIC_THRESHOLDS 0x2A93 // Sport Type for Aerobic and Anaerobic Thresholds
  255. #define BSAL_UUID_CHAR_STAIR_CLIMBER_DATA 0x2AD0 // Stair Climber Data
  256. #define BSAL_UUID_CHAR_STEP_CLIMBER_DATA 0x2ACF // Step Climber Data
  257. #define BSAL_UUID_CHAR_STRING 0x2A3D // String
  258. #define BSAL_UUID_CHAR_SUPPORTED_HEART_RATE_RANGE 0x2AD7 // Supported Heart Rate Range
  259. #define BSAL_UUID_CHAR_SUPPORTED_INCLINATION_RANGE 0x2AD5 // Supported Inclination Range
  260. #define BSAL_UUID_CHAR_SUPPORTED_NEW_ALERT_CATEGORY 0x2A47 // Supported New Alert Category
  261. #define BSAL_UUID_CHAR_SUPPORTED_POWER_RANGE 0x2AD8 // Supported Power Range
  262. #define BSAL_UUID_CHAR_SUPPORTED_RESISTANCE_LEVEL_RANGE 0x2AD6 // Supported Resistance Level Range
  263. #define BSAL_UUID_CHAR_SUPPORTED_SPEED_RANGE 0x2AD4 // Supported Speed Range
  264. #define BSAL_UUID_CHAR_SUPPORTED_UNREAD_ALERT_CATEGORY 0x2A48 // Supported Unread Alert Category
  265. #define BSAL_UUID_CHAR_SYSTEM_ID 0x2A23 // System ID
  266. #define BSAL_UUID_CHAR_TDS_CONTROL_POINT 0x2ABC // TDS Control Point
  267. #define BSAL_UUID_CHAR_TEMPERATURE 0x2A6E // Temperature
  268. #define BSAL_UUID_CHAR_TEMPERATURE_CELSIUS 0x2A1F // Temperature Celsius
  269. #define BSAL_UUID_CHAR_TEMPERATURE_FAHRENHEIT 0x2A20 // Temperature Fahrenheit
  270. #define BSAL_UUID_CHAR_TEMPERATURE_MEASUREMENT 0x2A1C // Temperature Measurement
  271. #define BSAL_UUID_CHAR_TEMPERATURE_TYPE 0x2A1D // Temperature Type
  272. #define BSAL_UUID_CHAR_THREE_ZONE_HEART_RATE_LIMITS 0x2A94 // Three Zone Heart Rate Limits
  273. #define BSAL_UUID_CHAR_TIME_ACCURACY 0x2A12 // Time Accuracy
  274. #define BSAL_UUID_CHAR_TIME_BROADCAST 0x2A15 // Time Broadcast
  275. #define BSAL_UUID_CHAR_TIME_SOURCE 0x2A13 // Time Source
  276. #define BSAL_UUID_CHAR_TIME_UPDATE_CONTROL_POINT 0x2A16 // Time Update Control Point
  277. #define BSAL_UUID_CHAR_TIME_UPDATE_STATE 0x2A17 // Time Update State
  278. #define BSAL_UUID_CHAR_TIME_WITH_DST 0x2A11 // Time with DST
  279. #define BSAL_UUID_CHAR_TIME_ZONE 0x2A0E // Time Zone
  280. #define BSAL_UUID_CHAR_TRAINING_STATUS 0x2AD3 // Training Status
  281. #define BSAL_UUID_CHAR_TREADMILL_DATA 0x2ACD // Treadmill Data
  282. #define BSAL_UUID_CHAR_TRUE_WIND_DIRECTION 0x2A71 // True Wind Direction
  283. #define BSAL_UUID_CHAR_TRUE_WIND_SPEED 0x2A70 // True Wind Speed
  284. #define BSAL_UUID_CHAR_TWO_ZONE_HEART_RATE_LIMIT 0x2A95 // Two Zone Heart Rate Limit
  285. #define BSAL_UUID_CHAR_TX_POWER_LEVEL 0x2A07 // Tx Power Level
  286. #define BSAL_UUID_CHAR_UNCERTAINTY 0x2AB4 // Uncertainty
  287. #define BSAL_UUID_CHAR_UNREAD_ALERT_STATUS 0x2A45 // Unread Alert Status
  288. #define BSAL_UUID_CHAR_URI 0x2AB6 // URI
  289. #define BSAL_UUID_CHAR_USER_CONTROL_POINT 0x2A9F // User Control Point
  290. #define BSAL_UUID_CHAR_USER_INDEX 0x2A9A // User Index
  291. #define BSAL_UUID_CHAR_UV_INDEX 0x2A76 // UV Index
  292. #define BSAL_UUID_CHAR_VO2_MAX 0x2A96 // VO2 Max
  293. #define BSAL_UUID_CHAR_WAIST_CIRCUMFERENCE 0x2A97 // Waist Circumference
  294. #define BSAL_UUID_CHAR_WEIGHT 0x2A98 // Weight
  295. #define BSAL_UUID_CHAR_WEIGHT_MEASUREMENT 0x2A9D // Weight Measurement
  296. #define BSAL_UUID_CHAR_WEIGHT_SCALE_FEATURE 0x2A9E // Weight Scale Feature
  297. #define BSAL_UUID_CHAR_WIND_CHILL 0x2A79 // Wind Chill
  298. /**
  299. * Assigned numbers from www.bluetooth.com/specifications/gatt/descriptors
  300. */
  301. #define BSAL_UUID_DESCRIPTOR_ES_CONFIGURATION 0x290B // Environmental Sensing Configuration
  302. #define BSAL_UUID_DESCRIPTOR_ES_MEASUREMENT 0x290C // Environmental Sensing Measurement
  303. #define BSAL_UUID_DESCRIPTOR_ES_TRIGGER_SETTING 0x290D // Environmental Sensing Trigger Setting
  304. #define BSAL_UUID_DESCRIPTOR_EXTERNAL_REPORT_REFERENCE 0x2907 // External Report Reference
  305. #define BSAL_UUID_DESCRIPTOR_GATT_CHARACTERISTIC_AGGREGATE_FORMAT 0x2905 // Characteristic Aggregate Format
  306. #define BSAL_UUID_DESCRIPTOR_GATT_CHARACTERISTIC_EXTENDED_PROPERTIES 0x2900 // Characteristic Extended Properties
  307. #define BSAL_UUID_DESCRIPTOR_GATT_CHARACTERISTIC_PRESENTATION_FORMAT 0x2904 // Characteristic Presentation Format
  308. #define BSAL_UUID_DESCRIPTOR_GATT_CHARACTERISTIC_USER_DESCRIPTION 0x2901 // Characteristic User Description
  309. #define BSAL_UUID_DESCRIPTOR_GATT_CLIENT_CHARACTERISTIC_CONFIGURATION 0x2902 // Client Characteristic Configuration
  310. #define BSAL_UUID_DESCRIPTOR_GATT_SERVER_CHARACTERISTIC_CONFIGURATION 0x2903 // Server Characteristic Configuration
  311. #define BSAL_UUID_DESCRIPTOR_NUMBER_OF_DIGITALS 0x2909 // Number of Digitals
  312. #define BSAL_UUID_DESCRIPTOR_REPORT_REFERENCE 0x2908 // Report Reference
  313. #define BSAL_UUID_DESCRIPTOR_TIME_TRIGGER_SETTING 0x290E // Time Trigger Setting
  314. #define BSAL_UUID_DESCRIPTOR_VALID_RANGE 0x2906 // Valid Range
  315. #define BSAL_UUID_DESCRIPTOR_VALUE_TRIGGER_SETTING 0x290A // Value Trigger Setting
  316. //=============================UUID END============================================
  317. //=================================ATT===============================================
  318. // Attribute Property Flags
  319. #define BSAL_ATT_P_BROADCAST 0x01
  320. #define BSAL_ATT_P_READ 0x02
  321. #define BSAL_ATT_P_WRITE_WITHOUT_RESPONSE 0x04
  322. #define BSAL_ATT_P_WRITE 0x08
  323. #define BSAL_ATT_P_NOTIFY 0x10
  324. #define BSAL_ATT_P_INDICATE 0x20
  325. #define BSAL_ATT_P_AUTHENTICATED_SIGNED_WRITE 0x40
  326. #define BSAL_ATT_P_EXTENDED_PROPERTIES 0x80
  327. // Attribute NOTIFY FLAG
  328. #define BSAL_GATT_CCC_NONE 0x0000 /**< The Characteristic Value shall be neither indicated nor notified. */
  329. #define BSAL_GATT_CCC_NOTIFY 0x0001 /**< The Characteristic Value shall be notified. */
  330. #define BSAL_GATT_CCC_INDICATE 0x0002 /**< The Characteristic Value shall be indicated. */
  331. #define BSAL_GATT_CCC_NOTIFY_INDICATE 0x0003 /**< The Characteristic Value shall be both indicated and notified. */
  332. //==========================ADV==============================
  333. /** @defgroup ADV_PARAM_FILTER_POLICY adv filter policy
  334. * @{
  335. */
  336. typedef enum
  337. {
  338. BSAL_GAP_ADV_FILTER_ANY = 0,
  339. BSAL_GAP_ADV_FILTER_WHITE_LIST_SCAN,
  340. BSAL_GAP_ADV_FILTER_WHITE_LIST_CONN,
  341. BSAL_GAP_ADV_FILTER_WHITE_LIST_ALL,
  342. } T_BSAL_GAP_ADV_FILTER_POLICY;
  343. /**
  344. * @}
  345. */
  346. /** @defgroup BTCHANNEL_MAP BT ADVERTISING CHANNEL MAP
  347. * @{
  348. */
  349. #define BSAL_GAP_ADVCHAN_37 0x01 //!< Advertisement Channel 37
  350. #define BSAL_GAP_ADVCHAN_38 0x02 //!< Advertisement Channel 38
  351. #define BSAL_GAP_ADVCHAN_39 0x04 //!< Advertisement Channel 39
  352. #define BSAL_GAP_ADVCHAN_ALL (BSAL_GAP_ADVCHAN_37 | BSAL_GAP_ADVCHAN_38 | BSAL_GAP_ADVCHAN_39) //!< All Advertisement Channels Enabled
  353. /**
  354. * @}
  355. */
  356. //BSAL_GAP_TYPE_FLAGS BIT CSS
  357. #define BSAL_GAP_ADTYPE_FLAGS_LIMITED 0x01 //!< Discovery Mode: LE Limited Discoverable Mode
  358. #define BSAL_GAP_ADTYPE_FLAGS_GENERAL 0x02 //!< Discovery Mode: LE General Discoverable Mode
  359. #define BSAL_GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED 0x04 //!< Discovery Mode: BR/EDR Not Supported
  360. #define BSAL_GAP_ADTYPE_FLAGS_SIMULTANEOUS_LE_BREDR_CONTROLLER 0x08 //!< Discovery Mode: Simultaneous LE and BR/EDR Controller Supported
  361. #define BSAL_GAP_ADTYPE_FLAGS_SIMULTANEOUS_LE_BREDR_HOST 0x10 //!< Discovery Mode: Simultaneous LE and BR/EDR Host Supported
  362. // https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/
  363. //AD TYPE
  364. #define BSAL_GAP_TYPE_FLAGS 0x01 // Flags
  365. #define BSAL_GAP_TYPE_INCOMPLETE_LIST_OF_16_BIT_SERVICE_CLASS_UUIDS 0x02 // Incomplete List of 16-bit Service Class UUIDs
  366. #define BSAL_GAP_TYPE_COMPLETE_LIST_OF_16_BIT_SERVICE_CLASS_UUIDS 0x03 // Complete List of 16-bit Service Class UUIDs
  367. #define BSAL_GAP_TYPE_INCOMPLETE_LIST_OF_32_BIT_SERVICE_CLASS_UUIDS 0x04 // Incomplete List of 32-bit Service Class UUIDs
  368. #define BSAL_GAP_TYPE_COMPLETE_LIST_OF_32_BIT_SERVICE_CLASS_UUIDS 0x05 // Complete List of 32-bit Service Class UUIDs
  369. #define BSAL_GAP_TYPE_INCOMPLETE_LIST_OF_128_BIT_SERVICE_CLASS_UUIDS 0x06 // Incomplete List of 128-bit Service Class UUIDs
  370. #define BSAL_GAP_TYPE_COMPLETE_LIST_OF_128_BIT_SERVICE_CLASS_UUIDS 0x07 // Complete List of 128-bit Service Class UUIDs
  371. #define BSAL_GAP_TYPE_SHORTENED_LOCAL_NAME 0x08 // Shortened Local Name
  372. #define BSAL_GAP_TYPE_COMPLETE_LOCAL_NAME 0x09 // Complete Local Name
  373. #define BSAL_GAP_TYPE_TX_POWER_LEVEL 0x0A // Tx Power Level
  374. #define BSAL_GAP_TYPE_CLASS_OF_DEVICE 0x0D // Class of Device
  375. #define BSAL_GAP_TYPE_SIMPLE_PAIRING_HASH_C 0x0E // Simple Pairing Hash C
  376. #define BSAL_GAP_TYPE_SIMPLE_PAIRING_HASH_C_192 0x0E // Simple Pairing Hash C-192
  377. #define BSAL_GAP_TYPE_SIMPLE_PAIRING_RANDOMIZER_R 0x0F // Simple Pairing Randomizer R
  378. #define BSAL_GAP_TYPE_SIMPLE_PAIRING_RANDOMIZER_R_192 0x0F // Simple Pairing Randomizer R-192
  379. #define BSAL_GAP_TYPE_DEVICE_ID 0x10 // Device ID
  380. #define BSAL_GAP_TYPE_SECURITY_MANAGER_TK_VALUE 0x10 // Security Manager TK Value
  381. #define BSAL_GAP_TYPE_SECURITY_MANAGER_OUT_OF_BAND_FLAGS 0x11 // Security Manager Out of Band Flags
  382. #define BSAL_GAP_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE 0x12 // Slave Connection Interval Range
  383. #define BSAL_GAP_TYPE_LIST_OF_16_BIT_SERVICE_SOLICITATION_UUIDS 0x14 // List of 16-bit Service Solicitation UUIDs
  384. #define BSAL_GAP_TYPE_LIST_OF_128_BIT_SERVICE_SOLICITATION_UUIDS 0x15 // List of 128-bit Service Solicitation UUIDs
  385. #define BSAL_GAP_TYPE_SERVICE_DATA 0x16 // Service Data
  386. #define BSAL_GAP_TYPE_SERVICE_DATA_16_BIT_UUID 0x16 // Service Data - 16-bit UUID
  387. #define BSAL_GAP_TYPE_PUBLIC_TARGET_ADDRESS 0x17 // Public Target Address
  388. #define BSAL_GAP_TYPE_RANDOM_TARGET_ADDRESS 0x18 // Random Target Address
  389. #define BSAL_GAP_TYPE_APPEARANCE 0x19 // Appearance
  390. #define BSAL_GAP_TYPE_ADVERTISING_INTERVAL 0x1A // Advertising Interval
  391. #define BSAL_GAP_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS 0x1B // LE Bluetooth Device Address
  392. #define BSAL_GAP_TYPE_LE_ROLE 0x1C // LE Role
  393. #define BSAL_GAP_TYPE_SIMPLE_PAIRING_HASH_C_256 0x1D // Simple Pairing Hash C-256
  394. #define BSAL_GAP_TYPE_SIMPLE_PAIRING_RANDOMIZER_R_256 0x1E // Simple Pairing Randomizer R-256
  395. #define BSAL_GAP_TYPE_LIST_OF_32_BIT_SERVICE_SOLICITATION_UUIDS 0x1F // List of 32-bit Service Solicitation UUIDs
  396. #define BSAL_GAP_TYPE_SERVICE_DATA_32_BIT_UUID 0x20 // Service Data - 32-bit UUID
  397. #define BSAL_GAP_TYPE_SERVICE_DATA_128_BIT_UUID 0x21 // Service Data - 128-bit UUID
  398. #define BSAL_GAP_TYPE_LE_SECURE_CONNECTIONS_CONFIRMATION_VALUE 0x22 // LE Secure Connections Confirmation Value
  399. #define BSAL_GAP_TYPE_LE_SECURE_CONNECTIONS_RANDOM_VALUE 0x23 // LE Secure Connections Random Value
  400. #define BSAL_GAP_TYPE_URI 0x24 // URI
  401. #define BSAL_GAP_TYPE_INDOOR_POSITIONING 0x25 // Indoor Positioning
  402. #define BSAL_GAP_TYPE_TRANSPORT_DISCOVERY_DATA 0x26 // Transport Discovery Data
  403. #define BSAL_GAP_TYPE_LE_SUPPORTED_FEATURES 0x27 // LE Supported Features
  404. #define BSAL_GAP_TYPE_CHANNEL_MAP_UPDATE_INDICATION 0x28 // Channel Map Update Indication
  405. #define BSAL_GAP_TYPE_PB_ADV 0x29 // PB-ADV
  406. #define BSAL_GAP_TYPE_MESH_MESSAGE 0x2A // Mesh Message
  407. #define BSAL_GAP_TYPE_MESH_BEACON 0x2B // Mesh Beacon
  408. #define BSAL_GAP_TYPE_3D_INFORMATION_DATA 0x3D // 3D Information Data
  409. #define BSAL_GAP_TYPE_MANUFACTURER_SPECIFIC_DATA 0xFF // Manufacturer Specific Data
  410. //https://www.bluetooth.com/xml-viewer/?src=https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.gap.appearance.xml
  411. /* LE GAP APPERANCE VALUE*/
  412. #define BSAL_GAP_APPEARANCE_UNKNOWN 0
  413. #define BSAL_GAP_APPEARANCE_GENERIC_PHONE 64
  414. #define BSAL_GAP_APPEARANCE_GENERIC_COMPUTER 128
  415. #define BSAL_GAP_APPEARANCE_GENERIC_WATCH 192
  416. #define BSAL_GAP_APPEARANCE_WATCH_SPORTS_WATCH 193
  417. #define BSAL_GAP_APPEARANCE_GENERIC_CLOCK 256
  418. #define BSAL_GAP_APPEARANCE_GENERIC_DISPLAY 320
  419. #define BSAL_GAP_APPEARANCE_GENERIC_REMOTE_CONTROL 384
  420. #define BSAL_GAP_APPEARANCE_GENERIC_EYE_GLASSES 448
  421. #define BSAL_GAP_APPEARANCE_GENERIC_TAG 512
  422. #define BSAL_GAP_APPEARANCE_GENERIC_KEYRING 576
  423. #define BSAL_GAP_APPEARANCE_GENERIC_MEDIA_PLAYER 640
  424. #define BSAL_GAP_APPEARANCE_GENERIC_BARCODE_SCANNER 704
  425. #define BSAL_GAP_APPEARANCE_GENERIC_THERMOMETER 768
  426. #define BSAL_GAP_APPEARANCE_THERMOMETER_EAR 769
  427. #define BSAL_GAP_APPEARANCE_GENERIC_HEART_RATE_SENSOR 832
  428. #define BSAL_GAP_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT 833
  429. #define BSAL_GAP_APPEARANCE_GENERIC_BLOOD_PRESSURE 896
  430. #define BSAL_GAP_APPEARANCE_BLOOD_PRESSURE_ARM 897
  431. #define BSAL_GAP_APPEARANCE_BLOOD_PRESSURE_WRIST 898
  432. #define BSAL_GAP_APPEARANCE_HUMAN_INTERFACE_DEVICE 960
  433. #define BSAL_GAP_APPEARANCE_KEYBOARD 961
  434. #define BSAL_GAP_APPEARANCE_MOUSE 962
  435. #define BSAL_GAP_APPEARANCE_JOYSTICK 963
  436. #define BSAL_GAP_APPEARANCE_GAMEPAD 964
  437. #define BSAL_GAP_APPEARANCE_DIGITIZER_TABLET 965
  438. #define BSAL_GAP_APPEARANCE_CARD_READER 966
  439. #define BSAL_GAP_APPEARANCE_DIGITAL_PEN 967
  440. #define BSAL_GAP_APPEARANCE_BARCODE_SCANNER 968
  441. #define BSAL_GAP_APPEARANCE_GENERIC_GLUCOSE_METER 1024
  442. #define BSAL_GAP_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR 1088
  443. #define BSAL_GAP_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE 1089
  444. #define BSAL_GAP_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE 1090
  445. #define BSAL_GAP_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP 1091
  446. #define BSAL_GAP_APPEARANCE_GENERIC_CYCLING 1152
  447. #define BSAL_GAP_APPEARANCE_CYCLING_CYCLING_COMPUTER 1153
  448. #define BSAL_GAP_APPEARANCE_CYCLING_SPEED_SENSOR 1154
  449. #define BSAL_GAP_APPEARANCE_CYCLING_CADENCE_SENSOR 1155
  450. #define BSAL_GAP_APPEARANCE_CYCLING_POWER_SENSOR 1156
  451. #define BSAL_GAP_APPEARANCE_CYCLING_SPEED_AND_CADENCE_SENSOR 1157
  452. #define BSAL_GAP_APPEARANCE_GENERIC_PULSE_OXIMETER 3136
  453. #define BSAL_GAP_APPEARANCE_FINGERTIP 3137
  454. #define BSAL_GAP_APPEARANCE_WRIST_WORN 3138
  455. #define BSAL_GAP_APPEARANCE_GENERIC_WEIGHT_SCALE 3200
  456. #define BSAL_GAP_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACTIVITY 5184
  457. #define BSAL_GAP_APPEARANCE_LOCATION_DISPLAY_DEVICE 5185
  458. #define BSAL_GAP_APPEARANCE_LOCATION_AND_NAVIGATION_DISPLAY_DEVICE 5186
  459. #define BSAL_GAP_APPEARANCE_LOCATION_POD 5187
  460. #define BSAL_GAP_APPEARANCE_LOCATION_AND_NAVIGATION_POD 5188
  461. //AD_TYPE
  462. #define BSAL_GAP_ADTYPE_ADV_IND 0x00 //!< Connectable undirected advertisement
  463. #define BSAL_GAP_ADTYPE_ADV_DIRECT_IND 0x01 //!< Connectable high duty cycle directed advertisement #define BSAL_GAP_ADTYPE_ADV_SCAN_IND 0x02 //!< Scannable undirected advertisement
  464. #define BSAL_GAP_ADTYPE_ADV_NONCONN_IND 0x03 //!< Non-Connectable undirected advertisement
  465. #define BSAL_GAP_ADTYPE_SCAN_RSP 0x04 //!< Connectable low duty cycle directed advertisement
  466. //BD_ADDR_TYPE
  467. typedef enum
  468. {
  469. BSAL_GAP_REMOTE_ADDR_LE_PUBLIC = 0x00, /**< LE Public device address type. */
  470. BSAL_GAP_REMOTE_ADDR_LE_RANDOM = 0x01, /**< LE Random device address type. */
  471. BSAL_GAP_REMOTE_ADDR_LE_PUBLIC_IDENTITY = 0x02, /**< LE Public identity address type. */
  472. BSAL_GAP_REMOTE_ADDR_LE_RANDOM_IDENTITY = 0x03, /**< LE Random identity address type. */
  473. } BSAL_BD_ADDR_TYPE;
  474. //bond===
  475. /** @defgroup BSAL_GAP_AUTH_TYPE GAP Common Macros
  476. * @{
  477. */
  478. #define BSAL_GAP_AUTHEN_BIT_NO_BONDING 0 //!< No authentication required.
  479. #define BSAL_GAP_AUTHEN_BIT_BONDING_FLAG 0x0001 //!< Bonding is required
  480. #define BSAL_GAP_AUTHEN_BIT_MITM_FLAG 0x0004 //!< Mitm is preferred
  481. #define BSAL_GAP_AUTHEN_BIT_SC_FLAG 0x0008 //!< Secure connection is preferred
  482. #define BSAL_GAP_AUTHEN_BIT_KEYPRESS_FLAG 0x0010 //!< keypress
  483. /** @brief I/O Capabilities */
  484. typedef enum
  485. {
  486. BSAL_GAP_IO_CAP_DISPLAY_ONLY, //!< Only a Display present, no Keyboard or Yes/No Keys.
  487. BSAL_GAP_IO_CAP_DISPLAY_YES_NO, //!< Display and Yes/No Keys present.
  488. BSAL_GAP_IO_CAP_KEYBOARD_ONLY, //!< Only a Keyboard present, no Display.
  489. BSAL_GAP_IO_CAP_NO_INPUT_NO_OUTPUT, //!< No input/output capabilities.
  490. BSAL_GAP_IO_CAP_KEYBOARD_DISPLAY, //!< Keyboard and Display present.
  491. } BSAL_GAP_IO_CAP;
  492. #ifdef __cplusplus
  493. }
  494. #endif
  495. #endif