1#!/usr/bin/env python3 2# 3# Copyright (C) 2019 The Android Open Source Project 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); you may not 6# use this file except in compliance with the License. You may obtain a copy of 7# the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 13# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 14# License for the specific language governing permissions and limitations under 15# the License. 16 17""" 18GATT server dictionaries which will be setup in various tests. 19""" 20 21from acts.test_utils.bt.bt_constants import gatt_characteristic 22from acts.test_utils.bt.bt_constants import gatt_descriptor 23from acts.test_utils.bt.bt_constants import gatt_service_types 24from acts.test_utils.bt.bt_constants import gatt_char_types 25from acts.test_utils.bt.bt_constants import gatt_characteristic_value_format 26from acts.test_utils.bt.bt_constants import gatt_char_desc_uuids 27 28 29SINGLE_PRIMARY_SERVICE = { 30 'services': [{ 31 'uuid': '00001802-0000-1000-8000-00805f9b34fb', 32 'type': gatt_service_types['primary'], 33 }] 34} 35 36SINGLE_SECONDARY_SERVICE = { 37 'services': [{ 38 'uuid': '00001802-0000-1000-8000-00805f9b34fb', 39 'type': gatt_service_types['secondary'], 40 }] 41} 42 43PRIMARY_AND_SECONDARY_SERVICES = { 44 'services': [{ 45 'uuid': '00001802-0000-1000-8000-00805f9b34fb', 46 'type': gatt_service_types['primary'], 47 }, { 48 'uuid': '00001803-0000-1000-8000-00805f9b34fb', 49 'type': gatt_service_types['secondary'], 50 }] 51} 52 53DUPLICATE_SERVICES = { 54 'services': [{ 55 'uuid': '00001802-0000-1000-8000-00805f9b34fb', 56 'type': gatt_service_types['primary'], 57 }, { 58 'uuid': '00001802-0000-1000-8000-00805f9b34fb', 59 'type': gatt_service_types['primary'], 60 }] 61} 62 63### Begin SIG defined services ### 64 65# TODO: Reconcile all the proper security parameters of each service. 66# Some are correct, others are not. 67 68# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.alert_notification.xml 69ALERT_NOTIFICATION_SERVICE = { 70 'services': [{ 71 'uuid': '00001811-0000-1000-8000-00805f9b34fb', 72 'type': gatt_service_types['primary'], 73 'characteristics': [{ 74 'uuid': '00002a47-0000-1000-8000-00805f9b34fb', 75 'properties': gatt_characteristic['property_read'], 76 'permissions': gatt_characteristic['permission_read'], 77 'value_type': gatt_characteristic_value_format['string'], 78 'value': 'test', 79 }, { 80 'uuid': '00002a46-0000-1000-8000-00805f9b34fb', 81 'properties': gatt_characteristic['property_notify'], 82 'permissions': gatt_characteristic['permission_read'] | 83 gatt_characteristic['permission_write'], 84 'value_type': gatt_characteristic_value_format['string'], 85 'value': 'test', 86 'descriptors': [{ 87 'uuid': gatt_char_desc_uuids['client_char_cfg'] 88 }] 89 }, { 90 'uuid': '00002a48-0000-1000-8000-00805f9b34fb', 91 'properties': gatt_characteristic['property_read'], 92 'permissions': gatt_characteristic['permission_read'], 93 'value_type': gatt_characteristic_value_format['sint8'], 94 'value': 1, 95 }, { 96 'uuid': '00002a45-0000-1000-8000-00805f9b34fb', 97 'properties': gatt_characteristic['property_notify'], 98 'permissions': gatt_characteristic['permission_read'] | 99 gatt_characteristic['permission_write'], 100 'value_type': gatt_characteristic_value_format['string'], 101 'value': 'test', 102 'descriptors': [{ 103 'uuid': gatt_char_desc_uuids['client_char_cfg'] 104 }] 105 }, { 106 'uuid': '00002a44-0000-1000-8000-00805f9b34fb', 107 'properties': gatt_characteristic['property_write'], 108 'permissions': gatt_characteristic['permission_write'], 109 'value_type': gatt_characteristic_value_format['sint8'], 110 'value': 1, 111 }] 112 }] 113} 114 115# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.automation_io.xml 116AUTOMATION_IO_SERVICE = { 117 'services': [{ 118 'uuid': '00001815-0000-1000-8000-00805f9b34fb', 119 'type': gatt_service_types['primary'], 120 'characteristics': [{ 121 'uuid': '00002a56-0000-1000-8000-00805f9b34fb', 122 'properties': gatt_characteristic['property_read'], 123 'permissions': gatt_characteristic['permission_read'], 124 'value_type': gatt_characteristic_value_format['string'], 125 'value': 'test', 126 'descriptors': [{ 127 'uuid': gatt_char_desc_uuids['client_char_cfg'] 128 }, { 129 'uuid': '00002904-0000-1000-8000-00805f9b34fb', 130 'permissions': gatt_descriptor['permission_read'] | 131 gatt_descriptor['permission_write'], 132 }, { 133 'uuid': gatt_char_desc_uuids['char_user_desc'], 134 'permissions': gatt_descriptor['permission_read'] | 135 gatt_descriptor['permission_write'], 136 }, { 137 'uuid': gatt_char_desc_uuids['char_ext_props'] 138 }, { 139 'uuid': '0000290a-0000-1000-8000-00805f9b34fb', 140 'permissions': gatt_descriptor['permission_read'] | 141 gatt_descriptor['permission_write'], 142 }, { 143 'uuid': '0000290e-0000-1000-8000-00805f9b34fb', 144 'permissions': gatt_descriptor['permission_read'] | 145 gatt_descriptor['permission_write'], 146 }, { 147 'uuid': '00002909-0000-1000-8000-00805f9b34fb', 148 'permissions': gatt_descriptor['permission_read'], 149 }] 150 }, { 151 'uuid': '00002a58-0000-1000-8000-00805f9b34fb', 152 'properties': gatt_characteristic['property_notify'] | 153 gatt_characteristic['write_type_signed'] | 154 gatt_characteristic['property_read'] | 155 gatt_characteristic['property_write'], 156 'permissions': gatt_characteristic['permission_read'] | 157 gatt_characteristic['permission_write'], 158 'value_type': gatt_characteristic_value_format['string'], 159 'value': 'test', 160 'descriptors': [{ 161 'uuid': gatt_char_desc_uuids['client_char_cfg'] 162 }, { 163 'uuid': '00002904-0000-1000-8000-00805f9b34fb', 164 'permissions': gatt_descriptor['permission_read'] | 165 gatt_descriptor['permission_write'], 166 }, { 167 'uuid': gatt_char_desc_uuids['char_user_desc'], 168 'permissions': gatt_descriptor['permission_read'] | 169 gatt_descriptor['permission_write'], 170 }, { 171 'uuid': gatt_char_desc_uuids['char_ext_props'] 172 }, { 173 'uuid': '0000290a-0000-1000-8000-00805f9b34fb', 174 'permissions': gatt_descriptor['permission_read'] | 175 gatt_descriptor['permission_write'], 176 }, { 177 'uuid': '0000290e-0000-1000-8000-00805f9b34fb', 178 'permissions': gatt_descriptor['permission_read'] | 179 gatt_descriptor['permission_write'], 180 }, { 181 'uuid': '00002909-0000-1000-8000-00805f9b34fb', 182 'permissions': gatt_descriptor['permission_read'], 183 }, { 184 'uuid': '00002906-0000-1000-8000-00805f9b34fb', 185 'permissions': gatt_descriptor['permission_read'], 186 }] 187 }, { 188 'uuid': '00002a5a-0000-1000-8000-00805f9b34fb', 189 'properties': gatt_characteristic['property_read'], 190 'permissions': gatt_characteristic['permission_read'], 191 'value_type': gatt_characteristic_value_format['sint8'], 192 'value': 1, 193 'descriptors': [{ 194 'uuid': gatt_char_desc_uuids['client_char_cfg'] 195 }] 196 }] 197 }] 198} 199 200# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.battery_service.xml 201BATTERY_SERVICE = { 202 'services': [{ 203 'uuid': '0000180f-0000-1000-8000-00805f9b34fb', 204 'type': gatt_service_types['primary'], 205 'characteristics': [{ 206 'uuid': '00002a19-0000-1000-8000-00805f9b34fb', 207 'properties': gatt_characteristic['property_notify'], 208 'permissions': gatt_characteristic['permission_read'], 209 'value_type': gatt_characteristic_value_format['string'], 210 'value': 'test', 211 'descriptors': [{ 212 'uuid': gatt_char_desc_uuids['client_char_cfg'] 213 }, { 214 'uuid': '00002904-0000-1000-8000-00805f9b34fb', 215 'permissions': gatt_descriptor['permission_read'] | 216 gatt_descriptor['permission_write'], 217 }] 218 }] 219 }] 220} 221 222# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.blood_pressure.xml 223BLOOD_PRESSURE_SERVICE = { 224 'services': [{ 225 'uuid': '00001810-0000-1000-8000-00805f9b34fb', 226 'type': gatt_service_types['primary'], 227 'characteristics': [{ 228 'uuid': '00002a35-0000-1000-8000-00805f9b34fb', 229 'properties': gatt_characteristic['property_notify'], 230 'permissions': gatt_characteristic['permission_read'], 231 'value_type': gatt_characteristic_value_format['string'], 232 'value': 'test', 233 'descriptors': [{ 234 'uuid': gatt_char_desc_uuids['client_char_cfg'] 235 }] 236 }, { 237 'uuid': '00002a36-0000-1000-8000-00805f9b34fb', 238 'properties': gatt_characteristic['property_notify'], 239 'permissions': gatt_characteristic['permission_read'], 240 'value_type': gatt_characteristic_value_format['string'], 241 'value': 'test', 242 'descriptors': [{ 243 'uuid': gatt_char_desc_uuids['client_char_cfg'] 244 }], 245 }, { 246 'uuid': '00002a49-0000-1000-8000-00805f9b34fb', 247 'properties': gatt_characteristic['property_read'], 248 'permissions': gatt_characteristic['permission_read'], 249 }] 250 }] 251} 252 253# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.body_composition.xml 254BODY_COMPOSITION_SERVICE = { 255 'services': [{ 256 'uuid': '0000181b-0000-1000-8000-00805f9b34fb', 257 'type': gatt_service_types['primary'], 258 'characteristics': [{ 259 'uuid': '00002a9b-0000-1000-8000-00805f9b34fb', 260 'properties': gatt_characteristic['property_read'], 261 'permissions': gatt_characteristic['permission_read'], 262 'value_type': gatt_characteristic_value_format['string'], 263 'value': 'test', 264 }, { 265 'uuid': '00002a9c-0000-1000-8000-00805f9b34fb', 266 'properties': gatt_characteristic['property_indicate'], 267 'permissions': gatt_characteristic['permission_read'], 268 'value_type': gatt_characteristic_value_format['string'], 269 'value': 'test', 270 'descriptors': [{ 271 'uuid': gatt_char_desc_uuids['client_char_cfg'] 272 }], 273 }] 274 }] 275} 276 277# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.bond_management.xml 278BOND_MANAGEMENT_SERVICE = { 279 'services': [{ 280 'uuid': '0000181e-0000-1000-8000-00805f9b34fb', 281 'type': gatt_service_types['primary'], 282 'characteristics': [{ 283 'uuid': '00002aac-0000-1000-8000-00805f9b34fb', 284 'properties': gatt_characteristic['property_write'], 285 'permissions': gatt_characteristic['permission_write'], 286 'value_type': gatt_characteristic_value_format['string'], 287 'value': 'test' 288 }, { 289 'uuid': '00002aa4-0000-1000-8000-00805f9b34fb', 290 'properties': gatt_characteristic['property_read'], 291 'permissions': gatt_characteristic['permission_read'], 292 'value_type': gatt_characteristic_value_format['string'], 293 'value': 'test', 294 } 295 296 ] 297 }] 298} 299 300# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.continuous_glucose_monitoring.xml 301CONTINUOUS_GLUCOSE_MONITORING_SERVICE = { 302 'services': [{ 303 'uuid': '0000180f-0000-1000-8000-00805f9b34fb', 304 'type': gatt_service_types['primary'], 305 'characteristics': [{ 306 'uuid': '00002aa7-0000-1000-8000-00805f9b34fb', 307 'properties': gatt_characteristic['property_notify'], 308 'permissions': gatt_characteristic['permission_read'], 309 'value_type': gatt_characteristic_value_format['string'], 310 'value': 'test', 311 'descriptors': [{ 312 'uuid': gatt_char_desc_uuids['client_char_cfg'] 313 }] 314 }, { 315 'uuid': '00002aa7-0000-1000-8000-00805f9b34fb', 316 'properties': gatt_characteristic['property_read'], 317 'permissions': gatt_characteristic['permission_read'], 318 'value_type': gatt_characteristic_value_format['string'], 319 'value': 'test', 320 }, { 321 'uuid': '00002aa8-0000-1000-8000-00805f9b34fb', 322 'properties': gatt_characteristic['property_read'], 323 'permissions': gatt_characteristic['permission_read'], 324 'value_type': gatt_characteristic_value_format['string'], 325 'value': 'test', 326 }, { 327 'uuid': '00002aa9-0000-1000-8000-00805f9b34fb', 328 'properties': gatt_characteristic['property_read'] | 329 gatt_characteristic['property_write'], 330 'permissions': gatt_characteristic['permission_read'] | 331 gatt_characteristic['permission_write'], 332 'value_type': gatt_characteristic_value_format['string'], 333 'value': 'test', 334 }, { 335 'uuid': '00002aaa-0000-1000-8000-00805f9b34fb', 336 'properties': gatt_characteristic['property_notify'], 337 'permissions': gatt_characteristic['permission_read'], 338 'value_type': gatt_characteristic_value_format['string'], 339 'value': 'test', 340 'descriptors': [{ 341 'uuid': gatt_char_desc_uuids['client_char_cfg'] 342 }] 343 }, { 344 'uuid': '00002aab-0000-1000-8000-00805f9b34fb', 345 'properties': gatt_characteristic['property_read'], 346 'permissions': gatt_characteristic['permission_read'], 347 'value_type': gatt_characteristic_value_format['string'], 348 'value': 'test', 349 }, { 350 'uuid': '00002a52-0000-1000-8000-00805f9b34fb', 351 'properties': gatt_characteristic['property_notify'], 352 'permissions': gatt_characteristic['permission_read'], 353 'value_type': gatt_characteristic_value_format['string'], 354 'value': 'test', 355 'descriptors': [{ 356 'uuid': gatt_char_desc_uuids['client_char_cfg'] 357 }] 358 }, { 359 'uuid': '00002aac-0000-1000-8000-00805f9b34fb', 360 'properties': gatt_characteristic['property_notify'], 361 'permissions': gatt_characteristic['permission_read'], 362 'value_type': gatt_characteristic_value_format['string'], 363 'value': 'test', 364 'descriptors': [{ 365 'uuid': gatt_char_desc_uuids['client_char_cfg'] 366 }] 367 }] 368 }] 369} 370 371# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.current_time.xml 372CURRENT_TIME_SERVICE = { 373 'services': [{ 374 'uuid': '00001805-0000-1000-8000-00805f9b34fb', 375 'type': gatt_service_types['primary'], 376 'characteristics': [{ 377 'uuid': '00002a2b-0000-1000-8000-00805f9b34fb', 378 'properties': gatt_characteristic['property_notify'], 379 'permissions': gatt_characteristic['permission_read'], 380 'value_type': gatt_characteristic_value_format['string'], 381 'value': 'test', 382 'descriptors': [{ 383 'uuid': gatt_char_desc_uuids['client_char_cfg'] 384 }] 385 }, { 386 'uuid': '00002a0f-0000-1000-8000-00805f9b34fb', 387 'properties': gatt_characteristic['property_read'], 388 'permissions': gatt_characteristic['permission_read'], 389 'value_type': gatt_characteristic_value_format['string'], 390 'value': 'test', 391 'descriptors': [{ 392 'uuid': gatt_char_desc_uuids['client_char_cfg'] 393 }], 394 }, { 395 'uuid': '00002a14-0000-1000-8000-00805f9b34fb', 396 'properties': gatt_characteristic['property_read'], 397 'permissions': gatt_characteristic['permission_read'], 398 }] 399 }] 400} 401 402# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.cycling_power.xml 403CYCLING_POWER_SERVICE = { 404 'services': [{ 405 'uuid': '00001818-0000-1000-8000-00805f9b34fb', 406 'type': gatt_service_types['primary'], 407 'characteristics': [{ 408 'uuid': '00002a63-0000-1000-8000-00805f9b34fb', 409 'properties': gatt_characteristic['property_notify'] | 410 gatt_characteristic['property_broadcast'], 411 'permissions': gatt_characteristic['permission_read'], 412 'value_type': gatt_characteristic_value_format['string'], 413 'value': 'test', 414 'descriptors': [{ 415 'uuid': gatt_char_desc_uuids['client_char_cfg'], 416 }, { 417 'uuid': gatt_char_desc_uuids['server_char_cfg'], 418 }] 419 }, { 420 'uuid': '00002a65-0000-1000-8000-00805f9b34fb', 421 'properties': gatt_characteristic['property_read'], 422 'permissions': gatt_characteristic['permission_read'], 423 'value_type': gatt_characteristic_value_format['string'], 424 'value': 'test', 425 }, { 426 'uuid': '00002a5d-0000-1000-8000-00805f9b34fb', 427 'properties': gatt_characteristic['property_read'], 428 'permissions': gatt_characteristic['permission_read'], 429 'value_type': gatt_characteristic_value_format['string'], 430 'value': 'test', 431 }, { 432 'uuid': '00002a64-0000-1000-8000-00805f9b34fb', 433 'properties': gatt_characteristic['property_notify'], 434 'permissions': gatt_characteristic['permission_read'], 435 'value_type': gatt_characteristic_value_format['string'], 436 'value': 'test', 437 'descriptors': [{ 438 'uuid': gatt_char_desc_uuids['client_char_cfg'] 439 }] 440 }, { 441 'uuid': '00002a66-0000-1000-8000-00805f9b34fb', 442 'properties': gatt_characteristic['property_notify'], 443 'permissions': gatt_characteristic['permission_read'], 444 'value_type': gatt_characteristic_value_format['string'], 445 'value': 'test', 446 'descriptors': [{ 447 'uuid': gatt_char_desc_uuids['client_char_cfg'] 448 }] 449 }] 450 }] 451} 452 453# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.cycling_speed_and_cadence.xml 454CYCLING_SPEED_AND_CADENCE_SERVICE = { 455 'services': [{ 456 'uuid': '00001816-0000-1000-8000-00805f9b34fb', 457 'type': gatt_service_types['primary'], 458 'characteristics': [{ 459 'uuid': '00002a5b-0000-1000-8000-00805f9b34fb', 460 'properties': gatt_characteristic['property_notify'], 461 'permissions': gatt_characteristic['permission_read'], 462 'value_type': gatt_characteristic_value_format['string'], 463 'value': 'test', 464 'descriptors': [{ 465 'uuid': gatt_char_desc_uuids['client_char_cfg'], 466 }] 467 }, { 468 'uuid': '00002a5c-0000-1000-8000-00805f9b34fb', 469 'properties': gatt_characteristic['property_read'], 470 'permissions': gatt_characteristic['permission_read'], 471 'value_type': gatt_characteristic_value_format['string'], 472 'value': 'test', 473 }, { 474 'uuid': '00002a5d-0000-1000-8000-00805f9b34fb', 475 'properties': gatt_characteristic['property_read'], 476 'permissions': gatt_characteristic['permission_read'], 477 'value_type': gatt_characteristic_value_format['string'], 478 'value': 'test', 479 }, { 480 'uuid': '00002a55-0000-1000-8000-00805f9b34fb', 481 'properties': gatt_characteristic['property_indicate'] | 482 gatt_characteristic['property_write'], 483 'permissions': gatt_characteristic['permission_write'], 484 'value_type': gatt_characteristic_value_format['string'], 485 'value': 'test', 486 'descriptors': [{ 487 'uuid': gatt_char_desc_uuids['client_char_cfg'] 488 }] 489 }] 490 }] 491} 492 493# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.device_information.xml 494DEVICE_INFORMATION_SERVICE = { 495 'services': [{ 496 'uuid': '00001816-0000-1000-8000-00805f9b34fb', 497 'type': gatt_service_types['primary'], 498 'characteristics': [{ 499 'uuid': '00002a29-0000-1000-8000-00805f9b34fb', 500 'properties': gatt_characteristic['property_read'], 501 'permissions': gatt_characteristic['permission_read'], 502 'value_type': gatt_characteristic_value_format['string'], 503 'value': 'test', 504 }, { 505 'uuid': '00002a24-0000-1000-8000-00805f9b34fb', 506 'properties': gatt_characteristic['property_read'], 507 'permissions': gatt_characteristic['permission_read'], 508 'value_type': gatt_characteristic_value_format['string'], 509 'value': 'test', 510 }, { 511 'uuid': '00002a25-0000-1000-8000-00805f9b34fb', 512 'properties': gatt_characteristic['property_read'], 513 'permissions': gatt_characteristic['permission_read'], 514 'value_type': gatt_characteristic_value_format['string'], 515 'value': 'test', 516 }, { 517 'uuid': '00002a27-0000-1000-8000-00805f9b34fb', 518 'properties': gatt_characteristic['property_read'], 519 'permissions': gatt_characteristic['permission_read'], 520 'value_type': gatt_characteristic_value_format['string'], 521 'value': 'test', 522 }, { 523 'uuid': '00002a26-0000-1000-8000-00805f9b34fb', 524 'properties': gatt_characteristic['property_read'], 525 'permissions': gatt_characteristic['permission_read'], 526 'value_type': gatt_characteristic_value_format['string'], 527 'value': 'test', 528 }, { 529 'uuid': '00002a28-0000-1000-8000-00805f9b34fb', 530 'properties': gatt_characteristic['property_read'], 531 'permissions': gatt_characteristic['permission_read'], 532 'value_type': gatt_characteristic_value_format['string'], 533 'value': 'test', 534 }, { 535 'uuid': '00002a23-0000-1000-8000-00805f9b34fb', 536 'properties': gatt_characteristic['property_read'], 537 'permissions': gatt_characteristic['permission_read'], 538 'value_type': gatt_characteristic_value_format['string'], 539 'value': 'test', 540 }, { 541 'uuid': '00002a2a-0000-1000-8000-00805f9b34fb', 542 'properties': gatt_characteristic['property_read'], 543 'permissions': gatt_characteristic['permission_read'], 544 'value_type': gatt_characteristic_value_format['string'], 545 'value': 'test', 546 }, { 547 'uuid': '00002a50-0000-1000-8000-00805f9b34fb', 548 'properties': gatt_characteristic['property_read'], 549 'permissions': gatt_characteristic['permission_read'], 550 'value_type': gatt_characteristic_value_format['string'], 551 'value': 'test', 552 }] 553 }] 554} 555 556# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.environmental_sensing.xml 557ENVIRONMENTAL_SENSING_SERVICE = { 558 'services': [{ 559 'uuid': '0000181a-0000-1000-8000-00805f9b34fb', 560 'type': gatt_service_types['primary'], 561 'characteristics': [{ 562 'uuid': '00002a7d-0000-1000-8000-00805f9b34fb', 563 'properties': gatt_characteristic['property_indicate'] | 564 gatt_characteristic['property_extended_props'] | 565 gatt_characteristic['property_write'], 566 'permissions': gatt_characteristic['permission_read'] | 567 gatt_characteristic['permission_write'], 568 'value_type': gatt_characteristic_value_format['string'], 569 'value': 'test', 570 }, { 571 'uuid': '00002a73-0000-1000-8000-00805f9b34fb', 572 'properties': gatt_characteristic['property_read'] | 573 gatt_characteristic['property_notify'] | 574 gatt_characteristic['property_extended_props'], 575 'permissions': gatt_characteristic['permission_read'], 576 'value_type': gatt_characteristic_value_format['string'], 577 'value': 'body', 578 'descriptors': [{ 579 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 580 'permissions': gatt_descriptor['permission_read'] | 581 gatt_descriptor['permission_write'], 582 }, { 583 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 584 'permissions': gatt_descriptor['permission_read'] | 585 gatt_descriptor['permission_write'], 586 }, { 587 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 588 'permissions': gatt_descriptor['permission_read'] | 589 gatt_descriptor['permission_write'], 590 }, { 591 'uuid': gatt_char_desc_uuids['char_user_desc'], 592 'permissions': gatt_descriptor['permission_read'] | 593 gatt_descriptor['permission_write'], 594 }, { 595 'uuid': gatt_char_desc_uuids['char_valid_range'], 596 'permissions': gatt_descriptor['permission_read'], 597 }, 598 ] 599 }, { 600 'uuid': '00002a72-0000-1000-8000-00805f9b34fb', 601 'properties': gatt_characteristic['property_read'] | 602 gatt_characteristic['property_notify'] | 603 gatt_characteristic['property_extended_props'], 604 'permissions': gatt_characteristic['permission_read'], 605 'value_type': gatt_characteristic_value_format['string'], 606 'value': 'body', 607 'descriptors': [{ 608 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 609 'permissions': gatt_descriptor['permission_read'] | 610 gatt_descriptor['permission_write'], 611 }, { 612 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 613 'permissions': gatt_descriptor['permission_read'] | 614 gatt_descriptor['permission_write'], 615 }, { 616 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 617 'permissions': gatt_descriptor['permission_read'] | 618 gatt_descriptor['permission_write'], 619 }, { 620 'uuid': gatt_char_desc_uuids['char_user_desc'], 621 'permissions': gatt_descriptor['permission_read'] | 622 gatt_descriptor['permission_write'], 623 }, { 624 'uuid': gatt_char_desc_uuids['char_valid_range'], 625 'permissions': gatt_descriptor['permission_read'], 626 }, 627 ] 628 }, { 629 'uuid': '00002a7b-0000-1000-8000-00805f9b34fb', 630 'properties': gatt_characteristic['property_read'] | 631 gatt_characteristic['property_notify'] | 632 gatt_characteristic['property_extended_props'], 633 'permissions': gatt_characteristic['permission_read'], 634 'value_type': gatt_characteristic_value_format['string'], 635 'value': 'body', 636 'descriptors': [{ 637 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 638 'permissions': gatt_descriptor['permission_read'] | 639 gatt_descriptor['permission_write'], 640 }, { 641 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 642 'permissions': gatt_descriptor['permission_read'] | 643 gatt_descriptor['permission_write'], 644 }, { 645 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 646 'permissions': gatt_descriptor['permission_read'] | 647 gatt_descriptor['permission_write'], 648 }, { 649 'uuid': gatt_char_desc_uuids['char_user_desc'], 650 'permissions': gatt_descriptor['permission_read'] | 651 gatt_descriptor['permission_write'], 652 }, { 653 'uuid': gatt_char_desc_uuids['char_valid_range'], 654 'permissions': gatt_descriptor['permission_read'], 655 }, 656 ] 657 }, 658 { 659 'uuid': '00002a6c-0000-1000-8000-00805f9b34fb', 660 'properties': gatt_characteristic['property_read'] | 661 gatt_characteristic['property_notify'] | 662 gatt_characteristic['property_extended_props'], 663 'permissions': gatt_characteristic['permission_read'], 664 'value_type': gatt_characteristic_value_format['string'], 665 'value': 'body', 666 'descriptors': [{ 667 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 668 'permissions': gatt_descriptor['permission_read'] | 669 gatt_descriptor['permission_write'], 670 }, { 671 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 672 'permissions': gatt_descriptor['permission_read'] | 673 gatt_descriptor['permission_write'], 674 }, { 675 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 676 'permissions': gatt_descriptor['permission_read'] | 677 gatt_descriptor['permission_write'], 678 }, { 679 'uuid': gatt_char_desc_uuids['char_user_desc'], 680 'permissions': gatt_descriptor['permission_read'] | 681 gatt_descriptor['permission_write'], 682 }, { 683 'uuid': gatt_char_desc_uuids['char_valid_range'], 684 'permissions': gatt_descriptor['permission_read'], 685 }, 686 ] 687 }, 688 { 689 'uuid': '00002a74-0000-1000-8000-00805f9b34fb', 690 'properties': gatt_characteristic['property_read'] | 691 gatt_characteristic['property_notify'] | 692 gatt_characteristic['property_extended_props'], 693 'permissions': gatt_characteristic['permission_read'], 694 'value_type': gatt_characteristic_value_format['string'], 695 'value': 'body', 696 'descriptors': [{ 697 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 698 'permissions': gatt_descriptor['permission_read'] | 699 gatt_descriptor['permission_write'], 700 }, { 701 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 702 'permissions': gatt_descriptor['permission_read'] | 703 gatt_descriptor['permission_write'], 704 }, { 705 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 706 'permissions': gatt_descriptor['permission_read'] | 707 gatt_descriptor['permission_write'], 708 }, { 709 'uuid': gatt_char_desc_uuids['char_user_desc'], 710 'permissions': gatt_descriptor['permission_read'] | 711 gatt_descriptor['permission_write'], 712 }, { 713 'uuid': gatt_char_desc_uuids['char_valid_range'], 714 'permissions': gatt_descriptor['permission_read'], 715 }, 716 ] 717 }, 718 { 719 'uuid': '00002a7a-0000-1000-8000-00805f9b34fb', 720 'properties': gatt_characteristic['property_read'] | 721 gatt_characteristic['property_notify'] | 722 gatt_characteristic['property_extended_props'], 723 'permissions': gatt_characteristic['permission_read'], 724 'value_type': gatt_characteristic_value_format['string'], 725 'value': 'body', 726 'descriptors': [{ 727 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 728 'permissions': gatt_descriptor['permission_read'] | 729 gatt_descriptor['permission_write'], 730 }, { 731 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 732 'permissions': gatt_descriptor['permission_read'] | 733 gatt_descriptor['permission_write'], 734 }, { 735 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 736 'permissions': gatt_descriptor['permission_read'] | 737 gatt_descriptor['permission_write'], 738 }, { 739 'uuid': gatt_char_desc_uuids['char_user_desc'], 740 'permissions': gatt_descriptor['permission_read'] | 741 gatt_descriptor['permission_write'], 742 }, { 743 'uuid': gatt_char_desc_uuids['char_valid_range'], 744 'permissions': gatt_descriptor['permission_read'], 745 }, 746 ] 747 }, 748 { 749 'uuid': '00002a6f-0000-1000-8000-00805f9b34fb', 750 'properties': gatt_characteristic['property_read'] | 751 gatt_characteristic['property_notify'] | 752 gatt_characteristic['property_extended_props'], 753 'permissions': gatt_characteristic['permission_read'], 754 'value_type': gatt_characteristic_value_format['string'], 755 'value': 'body', 756 'descriptors': [{ 757 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 758 'permissions': gatt_descriptor['permission_read'] | 759 gatt_descriptor['permission_write'], 760 }, { 761 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 762 'permissions': gatt_descriptor['permission_read'] | 763 gatt_descriptor['permission_write'], 764 }, { 765 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 766 'permissions': gatt_descriptor['permission_read'] | 767 gatt_descriptor['permission_write'], 768 }, { 769 'uuid': gatt_char_desc_uuids['char_user_desc'], 770 'permissions': gatt_descriptor['permission_read'] | 771 gatt_descriptor['permission_write'], 772 }, { 773 'uuid': gatt_char_desc_uuids['char_valid_range'], 774 'permissions': gatt_descriptor['permission_read'], 775 }, 776 ] 777 }, 778 { 779 'uuid': '00002a77-0000-1000-8000-00805f9b34fb', 780 'properties': gatt_characteristic['property_read'] | 781 gatt_characteristic['property_notify'] | 782 gatt_characteristic['property_extended_props'], 783 'permissions': gatt_characteristic['permission_read'], 784 'value_type': gatt_characteristic_value_format['string'], 785 'value': 'body', 786 'descriptors': [{ 787 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 788 'permissions': gatt_descriptor['permission_read'] | 789 gatt_descriptor['permission_write'], 790 }, { 791 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 792 'permissions': gatt_descriptor['permission_read'] | 793 gatt_descriptor['permission_write'], 794 }, { 795 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 796 'permissions': gatt_descriptor['permission_read'] | 797 gatt_descriptor['permission_write'], 798 }, { 799 'uuid': gatt_char_desc_uuids['char_user_desc'], 800 'permissions': gatt_descriptor['permission_read'] | 801 gatt_descriptor['permission_write'], 802 }, { 803 'uuid': gatt_char_desc_uuids['char_valid_range'], 804 'permissions': gatt_descriptor['permission_read'], 805 }, 806 ] 807 }, 808 { 809 'uuid': '00002a75-0000-1000-8000-00805f9b34fb', 810 'properties': gatt_characteristic['property_read'] | 811 gatt_characteristic['property_notify'] | 812 gatt_characteristic['property_extended_props'], 813 'permissions': gatt_characteristic['permission_read'], 814 'value_type': gatt_characteristic_value_format['string'], 815 'value': 'body', 816 'descriptors': [{ 817 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 818 'permissions': gatt_descriptor['permission_read'] | 819 gatt_descriptor['permission_write'], 820 }, { 821 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 822 'permissions': gatt_descriptor['permission_read'] | 823 gatt_descriptor['permission_write'], 824 }, { 825 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 826 'permissions': gatt_descriptor['permission_read'] | 827 gatt_descriptor['permission_write'], 828 }, { 829 'uuid': gatt_char_desc_uuids['char_user_desc'], 830 'permissions': gatt_descriptor['permission_read'] | 831 gatt_descriptor['permission_write'], 832 }, { 833 'uuid': gatt_char_desc_uuids['char_valid_range'], 834 'permissions': gatt_descriptor['permission_read'], 835 }, 836 ] 837 }, 838 { 839 'uuid': '00002a78-0000-1000-8000-00805f9b34fb', 840 'properties': gatt_characteristic['property_read'] | 841 gatt_characteristic['property_notify'] | 842 gatt_characteristic['property_extended_props'], 843 'permissions': gatt_characteristic['permission_read'], 844 'value_type': gatt_characteristic_value_format['string'], 845 'value': 'body', 846 'descriptors': [{ 847 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 848 'permissions': gatt_descriptor['permission_read'] | 849 gatt_descriptor['permission_write'], 850 }, { 851 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 852 'permissions': gatt_descriptor['permission_read'] | 853 gatt_descriptor['permission_write'], 854 }, { 855 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 856 'permissions': gatt_descriptor['permission_read'] | 857 gatt_descriptor['permission_write'], 858 }, { 859 'uuid': gatt_char_desc_uuids['char_user_desc'], 860 'permissions': gatt_descriptor['permission_read'] | 861 gatt_descriptor['permission_write'], 862 }, { 863 'uuid': gatt_char_desc_uuids['char_valid_range'], 864 'permissions': gatt_descriptor['permission_read'], 865 }, 866 ] 867 }, 868 { 869 'uuid': '00002a6d-0000-1000-8000-00805f9b34fb', 870 'properties': gatt_characteristic['property_read'] | 871 gatt_characteristic['property_notify'] | 872 gatt_characteristic['property_extended_props'], 873 'permissions': gatt_characteristic['permission_read'], 874 'value_type': gatt_characteristic_value_format['string'], 875 'value': 'body', 876 'descriptors': [{ 877 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 878 'permissions': gatt_descriptor['permission_read'] | 879 gatt_descriptor['permission_write'], 880 }, { 881 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 882 'permissions': gatt_descriptor['permission_read'] | 883 gatt_descriptor['permission_write'], 884 }, { 885 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 886 'permissions': gatt_descriptor['permission_read'] | 887 gatt_descriptor['permission_write'], 888 }, { 889 'uuid': gatt_char_desc_uuids['char_user_desc'], 890 'permissions': gatt_descriptor['permission_read'] | 891 gatt_descriptor['permission_write'], 892 }, { 893 'uuid': gatt_char_desc_uuids['char_valid_range'], 894 'permissions': gatt_descriptor['permission_read'], 895 }, 896 ] 897 }, 898 { 899 'uuid': '00002a6e-0000-1000-8000-00805f9b34fb', 900 'properties': gatt_characteristic['property_read'] | 901 gatt_characteristic['property_notify'] | 902 gatt_characteristic['property_extended_props'], 903 'permissions': gatt_characteristic['permission_read'], 904 'value_type': gatt_characteristic_value_format['string'], 905 'value': 'body', 906 'descriptors': [{ 907 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 908 'permissions': gatt_descriptor['permission_read'] | 909 gatt_descriptor['permission_write'], 910 }, { 911 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 912 'permissions': gatt_descriptor['permission_read'] | 913 gatt_descriptor['permission_write'], 914 }, { 915 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 916 'permissions': gatt_descriptor['permission_read'] | 917 gatt_descriptor['permission_write'], 918 }, { 919 'uuid': gatt_char_desc_uuids['char_user_desc'], 920 'permissions': gatt_descriptor['permission_read'] | 921 gatt_descriptor['permission_write'], 922 }, { 923 'uuid': gatt_char_desc_uuids['char_valid_range'], 924 'permissions': gatt_descriptor['permission_read'], 925 }, 926 ] 927 }, 928 { 929 'uuid': '00002a71-0000-1000-8000-00805f9b34fb', 930 'properties': gatt_characteristic['property_read'] | 931 gatt_characteristic['property_notify'] | 932 gatt_characteristic['property_extended_props'], 933 'permissions': gatt_characteristic['permission_read'], 934 'value_type': gatt_characteristic_value_format['string'], 935 'value': 'body', 936 'descriptors': [{ 937 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 938 'permissions': gatt_descriptor['permission_read'] | 939 gatt_descriptor['permission_write'], 940 }, { 941 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 942 'permissions': gatt_descriptor['permission_read'] | 943 gatt_descriptor['permission_write'], 944 }, { 945 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 946 'permissions': gatt_descriptor['permission_read'] | 947 gatt_descriptor['permission_write'], 948 }, { 949 'uuid': gatt_char_desc_uuids['char_user_desc'], 950 'permissions': gatt_descriptor['permission_read'] | 951 gatt_descriptor['permission_write'], 952 }, { 953 'uuid': gatt_char_desc_uuids['char_valid_range'], 954 'permissions': gatt_descriptor['permission_read'], 955 }, 956 ] 957 }, 958 { 959 'uuid': '00002a76-0000-1000-8000-00805f9b34fb', 960 'properties': gatt_characteristic['property_read'] | 961 gatt_characteristic['property_notify'] | 962 gatt_characteristic['property_extended_props'], 963 'permissions': gatt_characteristic['permission_read'], 964 'value_type': gatt_characteristic_value_format['string'], 965 'value': 'body', 966 'descriptors': [{ 967 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 968 'permissions': gatt_descriptor['permission_read'] | 969 gatt_descriptor['permission_write'], 970 }, { 971 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 972 'permissions': gatt_descriptor['permission_read'] | 973 gatt_descriptor['permission_write'], 974 }, { 975 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 976 'permissions': gatt_descriptor['permission_read'] | 977 gatt_descriptor['permission_write'], 978 }, { 979 'uuid': gatt_char_desc_uuids['char_user_desc'], 980 'permissions': gatt_descriptor['permission_read'] | 981 gatt_descriptor['permission_write'], 982 }, { 983 'uuid': gatt_char_desc_uuids['char_valid_range'], 984 'permissions': gatt_descriptor['permission_read'], 985 }, 986 ] 987 }, 988 { 989 'uuid': '00002a79-0000-1000-8000-00805f9b34fb', 990 'properties': gatt_characteristic['property_read'] | 991 gatt_characteristic['property_notify'] | 992 gatt_characteristic['property_extended_props'], 993 'permissions': gatt_characteristic['permission_read'], 994 'value_type': gatt_characteristic_value_format['string'], 995 'value': 'body', 996 'descriptors': [{ 997 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 998 'permissions': gatt_descriptor['permission_read'] | 999 gatt_descriptor['permission_write'], 1000 }, { 1001 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 1002 'permissions': gatt_descriptor['permission_read'] | 1003 gatt_descriptor['permission_write'], 1004 }, { 1005 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 1006 'permissions': gatt_descriptor['permission_read'] | 1007 gatt_descriptor['permission_write'], 1008 }, { 1009 'uuid': gatt_char_desc_uuids['char_user_desc'], 1010 'permissions': gatt_descriptor['permission_read'] | 1011 gatt_descriptor['permission_write'], 1012 }, { 1013 'uuid': gatt_char_desc_uuids['char_valid_range'], 1014 'permissions': gatt_descriptor['permission_read'], 1015 }, 1016 ] 1017 }, 1018 { 1019 'uuid': '00002aa3-0000-1000-8000-00805f9b34fb', 1020 'properties': gatt_characteristic['property_read'] | 1021 gatt_characteristic['property_notify'] | 1022 gatt_characteristic['property_extended_props'], 1023 'permissions': gatt_characteristic['permission_read'], 1024 'value_type': gatt_characteristic_value_format['string'], 1025 'value': 'body', 1026 'descriptors': [{ 1027 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 1028 'permissions': gatt_descriptor['permission_read'] | 1029 gatt_descriptor['permission_write'], 1030 }, { 1031 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 1032 'permissions': gatt_descriptor['permission_read'] | 1033 gatt_descriptor['permission_write'], 1034 }, { 1035 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 1036 'permissions': gatt_descriptor['permission_read'] | 1037 gatt_descriptor['permission_write'], 1038 }, { 1039 'uuid': gatt_char_desc_uuids['char_user_desc'], 1040 'permissions': gatt_descriptor['permission_read'] | 1041 gatt_descriptor['permission_write'], 1042 }, { 1043 'uuid': gatt_char_desc_uuids['char_valid_range'], 1044 'permissions': gatt_descriptor['permission_read'], 1045 }, 1046 ] 1047 }, 1048 { 1049 'uuid': '00002a2c-0000-1000-8000-00805f9b34fb', 1050 'properties': gatt_characteristic['property_read'] | 1051 gatt_characteristic['property_notify'] | 1052 gatt_characteristic['property_extended_props'], 1053 'permissions': gatt_characteristic['permission_read'], 1054 'value_type': gatt_characteristic_value_format['string'], 1055 'value': 'body', 1056 'descriptors': [{ 1057 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 1058 'permissions': gatt_descriptor['permission_read'] | 1059 gatt_descriptor['permission_write'], 1060 }, { 1061 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 1062 'permissions': gatt_descriptor['permission_read'] | 1063 gatt_descriptor['permission_write'], 1064 }, { 1065 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 1066 'permissions': gatt_descriptor['permission_read'] | 1067 gatt_descriptor['permission_write'], 1068 }, { 1069 'uuid': gatt_char_desc_uuids['char_user_desc'], 1070 'permissions': gatt_descriptor['permission_read'] | 1071 gatt_descriptor['permission_write'], 1072 }, { 1073 'uuid': gatt_char_desc_uuids['char_valid_range'], 1074 'permissions': gatt_descriptor['permission_read'], 1075 }, 1076 ] 1077 }, 1078 { 1079 'uuid': '00002aa0-0000-1000-8000-00805f9b34fb', 1080 'properties': gatt_characteristic['property_read'] | 1081 gatt_characteristic['property_notify'] | 1082 gatt_characteristic['property_extended_props'], 1083 'permissions': gatt_characteristic['permission_read'], 1084 'value_type': gatt_characteristic_value_format['string'], 1085 'value': 'body', 1086 'descriptors': [{ 1087 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 1088 'permissions': gatt_descriptor['permission_read'] | 1089 gatt_descriptor['permission_write'], 1090 }, { 1091 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 1092 'permissions': gatt_descriptor['permission_read'] | 1093 gatt_descriptor['permission_write'], 1094 }, { 1095 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 1096 'permissions': gatt_descriptor['permission_read'] | 1097 gatt_descriptor['permission_write'], 1098 }, { 1099 'uuid': gatt_char_desc_uuids['char_user_desc'], 1100 'permissions': gatt_descriptor['permission_read'] | 1101 gatt_descriptor['permission_write'], 1102 }, { 1103 'uuid': gatt_char_desc_uuids['char_valid_range'], 1104 'permissions': gatt_descriptor['permission_read'], 1105 }, 1106 ] 1107 }, 1108 { 1109 'uuid': '00002aa1-0000-1000-8000-00805f9b34fb', 1110 'properties': gatt_characteristic['property_read'] | 1111 gatt_characteristic['property_notify'] | 1112 gatt_characteristic['property_extended_props'], 1113 'permissions': gatt_characteristic['permission_read'], 1114 'value_type': gatt_characteristic_value_format['string'], 1115 'value': 'body', 1116 'descriptors': [{ 1117 'uuid': '0000290c-0000-1000-8000-00805f9b34fb', 1118 'permissions': gatt_descriptor['permission_read'] | 1119 gatt_descriptor['permission_write'], 1120 }, { 1121 'uuid': '0000290d-0000-1000-8000-00805f9b34fb', 1122 'permissions': gatt_descriptor['permission_read'] | 1123 gatt_descriptor['permission_write'], 1124 }, { 1125 'uuid': '0000290b-0000-1000-8000-00805f9b34fb', 1126 'permissions': gatt_descriptor['permission_read'] | 1127 gatt_descriptor['permission_write'], 1128 }, { 1129 'uuid': gatt_char_desc_uuids['char_user_desc'], 1130 'permissions': gatt_descriptor['permission_read'] | 1131 gatt_descriptor['permission_write'], 1132 }, { 1133 'uuid': gatt_char_desc_uuids['char_valid_range'], 1134 'permissions': gatt_descriptor['permission_read'], 1135 }, 1136 ] 1137 }, 1138 1139 ] 1140 }] 1141} 1142 1143# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.fitness_machine.xml 1144FITNESS_MACHINE_SERVICE = { 1145 'services': [{ 1146 'uuid': '00001826-0000-1000-8000-00805f9b34fb', 1147 'type': gatt_service_types['primary'], 1148 'characteristics': [{ 1149 'uuid': '00002acc-0000-1000-8000-00805f9b34fb', 1150 'properties': gatt_characteristic['property_read'], 1151 'permissions': gatt_characteristic['permission_read'], 1152 'value_type': gatt_characteristic_value_format['string'], 1153 'value': 'test' 1154 }, { 1155 'uuid': '00002acd-0000-1000-8000-00805f9b34fb', 1156 'properties': gatt_characteristic['property_notify'], 1157 'permissions': gatt_characteristic['permission_read'], 1158 'value_type': gatt_characteristic_value_format['string'], 1159 'value': 'test', 1160 'descriptors': [{ 1161 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1162 }] 1163 }, { 1164 'uuid': '00002ace-0000-1000-8000-00805f9b34fb', 1165 'properties': gatt_characteristic['property_notify'], 1166 'permissions': gatt_characteristic['permission_read'], 1167 'value_type': gatt_characteristic_value_format['string'], 1168 'value': 'test', 1169 'descriptors': [{ 1170 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1171 }] 1172 }, { 1173 'uuid': '00002acf-0000-1000-8000-00805f9b34fb', 1174 'properties': gatt_characteristic['property_notify'], 1175 'permissions': gatt_characteristic['permission_read'], 1176 'value_type': gatt_characteristic_value_format['string'], 1177 'value': 'test', 1178 'descriptors': [{ 1179 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1180 }] 1181 }, { 1182 'uuid': '00002ad0-0000-1000-8000-00805f9b34fb', 1183 'properties': gatt_characteristic['property_notify'], 1184 'permissions': gatt_characteristic['permission_read'], 1185 'value_type': gatt_characteristic_value_format['string'], 1186 'value': 'test', 1187 'descriptors': [{ 1188 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1189 }] 1190 }, { 1191 'uuid': '00002ad1-0000-1000-8000-00805f9b34fb', 1192 'properties': gatt_characteristic['property_notify'], 1193 'permissions': gatt_characteristic['permission_read'], 1194 'value_type': gatt_characteristic_value_format['string'], 1195 'value': 'test', 1196 'descriptors': [{ 1197 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1198 }] 1199 }, { 1200 'uuid': '00002ad2-0000-1000-8000-00805f9b34fb', 1201 'properties': gatt_characteristic['property_notify'], 1202 'permissions': gatt_characteristic['permission_read'], 1203 'value_type': gatt_characteristic_value_format['string'], 1204 'value': 'test', 1205 'descriptors': [{ 1206 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1207 }] 1208 }, { 1209 'uuid': '00002ad3-0000-1000-8000-00805f9b34fb', 1210 'properties': gatt_characteristic['property_notify'], 1211 'permissions': gatt_characteristic['permission_read'], 1212 'value_type': gatt_characteristic_value_format['string'], 1213 'value': 'test', 1214 'descriptors': [{ 1215 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1216 }] 1217 }, { 1218 'uuid': '00002ad4-0000-1000-8000-00805f9b34fb', 1219 'properties': gatt_characteristic['property_read'], 1220 'permissions': gatt_characteristic['permission_read'], 1221 'value_type': gatt_characteristic_value_format['string'], 1222 'value': 'test' 1223 }, { 1224 'uuid': '00002ad5-0000-1000-8000-00805f9b34fb', 1225 'properties': gatt_characteristic['property_read'], 1226 'permissions': gatt_characteristic['permission_read'], 1227 'value_type': gatt_characteristic_value_format['string'], 1228 'value': 'test' 1229 }, { 1230 'uuid': '00002ad6-0000-1000-8000-00805f9b34fb', 1231 'properties': gatt_characteristic['property_read'], 1232 'permissions': gatt_characteristic['permission_read'], 1233 'value_type': gatt_characteristic_value_format['string'], 1234 'value': 'test', 1235 }, { 1236 'uuid': '00002ad8-0000-1000-8000-00805f9b34fb', 1237 'properties': gatt_characteristic['property_read'], 1238 'permissions': gatt_characteristic['permission_read'], 1239 'value_type': gatt_characteristic_value_format['string'], 1240 'value': 'test' 1241 }, { 1242 'uuid': '00002ad7-0000-1000-8000-00805f9b34fb', 1243 'properties': gatt_characteristic['property_notify'], 1244 'permissions': gatt_characteristic['permission_read'], 1245 'value_type': gatt_characteristic_value_format['string'], 1246 'value': 'test' 1247 }, { 1248 'uuid': '00002ad9-0000-1000-8000-00805f9b34fb', 1249 'properties': gatt_characteristic['property_indicate'], 1250 'permissions': gatt_characteristic['permission_read'], 1251 'value_type': gatt_characteristic_value_format['string'], 1252 'value': 'test', 1253 'descriptors': [{ 1254 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1255 }] 1256 }, { 1257 'uuid': '00002ada-0000-1000-8000-00805f9b34fb', 1258 'properties': gatt_characteristic['property_indicate'], 1259 'permissions': gatt_characteristic['permission_read'], 1260 'value_type': gatt_characteristic_value_format['string'], 1261 'value': 'test', 1262 'descriptors': [{ 1263 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1264 }] 1265 } 1266 1267 1268 ] 1269 }] 1270} 1271 1272# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.glucose.xml 1273GLUCOSE_SERVICE = { 1274 'services': [{ 1275 'uuid': '00001808-0000-1000-8000-00805f9b34fb', 1276 'type': gatt_service_types['primary'], 1277 'characteristics': [{ 1278 'uuid': '00002a18-0000-1000-8000-00805f9b34fb', 1279 'properties': gatt_characteristic['property_notify'], 1280 'permissions': gatt_characteristic['permission_read'], 1281 'value_type': gatt_characteristic_value_format['string'], 1282 'value': 'test', 1283 'descriptors': [{ 1284 'uuid': gatt_char_desc_uuids['client_char_cfg'], 1285 }] 1286 }, { 1287 'uuid': '00002a34-0000-1000-8000-00805f9b34fb', 1288 'properties': gatt_characteristic['property_read'], 1289 'permissions': gatt_characteristic['permission_read'], 1290 'value_type': gatt_characteristic_value_format['string'], 1291 'value': 'test', 1292 'descriptors': [{ 1293 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1294 }] 1295 }, { 1296 'uuid': '00002a51-0000-1000-8000-00805f9b34fb', 1297 'properties': gatt_characteristic['property_read'], 1298 'permissions': gatt_characteristic['permission_read'], 1299 'value_type': gatt_characteristic_value_format['string'], 1300 'value': 'test', 1301 }, { 1302 'uuid': '00002a52-0000-1000-8000-00805f9b34fb', 1303 'properties': gatt_characteristic['property_indicate'] | 1304 gatt_characteristic['property_write'], 1305 'permissions': gatt_characteristic['permission_write'], 1306 'value_type': gatt_characteristic_value_format['string'], 1307 'value': 'test', 1308 'descriptors': [{ 1309 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1310 }] 1311 }] 1312 }] 1313} 1314 1315# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.health_thermometer.xml 1316HEALTH_THERMOMETER_SERVICE = { 1317 'services': [{ 1318 'uuid': '00001809-0000-1000-8000-00805f9b34fb', 1319 'type': gatt_service_types['primary'], 1320 'characteristics': [{ 1321 'uuid': '00002a1c-0000-1000-8000-00805f9b34fb', 1322 'properties': gatt_characteristic['property_notify'], 1323 'permissions': gatt_characteristic['permission_read'], 1324 'value_type': gatt_characteristic_value_format['string'], 1325 'value': 'test', 1326 'descriptors': [{ 1327 'uuid': gatt_char_desc_uuids['client_char_cfg'], 1328 }] 1329 }, { 1330 'uuid': '00002a1d-0000-1000-8000-00805f9b34fb', 1331 'properties': gatt_characteristic['property_read'], 1332 'permissions': gatt_characteristic['permission_read'], 1333 'value_type': gatt_characteristic_value_format['string'], 1334 'value': 'test', 1335 'descriptors': [{ 1336 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1337 }] 1338 }, { 1339 'uuid': '00002a1e-0000-1000-8000-00805f9b34fb', 1340 'properties': gatt_characteristic['property_read'], 1341 'permissions': gatt_characteristic['permission_read'], 1342 'value_type': gatt_characteristic_value_format['string'], 1343 'value': 'test', 1344 }, { 1345 'uuid': '00002a21-0000-1000-8000-00805f9b34fb', 1346 'properties': gatt_characteristic['property_indicate'] | 1347 gatt_characteristic['property_write'] | 1348 gatt_characteristic['property_read'], 1349 'permissions': gatt_characteristic['permission_write'], 1350 'value_type': gatt_characteristic_value_format['string'], 1351 'value': 'test', 1352 'descriptors': [{ 1353 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1354 }, { 1355 'uuid': gatt_char_desc_uuids['char_valid_range'], 1356 'permissions': gatt_descriptor['permission_read'], 1357 }] 1358 }] 1359 }] 1360} 1361 1362# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.heart_rate.xml 1363HEART_RATE_SERVICE = { 1364 'services': [{ 1365 'uuid': '0000180d-0000-1000-8000-00805f9b34fb', 1366 'type': gatt_service_types['primary'], 1367 'characteristics': [{ 1368 'uuid': '00002a37-0000-1000-8000-00805f9b34fb', 1369 'properties': gatt_characteristic['property_notify'], 1370 'permissions': gatt_characteristic['permission_read'], 1371 'value_type': gatt_characteristic_value_format['string'], 1372 'value': 'test', 1373 'descriptors': [{ 1374 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1375 }] 1376 }, { 1377 'uuid': '00002a38-0000-1000-8000-00805f9b34fb', 1378 'properties': gatt_characteristic['property_read'], 1379 'permissions': gatt_characteristic['permission_read'], 1380 'value_type': gatt_characteristic_value_format['string'], 1381 'value': 'body', 1382 }, { 1383 'uuid': '00002a39-0000-1000-8000-00805f9b34fb', 1384 'properties': gatt_characteristic['property_write'], 1385 'permissions': gatt_characteristic['permission_write'], 1386 'value_type': gatt_characteristic_value_format['sint8'], 1387 'value': 1, 1388 }] 1389 }] 1390} 1391 1392# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.http_proxy.xml 1393HTTP_PROXY_SERVICE = { 1394 'services': [{ 1395 'uuid': '00001823-0000-1000-8000-00805f9b34fb', 1396 'type': gatt_service_types['primary'], 1397 'characteristics': [{ 1398 'uuid': '00002ab6-0000-1000-8000-00805f9b34fb', 1399 'properties': gatt_characteristic['property_write'], 1400 'permissions': gatt_characteristic['property_write'], 1401 'value_type': gatt_characteristic_value_format['string'], 1402 'value': 'test', 1403 }, { 1404 'uuid': '00002ab7-0000-1000-8000-00805f9b34fb', 1405 'properties': gatt_characteristic['property_read'] | 1406 gatt_characteristic['property_write'], 1407 'permissions': gatt_characteristic['permission_read'] | 1408 gatt_characteristic['permission_write'], 1409 'value_type': gatt_characteristic_value_format['string'], 1410 'value': 'body', 1411 }, { 1412 'uuid': '00002ab9-0000-1000-8000-00805f9b34fb', 1413 'properties': gatt_characteristic['property_read'] | 1414 gatt_characteristic['property_write'], 1415 'permissions': gatt_characteristic['permission_read'] | 1416 gatt_characteristic['permission_write'], 1417 'value_type': gatt_characteristic_value_format['sint8'], 1418 'value': 8, 1419 }, { 1420 'uuid': '00002aba-0000-1000-8000-00805f9b34fb', 1421 'properties': gatt_characteristic['property_write'], 1422 'permissions': gatt_characteristic['permission_write'], 1423 'value_type': gatt_characteristic_value_format['sint8'], 1424 'value': 8, 1425 }, { 1426 'uuid': '00002ab8-0000-1000-8000-00805f9b34fb', 1427 'properties': gatt_characteristic['property_notify'], 1428 'permissions': gatt_characteristic['permission_read'], 1429 'value_type': gatt_characteristic_value_format['sint8'], 1430 'value': 2, 1431 }, { 1432 'uuid': '00002abb-0000-1000-8000-00805f9b34fb', 1433 'properties': gatt_characteristic['property_read'], 1434 'permissions': gatt_characteristic['permission_read'], 1435 'value_type': gatt_characteristic_value_format['sint8'], 1436 'value': 1, 1437 }, 1438 ] 1439 }] 1440} 1441 1442# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.human_interface_device.xml 1443HUMAN_INTERFACE_DEVICE_SERVICE = { 1444 'services': [{ 1445 'uuid': '00001812-0000-1000-8000-00805f9b34fb', 1446 'type': gatt_service_types['primary'], 1447 'characteristics': [{ 1448 'uuid': '00002a4e-0000-1000-8000-00805f9b34fb', 1449 'properties': gatt_characteristic['property_read'] | 1450 gatt_characteristic['property_write_no_response'], 1451 'permissions': gatt_characteristic['permission_read'] | 1452 gatt_characteristic['permission_write'], 1453 'value_type': gatt_characteristic_value_format['string'], 1454 'value': 'test', 1455 }, { 1456 'uuid': '00002a4d-0000-1000-8000-00805f9b34fb', 1457 'properties': gatt_characteristic['property_read'] | 1458 gatt_characteristic['property_notify'], 1459 'permissions': gatt_characteristic['permission_read'] | 1460 gatt_characteristic['permission_write'], 1461 'value_type': gatt_characteristic_value_format['string'], 1462 'value': 'body', 1463 'descriptors': [{ 1464 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1465 }, { 1466 'uuid': '00002908-0000-1000-8000-00805f9b34fb', 1467 'permissions': gatt_descriptor['permission_read'] | 1468 gatt_descriptor['permission_write'], 1469 }] 1470 }, { 1471 'uuid': '00002a4b-0000-1000-8000-00805f9b34fb', 1472 'properties': gatt_characteristic['property_read'], 1473 'permissions': gatt_characteristic['permission_read'], 1474 'value_type': gatt_characteristic_value_format['sint8'], 1475 'value': 1, 1476 'descriptors': [{ 1477 'uuid': '00002907-0000-1000-8000-00805f9b34fb', 1478 'permissions': gatt_descriptor['permission_read'], 1479 }] 1480 }, { 1481 'uuid': '00002a22-0000-1000-8000-00805f9b34fb', 1482 'properties': gatt_characteristic['property_read'] | 1483 gatt_characteristic['property_notify'], 1484 'permissions': gatt_characteristic['permission_read'], 1485 'value_type': gatt_characteristic_value_format['sint8'], 1486 'value': 1, 1487 'descriptors': [{ 1488 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1489 }] 1490 },{ 1491 'uuid': '00002a32-0000-1000-8000-00805f9b34fb', 1492 'properties': gatt_characteristic['property_write'] | 1493 gatt_characteristic['property_read'] | 1494 gatt_characteristic['property_write_no_response'], 1495 'permissions': gatt_characteristic['permission_write'] | 1496 gatt_characteristic['permission_read'], 1497 'value_type': gatt_characteristic_value_format['sint8'], 1498 'value': 1, 1499 }, { 1500 'uuid': '00002a33-0000-1000-8000-00805f9b34fb', 1501 'properties': gatt_characteristic['property_read'] | 1502 gatt_characteristic['property_notify'], 1503 'permissions': gatt_characteristic['permission_read'], 1504 'value_type': gatt_characteristic_value_format['sint8'], 1505 'value': 1, 1506 'descriptors': [{ 1507 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1508 }] 1509 }, { 1510 'uuid': '00002a4a-0000-1000-8000-00805f9b34fb', 1511 'properties': gatt_characteristic['property_read'], 1512 'permissions': gatt_characteristic['permission_read'], 1513 'value_type': gatt_characteristic_value_format['sint8'], 1514 'value': 1, 1515 }, { 1516 'uuid': '00002a4c-0000-1000-8000-00805f9b34fb', 1517 'properties': gatt_characteristic['property_write_no_response'], 1518 'permissions': gatt_characteristic['permission_write'], 1519 'value_type': gatt_characteristic_value_format['sint8'], 1520 'value': 0, 1521 } 1522 ] 1523 }] 1524} 1525 1526# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.immediate_alert.xml 1527IMMEDIATE_ALERT_SERVICE = { 1528 'services': [{ 1529 'uuid': '0000180d-0000-1000-8000-00805f9b34fb', 1530 'type': gatt_service_types['primary'], 1531 'characteristics': [{ 1532 'uuid': '00002a06-0000-1000-8000-00805f9b34fb', 1533 'properties': gatt_characteristic['property_notify'], 1534 'permissions': gatt_characteristic['permission_read'], 1535 'value_type': gatt_characteristic_value_format['string'], 1536 'value': 'test', 1537 }] 1538 }] 1539} 1540 1541# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.indoor_positioning.xml 1542INDOOR_POSITIONING_SERVICE = { 1543 'services': [{ 1544 'uuid': '00001821-0000-1000-8000-00805f9b34fb', 1545 'type': gatt_service_types['primary'], 1546 'characteristics': [{ 1547 'uuid': '00002a06-0000-1000-8000-00805f9b34fb', 1548 'properties': gatt_characteristic['property_write_no_response'] | 1549 gatt_characteristic['property_read'], 1550 'permissions': gatt_characteristic['permission_read'] | 1551 gatt_characteristic['permission_write_signed_mitm'], 1552 'value_type': gatt_characteristic_value_format['string'], 1553 'value': 'test', 1554 }, { 1555 'uuid': '00002a38-0000-1000-8000-00805f9b34fb', 1556 'properties': gatt_characteristic['property_write_no_response'] | 1557 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1558 'permissions': gatt_characteristic['permission_read'] | 1559 gatt_characteristic['permission_write_signed_mitm'], 1560 'value_type': gatt_characteristic_value_format['string'], 1561 'value': 'body', 1562 'descriptors': [{ 1563 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1564 }] 1565 }, { 1566 'uuid': '00002aad-0000-1000-8000-00805f9b34fb', 1567 'properties': gatt_characteristic['property_write_no_response'] | 1568 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1569 'permissions': gatt_characteristic['permission_read'] | 1570 gatt_characteristic['permission_write_signed_mitm'], 1571 'value_type': gatt_characteristic_value_format['sint8'], 1572 'value': 1, 1573 'descriptors': [{ 1574 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1575 }] 1576 }, { 1577 'uuid': '00002aae-0000-1000-8000-00805f9b34fb', 1578 'properties': gatt_characteristic['property_write_no_response'] | 1579 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1580 'permissions': gatt_characteristic['permission_read'] | 1581 gatt_characteristic['permission_write_signed_mitm'], 1582 'value_type': gatt_characteristic_value_format['sint8'], 1583 'value': 1, 1584 'descriptors': [{ 1585 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1586 }] 1587 }, { 1588 'uuid': '00002aaf-0000-1000-8000-00805f9b34fb', 1589 'properties': gatt_characteristic['property_write_no_response'] | 1590 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1591 'permissions': gatt_characteristic['permission_read'] | 1592 gatt_characteristic['permission_write_signed_mitm'], 1593 'value_type': gatt_characteristic_value_format['sint8'], 1594 'value': 1, 1595 'descriptors': [{ 1596 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1597 }] 1598 }, { 1599 'uuid': '00002ab0-0000-1000-8000-00805f9b34fb', 1600 'properties': gatt_characteristic['property_write_no_response'] | 1601 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1602 'permissions': gatt_characteristic['permission_read'] | 1603 gatt_characteristic['permission_write_signed_mitm'], 1604 'value_type': gatt_characteristic_value_format['sint8'], 1605 'value': 1, 1606 'descriptors': [{ 1607 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1608 }] 1609 }, { 1610 'uuid': '00002ab1-0000-1000-8000-00805f9b34fb', 1611 'properties': gatt_characteristic['property_write_no_response'] | 1612 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1613 'permissions': gatt_characteristic['permission_read'] | 1614 gatt_characteristic['permission_write_signed_mitm'], 1615 'value_type': gatt_characteristic_value_format['sint8'], 1616 'value': 1, 1617 'descriptors': [{ 1618 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1619 }] 1620 }, { 1621 'uuid': '00002ab2-0000-1000-8000-00805f9b34fb', 1622 'properties': gatt_characteristic['property_write_no_response'] | 1623 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1624 'permissions': gatt_characteristic['permission_read'] | 1625 gatt_characteristic['permission_write_signed_mitm'], 1626 'value_type': gatt_characteristic_value_format['sint8'], 1627 'value': 1, 1628 'descriptors': [{ 1629 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1630 }] 1631 }, { 1632 'uuid': '00002ab3-0000-1000-8000-00805f9b34fb', 1633 'properties': gatt_characteristic['property_write_no_response'] | 1634 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1635 'permissions': gatt_characteristic['permission_read'] | 1636 gatt_characteristic['permission_write_signed_mitm'], 1637 'value_type': gatt_characteristic_value_format['sint8'], 1638 'value': 1, 1639 'descriptors': [{ 1640 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1641 }] 1642 }, { 1643 'uuid': '00002ab4-0000-1000-8000-00805f9b34fb', 1644 'properties': gatt_characteristic['property_write_no_response'] | 1645 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1646 'permissions': gatt_characteristic['permission_read'] | 1647 gatt_characteristic['permission_write_signed_mitm'], 1648 'value_type': gatt_characteristic_value_format['sint8'], 1649 'value': 1, 1650 'descriptors': [{ 1651 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1652 }] 1653 }, { 1654 'uuid': '00002ab5-0000-1000-8000-00805f9b34fb', 1655 'properties': gatt_characteristic['property_write_no_response'] | 1656 gatt_characteristic['property_read'] | gatt_characteristic['property_broadcast'], 1657 'permissions': gatt_characteristic['permission_read'] | 1658 gatt_characteristic['permission_write_signed_mitm'], 1659 'value_type': gatt_characteristic_value_format['sint8'], 1660 'value': 1, 1661 'descriptors': [{ 1662 'uuid': gatt_char_desc_uuids['server_char_cfg'] 1663 }] 1664 } 1665 ] 1666 }] 1667} 1668 1669# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.insulin_delivery.xml 1670INSULIN_DELIVERY_SERVICE = { 1671 'services': [{ 1672 'uuid': '0000183a-0000-1000-8000-00805f9b34fb', 1673 'type': gatt_service_types['primary'], 1674 'characteristics': [{ 1675 'uuid': '00002b20-0000-1000-8000-00805f9b34fb', 1676 'properties': gatt_characteristic['property_read'] | 1677 gatt_characteristic['property_indicate'], 1678 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1679 'value_type': gatt_characteristic_value_format['string'], 1680 'value': 'test', 1681 'descriptors': [{ 1682 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1683 }] 1684 }, { 1685 'uuid': '00002b21-0000-1000-8000-00805f9b34fb', 1686 'properties': gatt_characteristic['property_read'] | 1687 gatt_characteristic['property_indicate'], 1688 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1689 'value_type': gatt_characteristic_value_format['string'], 1690 'value': 'body', 1691 'descriptors': [{ 1692 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1693 }] 1694 }, { 1695 'uuid': '00002b22-0000-1000-8000-00805f9b34fb', 1696 'properties': gatt_characteristic['property_read'] | 1697 gatt_characteristic['property_indicate'], 1698 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1699 'value_type': gatt_characteristic_value_format['sint8'], 1700 'value': 1, 1701 'descriptors': [{ 1702 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1703 }] 1704 }, { 1705 'uuid': '00002b23-0000-1000-8000-00805f9b34fb', 1706 'properties': gatt_characteristic['property_read'], 1707 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1708 'value_type': gatt_characteristic_value_format['sint8'], 1709 'value': 1 1710 }, { 1711 'uuid': '00002b24-0000-1000-8000-00805f9b34fb', 1712 'properties': gatt_characteristic['property_write'] | 1713 gatt_characteristic['property_indicate'], 1714 'permissions': gatt_characteristic['permission_write_encrypted_mitm'], 1715 'value_type': gatt_characteristic_value_format['sint8'], 1716 'value': 1, 1717 'descriptors': [{ 1718 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1719 }] 1720 }, { 1721 'uuid': '00002b25-0000-1000-8000-00805f9b34fb', 1722 'properties': gatt_characteristic['property_write'] | 1723 gatt_characteristic['property_indicate'], 1724 'permissions': gatt_characteristic['permission_write_encrypted_mitm'], 1725 'value_type': gatt_characteristic_value_format['sint8'], 1726 'value': 1, 1727 'descriptors': [{ 1728 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1729 }] 1730 }, { 1731 'uuid': '00002b26-0000-1000-8000-00805f9b34fb', 1732 'properties': gatt_characteristic['property_notify'], 1733 'permissions': 0x0, 1734 'value_type': gatt_characteristic_value_format['sint8'], 1735 'value': 1, 1736 'descriptors': [{ 1737 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1738 }] 1739 }, { 1740 'uuid': '00002b27-0000-1000-8000-00805f9b34fb', 1741 'properties': gatt_characteristic['property_write'] | 1742 gatt_characteristic['property_indicate'], 1743 'permissions': gatt_characteristic['permission_write_encrypted_mitm'], 1744 'value_type': gatt_characteristic_value_format['sint8'], 1745 'value': 1, 1746 'descriptors': [{ 1747 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1748 }] 1749 }, { 1750 'uuid': '00002b28-0000-1000-8000-00805f9b34fb', 1751 'properties': gatt_characteristic['property_notify'], 1752 'permissions': 0x0, 1753 'value_type': gatt_characteristic_value_format['sint8'], 1754 'value': 1, 1755 'descriptors': [{ 1756 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1757 }] 1758 } 1759 ] 1760 }] 1761} 1762 1763# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.internet_protocol_support.xml 1764INTERNET_PROTOCOL_SUPPORT_SERVICE = { 1765 'services': [{ 1766 'uuid': '00001820-0000-1000-8000-00805f9b34fb', 1767 'type': gatt_service_types['primary'], 1768 }] 1769} 1770 1771# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.link_loss.xml 1772LINK_LOSS_SERVICE = { 1773 'services': [{ 1774 'uuid': '00001803-0000-1000-8000-00805f9b34fb', 1775 'type': gatt_service_types['primary'], 1776 'characteristics': [{ 1777 'uuid': '00002a06-0000-1000-8000-00805f9b34fb', 1778 'properties': gatt_characteristic['property_write'] | 1779 gatt_characteristic['property_read'], 1780 'permissions': gatt_characteristic['permission_read'] | 1781 gatt_characteristic['permission_write'], 1782 'value_type': gatt_characteristic_value_format['string'], 1783 'value': 'test', 1784 }] 1785 }] 1786} 1787 1788# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.location_and_navigation.xml 1789LOCATION_AND_NAVIGATION_SERVICE = { 1790 'services': [{ 1791 'uuid': '00001819-0000-1000-8000-00805f9b34fb', 1792 'type': gatt_service_types['primary'], 1793 'characteristics': [{ 1794 'uuid': '00002a6a-0000-1000-8000-00805f9b34fb', 1795 'properties': gatt_characteristic['property_read'], 1796 'permissions': gatt_characteristic['permission_read'], 1797 'value_type': gatt_characteristic_value_format['string'], 1798 'value': 'test', 1799 }, { 1800 'uuid': '00002a67-0000-1000-8000-00805f9b34fb', 1801 'properties': gatt_characteristic['property_notify'], 1802 'permissions': 0x0, 1803 'value_type': gatt_characteristic_value_format['string'], 1804 'value': 'body', 1805 'descriptors': [{ 1806 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1807 }] 1808 }, { 1809 'uuid': '00002a69-0000-1000-8000-00805f9b34fb', 1810 'properties': gatt_characteristic['property_read'], 1811 'permissions': gatt_characteristic['permission_read'], 1812 'value_type': gatt_characteristic_value_format['sint8'], 1813 'value': 1, 1814 }, { 1815 'uuid': '00002a6b-0000-1000-8000-00805f9b34fb', 1816 'properties': gatt_characteristic['property_write'] | 1817 gatt_characteristic['property_indicate'], 1818 'permissions': gatt_characteristic['permission_write'], 1819 'value_type': gatt_characteristic_value_format['sint8'], 1820 'value': 1, 1821 'descriptors': [{ 1822 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1823 }] 1824 }, { 1825 'uuid': '00002a68-0000-1000-8000-00805f9b34fb', 1826 'properties': gatt_characteristic['property_notify'], 1827 'permissions': 0x0, 1828 'value_type': gatt_characteristic_value_format['sint8'], 1829 'value': 1, 1830 'descriptors': [{ 1831 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1832 }] 1833 }, 1834 ] 1835 }] 1836} 1837 1838# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.mesh_provisioning.xml 1839MESH_PROVISIONING_SERVICE = { 1840 'services': [{ 1841 'uuid': '00001827-0000-1000-8000-00805f9b34fb', 1842 'type': gatt_service_types['primary'], 1843 'characteristics': [{ 1844 'uuid': '00002adb-0000-1000-8000-00805f9b34fb', 1845 'properties': gatt_characteristic['property_write_no_response'], 1846 'permissions': 0x0, 1847 'value_type': gatt_characteristic_value_format['string'], 1848 'value': 'test', 1849 }, { 1850 'uuid': '00002adc-0000-1000-8000-00805f9b34fb', 1851 'properties': gatt_characteristic['property_notify'], 1852 'permissions': 0x0, 1853 'value_type': gatt_characteristic_value_format['sint8'], 1854 'descriptors': [{ 1855 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1856 }] 1857 }, 1858 ] 1859 }] 1860} 1861 1862# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.mesh_proxy.xml 1863MESH_PROXY_SERVICE = { 1864 'services': [{ 1865 'uuid': '00001828-0000-1000-8000-00805f9b34fb', 1866 'type': gatt_service_types['primary'], 1867 'characteristics': [{ 1868 'uuid': '00002add-0000-1000-8000-00805f9b34fb', 1869 'properties': gatt_characteristic['property_write_no_response'], 1870 'permissions': 0x0, 1871 'value_type': gatt_characteristic_value_format['string'], 1872 'value': 'test', 1873 }, { 1874 'uuid': '00002ade-0000-1000-8000-00805f9b34fb', 1875 'properties': gatt_characteristic['property_notify'], 1876 'permissions': 0x0, 1877 'value_type': gatt_characteristic_value_format['sint8'], 1878 'descriptors': [{ 1879 'uuid': gatt_char_desc_uuids['client_char_cfg'] 1880 }] 1881 }, 1882 ] 1883 }] 1884} 1885 1886# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.next_dst_change.xml 1887NEXT_DST_CHANGE_SERVICE = { 1888 'services': [{ 1889 'uuid': '00001807-0000-1000-8000-00805f9b34fb', 1890 'type': gatt_service_types['primary'], 1891 'characteristics': [{ 1892 'uuid': '00002a11-0000-1000-8000-00805f9b34fb', 1893 'properties': gatt_characteristic['property_read'], 1894 'permissions': 0x0, 1895 'value_type': gatt_characteristic_value_format['sint32'], 1896 'value': 1549903904, 1897 } 1898 ] 1899 }] 1900} 1901 1902# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.object_transfer.xml 1903OBJECT_TRANSFER_SERVICE = { 1904 'services': [{ 1905 'uuid': '00001825-0000-1000-8000-00805f9b34fb', 1906 'type': gatt_service_types['primary'], 1907 'characteristics': [{ 1908 'uuid': '00002abd-0000-1000-8000-00805f9b34fb', 1909 'properties': gatt_characteristic['property_read'], 1910 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1911 'value_type': gatt_characteristic_value_format['sint8'], 1912 'value': 0, 1913 }, { 1914 'uuid': '00002abe-0000-1000-8000-00805f9b34fb', 1915 'properties': gatt_characteristic['property_write'], 1916 'permissions': gatt_characteristic['permission_write_encrypted_mitm'], 1917 'value_type': gatt_characteristic_value_format['sint8'], 1918 'value': 0, 1919 }, { 1920 'uuid': '00002abf-0000-1000-8000-00805f9b34fb', 1921 'properties': gatt_characteristic['property_read'], 1922 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1923 'value_type': gatt_characteristic_value_format['sint8'], 1924 'value': 0, 1925 }, { 1926 'uuid': '00002ac0-0000-1000-8000-00805f9b34fb', 1927 'properties': gatt_characteristic['property_read'], 1928 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1929 'value_type': gatt_characteristic_value_format['sint8'], 1930 'value': 0, 1931 }, { 1932 'uuid': '00002ac1-0000-1000-8000-00805f9b34fb', 1933 'properties': gatt_characteristic['property_read'], 1934 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1935 'value_type': gatt_characteristic_value_format['sint8'], 1936 'value': 0, 1937 }, { 1938 'uuid': '00002ac2-0000-1000-8000-00805f9b34fb', 1939 'properties': gatt_characteristic['property_read'], 1940 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1941 'value_type': gatt_characteristic_value_format['sint8'], 1942 'value': 0, 1943 }, { 1944 'uuid': '00002ac3-0000-1000-8000-00805f9b34fb', 1945 'properties': gatt_characteristic['property_read'], 1946 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1947 'value_type': gatt_characteristic_value_format['sint8'], 1948 'value': 0, 1949 }, { 1950 'uuid': '00002ac4-0000-1000-8000-00805f9b34fb', 1951 'properties': gatt_characteristic['property_read'], 1952 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1953 'value_type': gatt_characteristic_value_format['sint8'], 1954 'value': 0, 1955 }, { 1956 'uuid': '00002ac5-0000-1000-8000-00805f9b34fb', 1957 'properties': gatt_characteristic['property_write'] | 1958 gatt_characteristic['property_indicate'], 1959 'permissions': gatt_characteristic['permission_write_encrypted_mitm'], 1960 'value_type': gatt_characteristic_value_format['sint8'], 1961 'value': 0, 1962 }, { 1963 'uuid': '00002ac6-0000-1000-8000-00805f9b34fb', 1964 'properties': gatt_characteristic['property_write'] | 1965 gatt_characteristic['property_indicate'], 1966 'permissions': gatt_characteristic['permission_write_encrypted_mitm'], 1967 'value_type': gatt_characteristic_value_format['sint8'], 1968 'value': 0, 1969 }, { 1970 'uuid': '00002ac7-0000-1000-8000-00805f9b34fb', 1971 'properties': gatt_characteristic['property_write'] | 1972 gatt_characteristic['property_read'], 1973 'permissions': gatt_characteristic['permission_write_encrypted_mitm'] | 1974 gatt_characteristic['permission_read_encrypted_mitm'], 1975 'value_type': gatt_characteristic_value_format['sint8'], 1976 'value': 0, 1977 }, { 1978 'uuid': '00002ac8-0000-1000-8000-00805f9b34fb', 1979 'properties': gatt_characteristic['property_indicate'], 1980 'permissions': gatt_characteristic['permission_read_encrypted_mitm'], 1981 'value_type': gatt_characteristic_value_format['sint8'], 1982 'value': 0, 1983 }] 1984 }] 1985} 1986 1987# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.phone_alert_status.xml 1988PHONE_ALERT_STATUS_SERVICE = { 1989 'services': [{ 1990 'uuid': '0000180e-0000-1000-8000-00805f9b34fb', 1991 'type': gatt_service_types['primary'], 1992 'characteristics': [{ 1993 'uuid': '00002a3f-0000-1000-8000-00805f9b34fb', 1994 'properties': gatt_characteristic['property_read'] | 1995 gatt_characteristic['property_notify'], 1996 'permissions': 0x0, 1997 'value_type': gatt_characteristic_value_format['string'], 1998 'value': 'test', 1999 'descriptors': [{ 2000 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2001 }] 2002 }, { 2003 'uuid': '00002a41-0000-1000-8000-00805f9b34fb', 2004 'properties': gatt_characteristic['property_read'] | 2005 gatt_characteristic['property_notify'], 2006 'permissions': 0x0, 2007 'value_type': gatt_characteristic_value_format['sint8'], 2008 'descriptors': [{ 2009 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2010 }] 2011 }, { 2012 'uuid': '00002a40-0000-1000-8000-00805f9b34fb', 2013 'properties': gatt_characteristic['property_write_no_response'], 2014 'permissions': 0x0, 2015 'value_type': gatt_characteristic_value_format['sint8'], 2016 }, 2017 ] 2018 }] 2019} 2020 2021# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.pulse_oximeter.xml 2022PULSE_OXIMETER_SERVICE = { 2023 'services': [{ 2024 'uuid': '00001822-0000-1000-8000-00805f9b34fb', 2025 'type': gatt_service_types['primary'], 2026 'characteristics': [{ 2027 'uuid': '00002a5e-0000-1000-8000-00805f9b34fb', 2028 'properties': gatt_characteristic['property_indicate'], 2029 'permissions': 0x0, 2030 'value_type': gatt_characteristic_value_format['string'], 2031 'value': 'test', 2032 'descriptors': [{ 2033 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2034 }] 2035 }, { 2036 'uuid': '00002a5f-0000-1000-8000-00805f9b34fb', 2037 'properties': gatt_characteristic['property_notify'], 2038 'permissions': 0x0, 2039 'value_type': gatt_characteristic_value_format['sint8'], 2040 'descriptors': [{ 2041 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2042 }] 2043 }, { 2044 'uuid': '00002a60-0000-1000-8000-00805f9b34fb', 2045 'properties': gatt_characteristic['property_read'], 2046 'permissions': 0x0, 2047 'value_type': gatt_characteristic_value_format['sint8'], 2048 }, { 2049 'uuid': '00002a52-0000-1000-8000-00805f9b34fb', 2050 'properties': gatt_characteristic['property_write'] | 2051 gatt_characteristic['property_indicate'], 2052 'permissions': 0x0, 2053 'value_type': gatt_characteristic_value_format['sint8'], 2054 'descriptors': [{ 2055 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2056 }] 2057 } 2058 ] 2059 }] 2060} 2061 2062# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.reconnection_configuration.xml 2063RECONNECTION_CONFIGURATION_SERVICE = { 2064 'services': [{ 2065 'uuid': '00001829-0000-1000-8000-00805f9b34fb', 2066 'type': gatt_service_types['primary'], 2067 'characteristics': [{ 2068 'uuid': '00002b1d-0000-1000-8000-00805f9b34fb', 2069 'properties': gatt_characteristic['property_read'], 2070 'permissions': 0x0, 2071 'value_type': gatt_characteristic_value_format['string'], 2072 'value': 'test', 2073 }, { 2074 'uuid': '00002b1e-0000-1000-8000-00805f9b34fb', 2075 'properties': gatt_characteristic['property_notify'] | 2076 gatt_characteristic['property_read'], 2077 'permissions': 0x0, 2078 'value_type': gatt_characteristic_value_format['sint8'], 2079 'descriptors': [{ 2080 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2081 }] 2082 }, { 2083 'uuid': '00002b1f-0000-1000-8000-00805f9b34fb', 2084 'properties': gatt_characteristic['property_read'] | 2085 gatt_characteristic['property_write'] | 2086 gatt_characteristic['property_indicate'], 2087 'permissions': 0x0, 2088 'value_type': gatt_characteristic_value_format['sint8'], 2089 'descriptors': [{ 2090 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2091 }] 2092 }] 2093 }] 2094} 2095 2096# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.reference_time_update.xml 2097REFERENCE_TIME_UPDATE_SERVICE = { 2098 'services': [{ 2099 'uuid': '00001806-0000-1000-8000-00805f9b34fb', 2100 'type': gatt_service_types['primary'], 2101 'characteristics': [{ 2102 'uuid': '00002a16-0000-1000-8000-00805f9b34fb', 2103 'properties': gatt_characteristic['property_write_no_response'], 2104 'permissions': 0x0, 2105 'value_type': gatt_characteristic_value_format['string'], 2106 'value': 'test', 2107 }, { 2108 'uuid': '00002a17-0000-1000-8000-00805f9b34fb', 2109 'properties': gatt_characteristic['property_read'], 2110 'permissions': 0x0, 2111 'value_type': gatt_characteristic_value_format['sint8'], 2112 }] 2113 }] 2114} 2115 2116# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.running_speed_and_cadence.xml 2117RUNNING_SPEED_AND_CADENCE_SERVICE = { 2118 'services': [{ 2119 'uuid': '00001814-0000-1000-8000-00805f9b34fb', 2120 'type': gatt_service_types['primary'], 2121 'characteristics': [{ 2122 'uuid': '00002a53-0000-1000-8000-00805f9b34fb', 2123 'properties': gatt_characteristic['property_notify'], 2124 'permissions': 0x0, 2125 'value_type': gatt_characteristic_value_format['string'], 2126 'value': 'test', 2127 'descriptors': [{ 2128 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2129 }] 2130 }, { 2131 'uuid': '00002a54-0000-1000-8000-00805f9b34fb', 2132 'properties': gatt_characteristic['property_read'], 2133 'permissions': 0x0, 2134 'value_type': gatt_characteristic_value_format['sint8'], 2135 }, { 2136 'uuid': '00002a5d-0000-1000-8000-00805f9b34fb', 2137 'properties': gatt_characteristic['property_read'], 2138 'permissions': 0x0, 2139 'value_type': gatt_characteristic_value_format['sint8'], 2140 }, { 2141 'uuid': '00002a55-0000-1000-8000-00805f9b34fb', 2142 'properties': gatt_characteristic['property_write'] | 2143 gatt_characteristic['property_indicate'], 2144 'permissions': 0x0, 2145 'value_type': gatt_characteristic_value_format['sint8'], 2146 'descriptors': [{ 2147 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2148 }] 2149 }] 2150 }] 2151} 2152 2153# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.scan_parameters.xml 2154SCAN_PARAMETERS_SERVICE = { 2155 'services': [{ 2156 'uuid': '00001813-0000-1000-8000-00805f9b34fb', 2157 'type': gatt_service_types['primary'], 2158 'characteristics': [{ 2159 'uuid': '00002a4f-0000-1000-8000-00805f9b34fb', 2160 'properties': gatt_characteristic['property_write_no_response'], 2161 'permissions': 0x0, 2162 'value_type': gatt_characteristic_value_format['sint8'], 2163 }, { 2164 'uuid': '00002a31-0000-1000-8000-00805f9b34fb', 2165 'properties': gatt_characteristic['property_notify'], 2166 'permissions': 0x0, 2167 'value_type': gatt_characteristic_value_format['sint8'], 2168 'descriptors': [{ 2169 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2170 }] 2171 }] 2172 }] 2173} 2174 2175# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.transport_discovery.xml 2176TRANSPORT_DISCOVERY_SERVICE = { 2177 'services': [{ 2178 'uuid': '00001824-0000-1000-8000-00805f9b34fb', 2179 'type': gatt_service_types['primary'], 2180 'characteristics': [{ 2181 'uuid': '00002abc-0000-1000-8000-00805f9b34fb', 2182 'properties': gatt_characteristic['property_indicate'] | 2183 gatt_characteristic['property_write'], 2184 'permissions': 0x0, 2185 'value_type': gatt_characteristic_value_format['sint8'], 2186 'value': 1, 2187 'descriptors': [{ 2188 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2189 }] 2190 } 2191 ] 2192 }] 2193} 2194 2195# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.tx_power.xml 2196TX_POWER_SERVICE = { 2197 'services': [{ 2198 'uuid': '00001804-0000-1000-8000-00805f9b34fb', 2199 'type': gatt_service_types['primary'], 2200 'characteristics': [{ 2201 'uuid': '00002a07-0000-1000-8000-00805f9b34fb', 2202 'properties': gatt_characteristic['property_read'], 2203 'permissions': 0x0, 2204 'value_type': gatt_characteristic_value_format['uint8'], 2205 'value': -24, 2206 }] 2207 }] 2208} 2209 2210# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.user_data.xml 2211USER_DATA_SERVICE = { 2212 'services': [{ 2213 'uuid': '0000181c-0000-1000-8000-00805f9b34fb', 2214 'type': gatt_service_types['primary'], 2215 'characteristics': [{ 2216 'uuid': '00002a8a-0000-1000-8000-00805f9b34fb', 2217 'properties': gatt_characteristic['property_read'] | 2218 gatt_characteristic['property_write'], 2219 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2220 gatt_characteristic['permission_write_encrypted_mitm'], 2221 'value_type': gatt_characteristic_value_format['sint8'], 2222 'value': 10, 2223 }, { 2224 'uuid': '00002a90-0000-1000-8000-00805f9b34fb', 2225 'properties': gatt_characteristic['property_read'] | 2226 gatt_characteristic['property_write'], 2227 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2228 gatt_characteristic['permission_write_encrypted_mitm'], 2229 'value_type': gatt_characteristic_value_format['sint8'], 2230 'value': 10, 2231 }, { 2232 'uuid': '00002a87-0000-1000-8000-00805f9b34fb', 2233 'properties': gatt_characteristic['property_read'] | 2234 gatt_characteristic['property_write'], 2235 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2236 gatt_characteristic['permission_write_encrypted_mitm'], 2237 'value_type': gatt_characteristic_value_format['sint8'], 2238 'value': 10, 2239 }, { 2240 'uuid': '00002a80-0000-1000-8000-00805f9b34fb', 2241 'properties': gatt_characteristic['property_read'] | 2242 gatt_characteristic['property_write'], 2243 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2244 gatt_characteristic['permission_write_encrypted_mitm'], 2245 'value_type': gatt_characteristic_value_format['sint8'], 2246 'value': 10, 2247 }, { 2248 'uuid': '00002a85-0000-1000-8000-00805f9b34fb', 2249 'properties': gatt_characteristic['property_read'] | 2250 gatt_characteristic['property_write'], 2251 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2252 gatt_characteristic['permission_write_encrypted_mitm'], 2253 'value_type': gatt_characteristic_value_format['sint8'], 2254 'value': 10, 2255 }, { 2256 'uuid': '00002a8c-0000-1000-8000-00805f9b34fb', 2257 'properties': gatt_characteristic['property_read'] | 2258 gatt_characteristic['property_write'], 2259 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2260 gatt_characteristic['permission_write_encrypted_mitm'], 2261 'value_type': gatt_characteristic_value_format['sint8'], 2262 'value': 10, 2263 }, { 2264 'uuid': '00002a98-0000-1000-8000-00805f9b34fb', 2265 'properties': gatt_characteristic['property_read'] | 2266 gatt_characteristic['property_write'], 2267 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2268 gatt_characteristic['permission_write_encrypted_mitm'], 2269 'value_type': gatt_characteristic_value_format['sint8'], 2270 'value': 10, 2271 }, { 2272 'uuid': '00002a8e-0000-1000-8000-00805f9b34fb', 2273 'properties': gatt_characteristic['property_read'] | 2274 gatt_characteristic['property_write'], 2275 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2276 gatt_characteristic['permission_write_encrypted_mitm'], 2277 'value_type': gatt_characteristic_value_format['sint8'], 2278 'value': 10, 2279 }, { 2280 'uuid': '00002a96-0000-1000-8000-00805f9b34fb', 2281 'properties': gatt_characteristic['property_read'] | 2282 gatt_characteristic['property_write'], 2283 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2284 gatt_characteristic['permission_write_encrypted_mitm'], 2285 'value_type': gatt_characteristic_value_format['sint8'], 2286 'value': 10, 2287 }, { 2288 'uuid': '00002a92-0000-1000-8000-00805f9b34fb', 2289 'properties': gatt_characteristic['property_read'] | 2290 gatt_characteristic['property_write'], 2291 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2292 gatt_characteristic['permission_write_encrypted_mitm'], 2293 'value_type': gatt_characteristic_value_format['sint8'], 2294 'value': 10, 2295 }, { 2296 'uuid': '00002a91-0000-1000-8000-00805f9b34fb', 2297 'properties': gatt_characteristic['property_read'] | 2298 gatt_characteristic['property_write'], 2299 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2300 gatt_characteristic['permission_write_encrypted_mitm'], 2301 'value_type': gatt_characteristic_value_format['sint8'], 2302 'value': 10, 2303 }, { 2304 'uuid': '00002a7f-0000-1000-8000-00805f9b34fb', 2305 'properties': gatt_characteristic['property_read'] | 2306 gatt_characteristic['property_write'], 2307 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2308 gatt_characteristic['permission_write_encrypted_mitm'], 2309 'value_type': gatt_characteristic_value_format['sint8'], 2310 'value': 10, 2311 }, { 2312 'uuid': '00002a83-0000-1000-8000-00805f9b34fb', 2313 'properties': gatt_characteristic['property_read'] | 2314 gatt_characteristic['property_write'], 2315 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2316 gatt_characteristic['permission_write_encrypted_mitm'], 2317 'value_type': gatt_characteristic_value_format['sint8'], 2318 'value': 10, 2319 }, { 2320 'uuid': '00002a93-0000-1000-8000-00805f9b34fb', 2321 'properties': gatt_characteristic['property_read'] | 2322 gatt_characteristic['property_write'], 2323 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2324 gatt_characteristic['permission_write_encrypted_mitm'], 2325 'value_type': gatt_characteristic_value_format['sint8'], 2326 'value': 10, 2327 }, { 2328 'uuid': '00002a86-0000-1000-8000-00805f9b34fb', 2329 'properties': gatt_characteristic['property_read'] | 2330 gatt_characteristic['property_write'], 2331 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2332 gatt_characteristic['permission_write_encrypted_mitm'], 2333 'value_type': gatt_characteristic_value_format['sint8'], 2334 'value': 10, 2335 }, { 2336 'uuid': '00002a97-0000-1000-8000-00805f9b34fb', 2337 'properties': gatt_characteristic['property_read'] | 2338 gatt_characteristic['property_write'], 2339 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2340 gatt_characteristic['permission_write_encrypted_mitm'], 2341 'value_type': gatt_characteristic_value_format['sint8'], 2342 'value': 10, 2343 }, { 2344 'uuid': '00002a8f-0000-1000-8000-00805f9b34fb', 2345 'properties': gatt_characteristic['property_read'] | 2346 gatt_characteristic['property_write'], 2347 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2348 gatt_characteristic['permission_write_encrypted_mitm'], 2349 'value_type': gatt_characteristic_value_format['sint8'], 2350 'value': 10, 2351 }, { 2352 'uuid': '00002a88-0000-1000-8000-00805f9b34fb', 2353 'properties': gatt_characteristic['property_read'] | 2354 gatt_characteristic['property_write'], 2355 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2356 gatt_characteristic['permission_write_encrypted_mitm'], 2357 'value_type': gatt_characteristic_value_format['sint8'], 2358 'value': 10, 2359 }, { 2360 'uuid': '00002a89-0000-1000-8000-00805f9b34fb', 2361 'properties': gatt_characteristic['property_read'] | 2362 gatt_characteristic['property_write'], 2363 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2364 gatt_characteristic['permission_write_encrypted_mitm'], 2365 'value_type': gatt_characteristic_value_format['sint8'], 2366 'value': 10, 2367 }, { 2368 'uuid': '00002a7e-0000-1000-8000-00805f9b34fb', 2369 'properties': gatt_characteristic['property_read'] | 2370 gatt_characteristic['property_write'], 2371 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2372 gatt_characteristic['permission_write_encrypted_mitm'], 2373 'value_type': gatt_characteristic_value_format['sint8'], 2374 'value': 10, 2375 }, { 2376 'uuid': '00002a84-0000-1000-8000-00805f9b34fb', 2377 'properties': gatt_characteristic['property_read'] | 2378 gatt_characteristic['property_write'], 2379 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2380 gatt_characteristic['permission_write_encrypted_mitm'], 2381 'value_type': gatt_characteristic_value_format['sint8'], 2382 'value': 10, 2383 }, { 2384 'uuid': '00002a81-0000-1000-8000-00805f9b34fb', 2385 'properties': gatt_characteristic['property_read'] | 2386 gatt_characteristic['property_write'], 2387 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2388 gatt_characteristic['permission_write_encrypted_mitm'], 2389 'value_type': gatt_characteristic_value_format['sint8'], 2390 'value': 10, 2391 }, { 2392 'uuid': '00002a82-0000-1000-8000-00805f9b34fb', 2393 'properties': gatt_characteristic['property_read'] | 2394 gatt_characteristic['property_write'], 2395 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2396 gatt_characteristic['permission_write_encrypted_mitm'], 2397 'value_type': gatt_characteristic_value_format['sint8'], 2398 'value': 10, 2399 }, { 2400 'uuid': '00002a8b-0000-1000-8000-00805f9b34fb', 2401 'properties': gatt_characteristic['property_read'] | 2402 gatt_characteristic['property_write'], 2403 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2404 gatt_characteristic['permission_write_encrypted_mitm'], 2405 'value_type': gatt_characteristic_value_format['sint8'], 2406 'value': 10, 2407 }, { 2408 'uuid': '00002a94-0000-1000-8000-00805f9b34fb', 2409 'properties': gatt_characteristic['property_read'] | 2410 gatt_characteristic['property_write'], 2411 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2412 gatt_characteristic['permission_write_encrypted_mitm'], 2413 'value_type': gatt_characteristic_value_format['sint8'], 2414 'value': 10, 2415 }, { 2416 'uuid': '00002a95-0000-1000-8000-00805f9b34fb', 2417 'properties': gatt_characteristic['property_read'] | 2418 gatt_characteristic['property_write'], 2419 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2420 gatt_characteristic['permission_write_encrypted_mitm'], 2421 'value_type': gatt_characteristic_value_format['sint8'], 2422 'value': 10, 2423 }, { 2424 'uuid': '00002a99-0000-1000-8000-00805f9b34fb', 2425 'properties': gatt_characteristic['property_read'] | 2426 gatt_characteristic['property_write'] | 2427 gatt_characteristic['property_notify'], 2428 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2429 gatt_characteristic['permission_write_encrypted_mitm'], 2430 'value_type': gatt_characteristic_value_format['sint8'], 2431 'value': 10, 2432 'descriptors': [{ 2433 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2434 }] 2435 }, { 2436 'uuid': '00002a9a-0000-1000-8000-00805f9b34fb', 2437 'properties': gatt_characteristic['property_read'] | 2438 gatt_characteristic['property_write'], 2439 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2440 gatt_characteristic['permission_write_encrypted_mitm'], 2441 'value_type': gatt_characteristic_value_format['sint8'], 2442 'value': 10, 2443 }, { 2444 'uuid': '00002a9f-0000-1000-8000-00805f9b34fb', 2445 'properties': gatt_characteristic['property_indicate'] | 2446 gatt_characteristic['property_write'], 2447 'permissions': gatt_characteristic['permission_write_encrypted_mitm'], 2448 'value_type': gatt_characteristic_value_format['sint8'], 2449 'value': 10, 2450 'descriptors': [{ 2451 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2452 }] 2453 }, { 2454 'uuid': '00002aa2-0000-1000-8000-00805f9b34fb', 2455 'properties': gatt_characteristic['property_read'] | 2456 gatt_characteristic['property_write'], 2457 'permissions': gatt_characteristic['permission_read_encrypted_mitm'] | 2458 gatt_characteristic['permission_write_encrypted_mitm'], 2459 'value_type': gatt_characteristic_value_format['sint8'], 2460 'value': 10, 2461 }] 2462 }] 2463} 2464 2465# https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.weight_scale.xml 2466WEIGHT_SCALE_SERVICE = { 2467 'services': [{ 2468 'uuid': '0000181d-0000-1000-8000-00805f9b34fb', 2469 'type': gatt_service_types['primary'], 2470 'characteristics': [{ 2471 'uuid': '00002a9e-0000-1000-8000-00805f9b34fb', 2472 'properties': gatt_characteristic['property_read'], 2473 'permissions': 0x0, 2474 'value_type': gatt_characteristic_value_format['sint8'], 2475 'value': 1 2476 }, { 2477 'uuid': '00002a9d-0000-1000-8000-00805f9b34fb', 2478 'properties': gatt_characteristic['property_indicate'], 2479 'permissions': 0x0, 2480 'value_type': gatt_characteristic_value_format['sint8'], 2481 'value': 100, 2482 'descriptors': [{ 2483 'uuid': gatt_char_desc_uuids['client_char_cfg'] 2484 }] 2485 } 2486 ] 2487 }] 2488} 2489 2490 2491### End SIG defined services ###