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