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