• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#/usr/bin/env python3.4
2#
3# Copyright (C) 2016 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
17from enum import Enum
18from enum import IntEnum
19
20class GattCbErr(Enum):
21    CHAR_WRITE_REQ_ERR = "Characteristic Write Request event not found. Expected {}"
22    CHAR_EXEC_WRITE_ERR = "Characteristic Execute Write event not found. Expected {}"
23    CHAR_WRITE_ERR = "Characteristic Write event not found. Expected {}"
24    DESC_WRITE_REQ_ERR = "Descriptor Write Request event not found. Expected {}"
25    DESC_WRITE_ERR = "Descriptor Write event not found. Expected {}"
26    CHAR_READ_ERR = "Characteristic Read event not found. Expected {}"
27    CHAR_READ_REQ_ERR = "Characteristic Read Request not found. Expected {}"
28    DESC_READ_ERR = "Descriptor Read event not found. Expected {}"
29    DESC_READ_REQ_ERR = "Descriptor Read Request event not found. Expected {}"
30    RD_REMOTE_RSSI_ERR = "Read Remote RSSI event not found. Expected {}"
31    GATT_SERV_DISC_ERR = "GATT Services Discovered event not found. Expected {}"
32    SERV_ADDED_ERR = "Service Added event not found. Expected {}"
33    MTU_CHANGED_ERR = "MTU Changed event not found. Expected {}"
34    GATT_CONN_CHANGE_ERR = "GATT Connection Changed event not found. Expected {}"
35    CHAR_CHANGE_ERR = "GATT Characteristic Changed event not fond. Expected {}"
36
37class GattCbStrings(Enum):
38    CHAR_WRITE_REQ = "GattServer{}onCharacteristicWriteRequest"
39    CHAR_EXEC_WRITE = "GattServer{}onExecuteWrite"
40    CHAR_WRITE = "GattConnect{}onCharacteristicWrite"
41    DESC_WRITE_REQ = "GattServer{}onDescriptorWriteRequest"
42    DESC_WRITE = "GattConnect{}onDescriptorWrite"
43    CHAR_READ = "GattConnect{}onCharacteristicRead"
44    CHAR_READ_REQ = "GattServer{}onCharacteristicReadRequest"
45    DESC_READ = "GattConnect{}onDescriptorRead"
46    DESC_READ_REQ = "GattServer{}onDescriptorReadRequest"
47    RD_REMOTE_RSSI = "GattConnect{}onReadRemoteRssi"
48    GATT_SERV_DISC = "GattConnect{}onServicesDiscovered"
49    SERV_ADDED = "GattServer{}onServiceAdded"
50    MTU_CHANGED = "GattConnect{}onMtuChanged"
51    GATT_CONN_CHANGE = "GattConnect{}onConnectionStateChange"
52    CHAR_CHANGE = "GattConnect{}onCharacteristicChanged"
53
54
55class GattEvent(Enum):
56    CHAR_WRITE_REQ = {"evt": GattCbStrings.CHAR_WRITE_REQ.value,
57                      "err": GattCbErr.CHAR_WRITE_REQ_ERR.value}
58    CHAR_EXEC_WRITE = {"evt": GattCbStrings.CHAR_EXEC_WRITE.value,
59                       "err": GattCbErr.CHAR_EXEC_WRITE_ERR.value}
60    CHAR_WRITE = {"evt": GattCbStrings.CHAR_WRITE.value,
61                  "err": GattCbErr.CHAR_WRITE_ERR.value}
62    DESC_WRITE_REQ = {"evt": GattCbStrings.DESC_WRITE_REQ.value,
63                      "err": GattCbErr.DESC_WRITE_REQ_ERR.value}
64    DESC_WRITE = {"evt": GattCbStrings.DESC_WRITE.value,
65                  "err": GattCbErr.DESC_WRITE_ERR.value}
66    CHAR_READ = {"evt": GattCbStrings.CHAR_READ.value,
67                 "err": GattCbErr.CHAR_READ_ERR.value}
68    CHAR_READ_REQ = {"evt": GattCbStrings.CHAR_READ_REQ.value,
69                     "err": GattCbErr.CHAR_READ_REQ_ERR.value}
70    DESC_READ = {"evt": GattCbStrings.DESC_READ.value,
71                 "err": GattCbErr.DESC_READ_ERR.value}
72    DESC_READ_REQ = {"evt": GattCbStrings.DESC_READ_REQ.value,
73                     "err": GattCbErr.DESC_READ_REQ_ERR.value}
74    RD_REMOTE_RSSI = {"evt": GattCbStrings.RD_REMOTE_RSSI.value,
75                      "err": GattCbErr.RD_REMOTE_RSSI_ERR.value}
76    GATT_SERV_DISC = {"evt": GattCbStrings.GATT_SERV_DISC.value,
77                      "err": GattCbErr.GATT_SERV_DISC_ERR.value}
78    SERV_ADDED = {"evt": GattCbStrings.SERV_ADDED.value,
79                  "err": GattCbErr.SERV_ADDED_ERR.value}
80    MTU_CHANGED = {"evt": GattCbStrings.MTU_CHANGED.value,
81                   "err": GattCbErr.MTU_CHANGED_ERR.value}
82    GATT_CONN_CHANGE = {"evt": GattCbStrings.GATT_CONN_CHANGE.value,
83                        "err": GattCbErr.GATT_CONN_CHANGE_ERR.value}
84    CHAR_CHANGE = {"evt": GattCbStrings.CHAR_CHANGE.value,
85                        "err": GattCbErr.CHAR_CHANGE_ERR.value}
86
87
88class GattConnectionState(Enum):
89    STATE_DISCONNECTED = 0
90    STATE_CONNECTING = 1
91    STATE_CONNECTED = 2
92    STATE_DISCONNECTING = 3
93
94
95class GattCharacteristic(Enum):
96    PROPERTY_BROADCAST = 0x01
97    PROPERTY_READ = 0x02
98    PROPERTY_WRITE_NO_RESPONSE = 0x04
99    PROPERTY_WRITE = 0x08
100    PROPERTY_NOTIFY = 0x10
101    PROPERTY_INDICATE = 0x20
102    PROPERTY_SIGNED_WRITE = 0x40
103    PROPERTY_EXTENDED_PROPS = 0x80
104    PERMISSION_READ = 0x01
105    PERMISSION_READ_ENCRYPTED = 0x02
106    PERMISSION_READ_ENCRYPTED_MITM = 0x04
107    PERMISSION_WRITE = 0x10
108    PERMISSION_WRITE_ENCRYPTED = 0x20
109    PERMISSION_WRITE_ENCRYPTED_MITM = 0x40
110    PERMISSION_WRITE_SIGNED = 0x80
111    PERMISSION_WRITE_SIGNED_MITM = 0x100
112    WRITE_TYPE_DEFAULT = 0x02
113    WRITE_TYPE_NO_RESPONSE = 0x01
114    WRITE_TYPE_SIGNED = 0x04
115    FORMAT_UINT8 = 0x11
116    FORMAT_UINT16 = 0x12
117    FORMAT_UINT32 = 0x14
118    FORMAT_SINT8 = 0x21
119    FORMAT_SINT16 = 0x22
120    FORMAT_SINT32 = 0x24
121    FORMAT_SFLOAT = 0x32
122    FORMAT_FLOAT = 0x34
123
124
125class GattDescriptor(Enum):
126    ENABLE_NOTIFICATION_VALUE = [0x01, 0x00]
127    ENABLE_INDICATION_VALUE = [0x02, 0x00]
128    DISABLE_NOTIFICATION_VALUE = [0x00, 0x00]
129    PERMISSION_READ = 0x01
130    PERMISSION_READ_ENCRYPTED = 0x02
131    PERMISSION_READ_ENCRYPTED_MITM = 0x04
132    PERMISSION_WRITE = 0x10
133    PERMISSION_WRITE_ENCRYPTED = 0x20
134    PERMISSION_WRITE_ENCRYPTED_MITM = 0x40
135    PERMISSION_WRITE_SIGNED = 0x80
136    PERMISSION_WRITE_SIGNED_MITM = 0x100
137
138
139class GattService(Enum):
140    SERVICE_TYPE_PRIMARY = 0
141    SERVICE_TYPE_SECONDARY = 1
142
143
144class GattConnectionPriority(Enum):
145    CONNECTION_PRIORITY_BALANCED = 0
146    CONNECTION_PRIORITY_HIGH = 1
147    CONNECTION_PRIORITY_LOW_POWER = 2
148
149
150class MtuSize(Enum):
151    MIN = 23
152    MAX = 217
153
154
155class BluetoothGatt(Enum):
156    GATT_SUCCESS = 0
157    GATT_FAILURE = 0x101
158
159
160class GattTransport(IntEnum):
161    TRANSPORT_AUTO = 0x00
162    TRANSPORT_BREDR = 0x01
163    TRANSPORT_LE = 0x02