User | Revision | Line number | New contents of line |
bediyap |
0:f6f434d9a03a
|
1
|
/*
|
bediyap |
0:f6f434d9a03a
|
2
|
Copyright (c) 2010 Peter Barrett
|
bediyap |
0:f6f434d9a03a
|
3
|
|
bediyap |
0:f6f434d9a03a
|
4
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
bediyap |
0:f6f434d9a03a
|
5
|
of this software and associated documentation files (the "Software"), to deal
|
bediyap |
0:f6f434d9a03a
|
6
|
in the Software without restriction, including without limitation the rights
|
bediyap |
0:f6f434d9a03a
|
7
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
bediyap |
0:f6f434d9a03a
|
8
|
copies of the Software, and to permit persons to whom the Software is
|
bediyap |
0:f6f434d9a03a
|
9
|
furnished to do so, subject to the following conditions:
|
bediyap |
0:f6f434d9a03a
|
10
|
|
bediyap |
0:f6f434d9a03a
|
11
|
The above copyright notice and this permission notice shall be included in
|
bediyap |
0:f6f434d9a03a
|
12
|
all copies or substantial portions of the Software.
|
bediyap |
0:f6f434d9a03a
|
13
|
|
bediyap |
0:f6f434d9a03a
|
14
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
bediyap |
0:f6f434d9a03a
|
15
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
bediyap |
0:f6f434d9a03a
|
16
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
bediyap |
0:f6f434d9a03a
|
17
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
bediyap |
0:f6f434d9a03a
|
18
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
bediyap |
0:f6f434d9a03a
|
19
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
bediyap |
0:f6f434d9a03a
|
20
|
THE SOFTWARE.
|
bediyap |
0:f6f434d9a03a
|
21
|
*/
|
bediyap |
0:f6f434d9a03a
|
22
|
|
bediyap |
0:f6f434d9a03a
|
23
|
#ifndef HCI_PRIVATE_H_INCLUDED
|
bediyap |
0:f6f434d9a03a
|
24
|
#define HCI_PRIVATE_H_INCLUDED
|
bediyap |
0:f6f434d9a03a
|
25
|
|
bediyap |
0:f6f434d9a03a
|
26
|
#define HCI_OP_INQUIRY 0x0401
|
bediyap |
0:f6f434d9a03a
|
27
|
#define HCI_OP_INQUIRY_CANCEL 0x0402
|
bediyap |
0:f6f434d9a03a
|
28
|
#define HCI_OP_EXIT_PERIODIC_INQ 0x0404
|
bediyap |
0:f6f434d9a03a
|
29
|
#define HCI_OP_CREATE_CONN 0x0405
|
bediyap |
0:f6f434d9a03a
|
30
|
#define HCI_OP_DISCONNECT 0x0406
|
bediyap |
0:f6f434d9a03a
|
31
|
#define HCI_OP_ADD_SCO 0x0407
|
bediyap |
0:f6f434d9a03a
|
32
|
#define HCI_OP_CREATE_CONN_CANCEL 0x0408
|
bediyap |
0:f6f434d9a03a
|
33
|
#define HCI_OP_ACCEPT_CONN_REQ 0x0409
|
bediyap |
0:f6f434d9a03a
|
34
|
#define HCI_OP_REJECT_CONN_REQ 0x040a
|
bediyap |
0:f6f434d9a03a
|
35
|
#define HCI_OP_LINK_KEY_REPLY 0x040b
|
bediyap |
0:f6f434d9a03a
|
36
|
#define HCI_OP_LINK_KEY_NEG_REPLY 0x040c
|
bediyap |
0:f6f434d9a03a
|
37
|
#define HCI_OP_PIN_CODE_REPLY 0x040d
|
bediyap |
0:f6f434d9a03a
|
38
|
#define HCI_OP_PIN_CODE_NEG_REPLY 0x040e
|
bediyap |
0:f6f434d9a03a
|
39
|
#define HCI_OP_CHANGE_CONN_PTYPE 0x040f
|
bediyap |
0:f6f434d9a03a
|
40
|
#define HCI_OP_AUTH_REQUESTED 0x0411
|
bediyap |
0:f6f434d9a03a
|
41
|
#define HCI_OP_SET_CONN_ENCRYPT 0x0413
|
bediyap |
0:f6f434d9a03a
|
42
|
#define HCI_OP_CHANGE_CONN_LINK_KEY 0x0415
|
bediyap |
0:f6f434d9a03a
|
43
|
#define HCI_OP_REMOTE_NAME_REQ 0x0419
|
bediyap |
0:f6f434d9a03a
|
44
|
#define HCI_OP_REMOTE_NAME_REQ_CANCEL 0x041a
|
bediyap |
0:f6f434d9a03a
|
45
|
#define HCI_OP_READ_REMOTE_FEATURES 0x041b
|
bediyap |
0:f6f434d9a03a
|
46
|
#define HCI_OP_READ_REMOTE_EXT_FEATURES 0x041c
|
bediyap |
0:f6f434d9a03a
|
47
|
#define HCI_OP_READ_REMOTE_VERSION 0x041d
|
bediyap |
0:f6f434d9a03a
|
48
|
#define HCI_OP_SETUP_SYNC_CONN 0x0428
|
bediyap |
0:f6f434d9a03a
|
49
|
#define HCI_OP_ACCEPT_SYNC_CONN_REQ 0x0429
|
bediyap |
0:f6f434d9a03a
|
50
|
#define HCI_OP_REJECT_SYNC_CONN_REQ 0x042a
|
bediyap |
0:f6f434d9a03a
|
51
|
|
bediyap |
0:f6f434d9a03a
|
52
|
#define HCI_OP_SNIFF_MODE 0x0803
|
bediyap |
0:f6f434d9a03a
|
53
|
#define HCI_OP_EXIT_SNIFF_MODE 0x0804
|
bediyap |
0:f6f434d9a03a
|
54
|
#define HCI_OP_ROLE_DISCOVERY 0x0809
|
bediyap |
0:f6f434d9a03a
|
55
|
#define HCI_OP_SWITCH_ROLE 0x080b
|
bediyap |
0:f6f434d9a03a
|
56
|
#define HCI_OP_READ_LINK_POLICY 0x080c
|
bediyap |
0:f6f434d9a03a
|
57
|
#define HCI_OP_WRITE_LINK_POLICY 0x080d
|
bediyap |
0:f6f434d9a03a
|
58
|
#define HCI_OP_READ_DEF_LINK_POLICY 0x080e
|
bediyap |
0:f6f434d9a03a
|
59
|
#define HCI_OP_WRITE_DEF_LINK_POLICY 0x080f
|
bediyap |
0:f6f434d9a03a
|
60
|
#define HCI_OP_SNIFF_SUBRATE 0x0811
|
bediyap |
0:f6f434d9a03a
|
61
|
|
bediyap |
0:f6f434d9a03a
|
62
|
|
bediyap |
0:f6f434d9a03a
|
63
|
#define HCI_OP_SET_EVENT_MASK 0x0c01
|
bediyap |
0:f6f434d9a03a
|
64
|
#define HCI_OP_RESET 0x0c03
|
bediyap |
0:f6f434d9a03a
|
65
|
#define HCI_OP_SET_EVENT_FLT 0x0c05
|
bediyap |
0:f6f434d9a03a
|
66
|
#define HCI_OP_WRITE_LOCAL_NAME 0x0c13
|
bediyap |
0:f6f434d9a03a
|
67
|
#define HCI_OP_READ_LOCAL_NAME 0x0c14
|
bediyap |
0:f6f434d9a03a
|
68
|
#define HCI_OP_WRITE_CA_TIMEOUT 0x0c16
|
bediyap |
0:f6f434d9a03a
|
69
|
#define HCI_OP_WRITE_PG_TIMEOUT 0x0c18
|
bediyap |
0:f6f434d9a03a
|
70
|
#define HCI_OP_WRITE_SCAN_ENABLE 0x0c1a
|
bediyap |
0:f6f434d9a03a
|
71
|
#define HCI_OP_READ_AUTH_ENABLE 0x0c1f
|
bediyap |
0:f6f434d9a03a
|
72
|
#define HCI_OP_WRITE_AUTH_ENABLE 0x0c20
|
bediyap |
0:f6f434d9a03a
|
73
|
#define HCI_OP_READ_ENCRYPT_MODE 0x0c21
|
bediyap |
0:f6f434d9a03a
|
74
|
#define HCI_OP_WRITE_ENCRYPT_MODE 0x0c22
|
bediyap |
0:f6f434d9a03a
|
75
|
#define ENCRYPT_DISABLED 0x00
|
bediyap |
0:f6f434d9a03a
|
76
|
#define ENCRYPT_P2P 0x01
|
bediyap |
0:f6f434d9a03a
|
77
|
#define ENCRYPT_BOTH 0x02
|
bediyap |
0:f6f434d9a03a
|
78
|
#define HCI_OP_READ_CLASS_OF_DEV 0x0c23
|
bediyap |
0:f6f434d9a03a
|
79
|
#define HCI_OP_WRITE_CLASS_OF_DEV 0x0c24
|
bediyap |
0:f6f434d9a03a
|
80
|
#define HCI_OP_READ_VOICE_SETTING 0x0c25
|
bediyap |
0:f6f434d9a03a
|
81
|
#define HCI_OP_WRITE_VOICE_SETTING 0x0c26
|
bediyap |
0:f6f434d9a03a
|
82
|
#define HCI_OP_HOST_BUFFER_SIZE 0x0c33
|
bediyap |
0:f6f434d9a03a
|
83
|
#define HCI_OP_READ_SSP_MODE 0x0c55
|
bediyap |
0:f6f434d9a03a
|
84
|
#define HCI_OP_WRITE_SSP_MODE 0x0c56
|
bediyap |
0:f6f434d9a03a
|
85
|
|
bediyap |
0:f6f434d9a03a
|
86
|
#define HCI_OP_READ_LOCAL_VERSION 0x1001
|
bediyap |
0:f6f434d9a03a
|
87
|
#define HCI_OP_READ_LOCAL_COMMANDS 0x1002
|
bediyap |
0:f6f434d9a03a
|
88
|
#define HCI_OP_READ_LOCAL_FEATURES 0x1003
|
bediyap |
0:f6f434d9a03a
|
89
|
#define HCI_OP_READ_LOCAL_EXT_FEATURES 0x1004
|
bediyap |
0:f6f434d9a03a
|
90
|
#define HCI_OP_READ_BUFFER_SIZE 0x1005
|
bediyap |
0:f6f434d9a03a
|
91
|
#define HCI_OP_READ_BD_ADDR 0x1009
|
bediyap |
0:f6f434d9a03a
|
92
|
|
bediyap |
0:f6f434d9a03a
|
93
|
// events
|
bediyap |
0:f6f434d9a03a
|
94
|
#define HCI_EV_INQUIRY_COMPLETE 0x01
|
bediyap |
0:f6f434d9a03a
|
95
|
#define HCI_EV_INQUIRY_RESULT 0x02
|
bediyap |
0:f6f434d9a03a
|
96
|
#define HCI_EV_CONN_COMPLETE 0x03
|
bediyap |
0:f6f434d9a03a
|
97
|
#define HCI_EV_CONN_REQUEST 0x04
|
bediyap |
0:f6f434d9a03a
|
98
|
#define HCI_EV_DISCONN_COMPLETE 0x05
|
bediyap |
0:f6f434d9a03a
|
99
|
#define HCI_EV_AUTH_COMPLETE 0x06
|
bediyap |
0:f6f434d9a03a
|
100
|
#define HCI_EV_REMOTE_NAME 0x07
|
bediyap |
0:f6f434d9a03a
|
101
|
#define HCI_EV_ENCRYPT_CHANGE 0x08
|
bediyap |
0:f6f434d9a03a
|
102
|
#define HCI_EV_CHANGE_LINK_KEY_COMPLETE 0x09
|
bediyap |
0:f6f434d9a03a
|
103
|
#define HCI_EV_REMOTE_FEATURES 0x0b
|
bediyap |
0:f6f434d9a03a
|
104
|
#define HCI_EV_REMOTE_VERSION 0x0c
|
bediyap |
0:f6f434d9a03a
|
105
|
#define HCI_EV_QOS_SETUP_COMPLETE 0x0d
|
bediyap |
0:f6f434d9a03a
|
106
|
#define HCI_EV_CMD_COMPLETE 0x0e
|
bediyap |
0:f6f434d9a03a
|
107
|
#define HCI_EV_CMD_STATUS 0x0f
|
bediyap |
0:f6f434d9a03a
|
108
|
#define HCI_EV_ROLE_CHANGE 0x12
|
bediyap |
0:f6f434d9a03a
|
109
|
#define HCI_EV_NUM_COMP_PKTS 0x13
|
bediyap |
0:f6f434d9a03a
|
110
|
#define HCI_EV_MODE_CHANGE 0x14
|
bediyap |
0:f6f434d9a03a
|
111
|
#define HCI_EV_PIN_CODE_REQ 0x16
|
bediyap |
0:f6f434d9a03a
|
112
|
#define HCI_EV_LINK_KEY_REQ 0x17
|
bediyap |
0:f6f434d9a03a
|
113
|
#define HCI_EV_LINK_KEY_NOTIFY 0x18
|
bediyap |
0:f6f434d9a03a
|
114
|
#define HCI_EV_CLOCK_OFFSET 0x1c
|
bediyap |
0:f6f434d9a03a
|
115
|
#define HCI_EV_PKT_TYPE_CHANGE 0x1d
|
bediyap |
0:f6f434d9a03a
|
116
|
#define HCI_EV_PSCAN_REP_MODE 0x20
|
bediyap |
0:f6f434d9a03a
|
117
|
#define HCI_EV_INQUIRY_RESULT_WITH_RSSI 0x22
|
bediyap |
0:f6f434d9a03a
|
118
|
#define HCI_EV_REMOTE_EXT_FEATURES 0x23
|
bediyap |
0:f6f434d9a03a
|
119
|
#define HCI_EV_SYNC_CONN_COMPLETE 0x2c
|
bediyap |
0:f6f434d9a03a
|
120
|
#define HCI_EV_SYNC_CONN_CHANGED 0x2d
|
bediyap |
0:f6f434d9a03a
|
121
|
#define HCI_EV_SNIFF_SUBRATE 0x2e
|
bediyap |
0:f6f434d9a03a
|
122
|
#define HCI_EV_EXTENDED_INQUIRY_RESULT 0x2f
|
bediyap |
0:f6f434d9a03a
|
123
|
#define HCI_EV_IO_CAPA_REQUEST 0x31
|
bediyap |
0:f6f434d9a03a
|
124
|
#define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36
|
bediyap |
0:f6f434d9a03a
|
125
|
#define HCI_EV_REMOTE_HOST_FEATURES 0x3d
|
bediyap |
0:f6f434d9a03a
|
126
|
|
bediyap |
0:f6f434d9a03a
|
127
|
/* Possible error codes */
|
bediyap |
0:f6f434d9a03a
|
128
|
#define HCI_UNKNOWN_HCI_COMMAND 0x01
|
bediyap |
0:f6f434d9a03a
|
129
|
#define HCI_NO_CONNECTION 0x02
|
bediyap |
0:f6f434d9a03a
|
130
|
#define HCI_HW_FAILURE 0x03
|
bediyap |
0:f6f434d9a03a
|
131
|
#define HCI_PAGE_TIMEOUT 0x04
|
bediyap |
0:f6f434d9a03a
|
132
|
#define HCI_AUTHENTICATION_FAILURE 0x05
|
bediyap |
0:f6f434d9a03a
|
133
|
#define HCI_KEY_MISSING 0x06
|
bediyap |
0:f6f434d9a03a
|
134
|
#define HCI_MEMORY_FULL 0x07
|
bediyap |
0:f6f434d9a03a
|
135
|
#define HCI_CONN_TIMEOUT 0x08
|
bediyap |
0:f6f434d9a03a
|
136
|
#define HCI_MAX_NUMBER_OF_CONNECTIONS 0x09
|
bediyap |
0:f6f434d9a03a
|
137
|
#define HCI_MAX_NUMBER_OF_SCO_CONNECTIONS_TO_DEVICE 0x0A
|
bediyap |
0:f6f434d9a03a
|
138
|
#define HCI_ACL_CONNECTION_EXISTS 0x0B
|
bediyap |
0:f6f434d9a03a
|
139
|
#define HCI_COMMAND_DISSALLOWED 0x0C
|
bediyap |
0:f6f434d9a03a
|
140
|
#define HCI_HOST_REJECTED_DUE_TO_LIMITED_RESOURCES 0x0D
|
bediyap |
0:f6f434d9a03a
|
141
|
#define HCI_HOST_REJECTED_DUE_TO_SECURITY_REASONS 0x0E
|
bediyap |
0:f6f434d9a03a
|
142
|
#define HCI_HOST_REJECTED_DUE_TO_REMOTE_DEVICE_ONLY_PERSONAL_SERVICE 0x0F
|
bediyap |
0:f6f434d9a03a
|
143
|
#define HCI_HOST_TIMEOUT 0x10
|
bediyap |
0:f6f434d9a03a
|
144
|
#define HCI_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE 0x11
|
bediyap |
0:f6f434d9a03a
|
145
|
#define HCI_INVALID_HCI_COMMAND_PARAMETERS 0x12
|
bediyap |
0:f6f434d9a03a
|
146
|
#define HCI_OTHER_END_TERMINATED_CONN_USER_ENDED 0x13
|
bediyap |
0:f6f434d9a03a
|
147
|
#define HCI_OTHER_END_TERMINATED_CONN_LOW_RESOURCES 0x14
|
bediyap |
0:f6f434d9a03a
|
148
|
#define HCI_OTHER_END_TERMINATED_CONN_ABOUT_TO_POWER_OFF 0x15
|
bediyap |
0:f6f434d9a03a
|
149
|
#define HCI_CONN_TERMINATED_BY_LOCAL_HOST 0x16
|
bediyap |
0:f6f434d9a03a
|
150
|
#define HCI_REPETED_ATTEMPTS 0x17
|
bediyap |
0:f6f434d9a03a
|
151
|
#define HCI_PAIRING_NOT_ALLOWED 0x18
|
bediyap |
0:f6f434d9a03a
|
152
|
#define HCI_UNKNOWN_LMP_PDU 0x19
|
bediyap |
0:f6f434d9a03a
|
153
|
#define HCI_UNSUPPORTED_REMOTE_FEATURE 0x1A
|
bediyap |
0:f6f434d9a03a
|
154
|
#define HCI_SCO_OFFSET_REJECTED 0x1B
|
bediyap |
0:f6f434d9a03a
|
155
|
#define HCI_SCO_INTERVAL_REJECTED 0x1C
|
bediyap |
0:f6f434d9a03a
|
156
|
#define HCI_SCO_AIR_MODE_REJECTED 0x1D
|
bediyap |
0:f6f434d9a03a
|
157
|
#define HCI_INVALID_LMP_PARAMETERS 0x1E
|
bediyap |
0:f6f434d9a03a
|
158
|
#define HCI_UNSPECIFIED_ERROR 0x1F
|
bediyap |
0:f6f434d9a03a
|
159
|
#define HCI_UNSUPPORTED_LMP_PARAMETER_VALUE 0x20
|
bediyap |
0:f6f434d9a03a
|
160
|
#define HCI_ROLE_CHANGE_NOT_ALLOWED 0x21
|
bediyap |
0:f6f434d9a03a
|
161
|
#define HCI_LMP_RESPONSE_TIMEOUT 0x22
|
bediyap |
0:f6f434d9a03a
|
162
|
#define HCI_LMP_ERROR_TRANSACTION_COLLISION 0x23
|
bediyap |
0:f6f434d9a03a
|
163
|
#define HCI_LMP_PDU_NOT_ALLOWED 0x24
|
bediyap |
0:f6f434d9a03a
|
164
|
#define HCI_ENCRYPTION_MODE_NOT_ACCEPTABLE 0x25
|
bediyap |
0:f6f434d9a03a
|
165
|
#define HCI_UNIT_KEY_USED 0x26
|
bediyap |
0:f6f434d9a03a
|
166
|
#define HCI_QOS_NOT_SUPPORTED 0x27
|
bediyap |
0:f6f434d9a03a
|
167
|
#define HCI_INSTANT_PASSED 0x28
|
bediyap |
0:f6f434d9a03a
|
168
|
#define HCI_PAIRING_UNIT_KEY_NOT_SUPPORTED 0x29
|
bediyap |
0:f6f434d9a03a
|
169
|
|
bediyap |
0:f6f434d9a03a
|
170
|
const char* EvtStr(int evt)
|
bediyap |
0:f6f434d9a03a
|
171
|
{
|
bediyap |
0:f6f434d9a03a
|
172
|
switch (evt)
|
bediyap |
0:f6f434d9a03a
|
173
|
{
|
bediyap |
0:f6f434d9a03a
|
174
|
case HCI_EV_INQUIRY_COMPLETE: return "HCI_EV_INQUIRY_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
175
|
case HCI_EV_INQUIRY_RESULT: return "HCI_EV_INQUIRY_RESULT";
|
bediyap |
0:f6f434d9a03a
|
176
|
case HCI_EV_CONN_COMPLETE: return "HCI_EV_CONN_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
177
|
case HCI_EV_CONN_REQUEST: return "HCI_EV_CONN_REQUEST";
|
bediyap |
0:f6f434d9a03a
|
178
|
case HCI_EV_DISCONN_COMPLETE: return "HCI_EV_DISCONN_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
179
|
case HCI_EV_AUTH_COMPLETE: return "HCI_EV_AUTH_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
180
|
case HCI_EV_REMOTE_NAME: return "HCI_EV_REMOTE_NAME";
|
bediyap |
0:f6f434d9a03a
|
181
|
case HCI_EV_ENCRYPT_CHANGE: return "HCI_EV_ENCRYPT_CHANGE";
|
bediyap |
0:f6f434d9a03a
|
182
|
case HCI_EV_CHANGE_LINK_KEY_COMPLETE : return "HCI_EV_CHANGE_LINK_KEY_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
183
|
case HCI_EV_REMOTE_FEATURES: return "HCI_EV_REMOTE_FEATURES";
|
bediyap |
0:f6f434d9a03a
|
184
|
case HCI_EV_REMOTE_VERSION: return "HCI_EV_REMOTE_VERSION";
|
bediyap |
0:f6f434d9a03a
|
185
|
case HCI_EV_QOS_SETUP_COMPLETE : return "HCI_EV_QOS_SETUP_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
186
|
case HCI_EV_CMD_COMPLETE: return "HCI_EV_CMD_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
187
|
case HCI_EV_CMD_STATUS: return "HCI_EV_CMD_STATUS";
|
bediyap |
0:f6f434d9a03a
|
188
|
case HCI_EV_ROLE_CHANGE: return "HCI_EV_ROLE_CHANGE";
|
bediyap |
0:f6f434d9a03a
|
189
|
case HCI_EV_NUM_COMP_PKTS: return "HCI_EV_NUM_COMP_PKTS";
|
bediyap |
0:f6f434d9a03a
|
190
|
case HCI_EV_MODE_CHANGE: return "HCI_EV_MODE_CHANGE";
|
bediyap |
0:f6f434d9a03a
|
191
|
case HCI_EV_PIN_CODE_REQ: return "HCI_EV_PIN_CODE_REQ";
|
bediyap |
0:f6f434d9a03a
|
192
|
case HCI_EV_LINK_KEY_REQ: return "HCI_EV_LINK_KEY_REQ";
|
bediyap |
0:f6f434d9a03a
|
193
|
case HCI_EV_LINK_KEY_NOTIFY: return "HCI_EV_LINK_KEY_NOTIFY";
|
bediyap |
0:f6f434d9a03a
|
194
|
case HCI_EV_CLOCK_OFFSET: return "HCI_EV_CLOCK_OFFSET";
|
bediyap |
0:f6f434d9a03a
|
195
|
case HCI_EV_PKT_TYPE_CHANGE: return "HCI_EV_PKT_TYPE_CHANGE";
|
bediyap |
0:f6f434d9a03a
|
196
|
case HCI_EV_PSCAN_REP_MODE: return "HCI_EV_PSCAN_REP_MODE";
|
bediyap |
0:f6f434d9a03a
|
197
|
case HCI_EV_INQUIRY_RESULT_WITH_RSSI : return "HCI_EV_INQUIRY_RESULT_WITH_RSSI";
|
bediyap |
0:f6f434d9a03a
|
198
|
case HCI_EV_REMOTE_EXT_FEATURES: return "HCI_EV_REMOTE_EXT_FEATURES";
|
bediyap |
0:f6f434d9a03a
|
199
|
case HCI_EV_SYNC_CONN_COMPLETE: return "HCI_EV_SYNC_CONN_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
200
|
case HCI_EV_SYNC_CONN_CHANGED: return "HCI_EV_SYNC_CONN_CHANGED";
|
bediyap |
0:f6f434d9a03a
|
201
|
case HCI_EV_SNIFF_SUBRATE: return "HCI_EV_SNIFF_SUBRATE";
|
bediyap |
0:f6f434d9a03a
|
202
|
case HCI_EV_EXTENDED_INQUIRY_RESULT: return "HCI_EV_EXTENDED_INQUIRY_RESULT";
|
bediyap |
0:f6f434d9a03a
|
203
|
case HCI_EV_IO_CAPA_REQUEST: return "HCI_EV_IO_CAPA_REQUEST";
|
bediyap |
0:f6f434d9a03a
|
204
|
case HCI_EV_SIMPLE_PAIR_COMPLETE: return "HCI_EV_SIMPLE_PAIR_COMPLETE";
|
bediyap |
0:f6f434d9a03a
|
205
|
case HCI_EV_REMOTE_HOST_FEATURES: return "HCI_EV_REMOTE_HOST_FEATURES";
|
bediyap |
0:f6f434d9a03a
|
206
|
}
|
bediyap |
0:f6f434d9a03a
|
207
|
return "Unknown Event";
|
bediyap |
0:f6f434d9a03a
|
208
|
}
|
bediyap |
0:f6f434d9a03a
|
209
|
|
bediyap |
0:f6f434d9a03a
|
210
|
const char* CmdStr(int cmd)
|
bediyap |
0:f6f434d9a03a
|
211
|
{
|
bediyap |
0:f6f434d9a03a
|
212
|
switch (cmd)
|
bediyap |
0:f6f434d9a03a
|
213
|
{
|
bediyap |
0:f6f434d9a03a
|
214
|
// 0x04XX
|
bediyap |
0:f6f434d9a03a
|
215
|
case HCI_OP_INQUIRY: return "HCI_OP_INQUIRY";
|
bediyap |
0:f6f434d9a03a
|
216
|
case HCI_OP_INQUIRY_CANCEL: return "HCI_OP_INQUIRY_CANCEL";
|
bediyap |
0:f6f434d9a03a
|
217
|
case HCI_OP_EXIT_PERIODIC_INQ: return "HCI_OP_EXIT_PERIODIC_INQ";
|
bediyap |
0:f6f434d9a03a
|
218
|
case HCI_OP_CREATE_CONN: return "HCI_OP_CREATE_CONN";
|
bediyap |
0:f6f434d9a03a
|
219
|
case HCI_OP_DISCONNECT: return "HCI_OP_DISCONNECT";
|
bediyap |
0:f6f434d9a03a
|
220
|
case HCI_OP_ADD_SCO: return "HCI_OP_ADD_SCO";
|
bediyap |
0:f6f434d9a03a
|
221
|
case HCI_OP_CREATE_CONN_CANCEL: return "HCI_OP_CREATE_CONN_CANCEL";
|
bediyap |
0:f6f434d9a03a
|
222
|
case HCI_OP_ACCEPT_CONN_REQ: return "HCI_OP_ACCEPT_CONN_REQ";
|
bediyap |
0:f6f434d9a03a
|
223
|
case HCI_OP_REJECT_CONN_REQ: return "HCI_OP_REJECT_CONN_REQ";
|
bediyap |
0:f6f434d9a03a
|
224
|
case HCI_OP_LINK_KEY_REPLY: return "HCI_OP_LINK_KEY_REPLY";
|
bediyap |
0:f6f434d9a03a
|
225
|
case HCI_OP_LINK_KEY_NEG_REPLY: return "HCI_OP_LINK_KEY_NEG_REPLY";
|
bediyap |
0:f6f434d9a03a
|
226
|
case HCI_OP_PIN_CODE_REPLY: return "HCI_OP_PIN_CODE_REPLY";
|
bediyap |
0:f6f434d9a03a
|
227
|
case HCI_OP_PIN_CODE_NEG_REPLY: return "HCI_OP_PIN_CODE_NEG_REPLY";
|
bediyap |
0:f6f434d9a03a
|
228
|
case HCI_OP_CHANGE_CONN_PTYPE: return "HCI_OP_CHANGE_CONN_PTYPE";
|
bediyap |
0:f6f434d9a03a
|
229
|
case HCI_OP_AUTH_REQUESTED: return "HCI_OP_AUTH_REQUESTED";
|
bediyap |
0:f6f434d9a03a
|
230
|
case HCI_OP_SET_CONN_ENCRYPT: return "HCI_OP_SET_CONN_ENCRYPT";
|
bediyap |
0:f6f434d9a03a
|
231
|
case HCI_OP_CHANGE_CONN_LINK_KEY: return "HCI_OP_CHANGE_CONN_LINK_KEY";
|
bediyap |
0:f6f434d9a03a
|
232
|
case HCI_OP_REMOTE_NAME_REQ: return "HCI_OP_REMOTE_NAME_REQ";
|
bediyap |
0:f6f434d9a03a
|
233
|
case HCI_OP_REMOTE_NAME_REQ_CANCEL: return "HCI_OP_REMOTE_NAME_REQ_CANCEL";
|
bediyap |
0:f6f434d9a03a
|
234
|
case HCI_OP_READ_REMOTE_FEATURES: return "HCI_OP_READ_REMOTE_FEATURES";
|
bediyap |
0:f6f434d9a03a
|
235
|
case HCI_OP_READ_REMOTE_EXT_FEATURES: return "HCI_OP_READ_REMOTE_EXT_FEATURES";
|
bediyap |
0:f6f434d9a03a
|
236
|
case HCI_OP_READ_REMOTE_VERSION: return "HCI_OP_READ_REMOTE_VERSION";
|
bediyap |
0:f6f434d9a03a
|
237
|
case HCI_OP_SETUP_SYNC_CONN: return "HCI_OP_SETUP_SYNC_CONN";
|
bediyap |
0:f6f434d9a03a
|
238
|
case HCI_OP_ACCEPT_SYNC_CONN_REQ: return "HCI_OP_ACCEPT_SYNC_CONN_REQ";
|
bediyap |
0:f6f434d9a03a
|
239
|
case HCI_OP_REJECT_SYNC_CONN_REQ: return "HCI_OP_REJECT_SYNC_CONN_REQ";
|
bediyap |
0:f6f434d9a03a
|
240
|
// 0x0CXX
|
bediyap |
0:f6f434d9a03a
|
241
|
case HCI_OP_SET_EVENT_MASK: return "HCI_OP_SET_EVENT_MASK";
|
bediyap |
0:f6f434d9a03a
|
242
|
case HCI_OP_RESET: return "HCI_OP_RESET";
|
bediyap |
0:f6f434d9a03a
|
243
|
case HCI_OP_SET_EVENT_FLT: return "HCI_OP_SET_EVENT_FLT";
|
bediyap |
0:f6f434d9a03a
|
244
|
case HCI_OP_WRITE_LOCAL_NAME: return "HCI_OP_WRITE_LOCAL_NAME";
|
bediyap |
0:f6f434d9a03a
|
245
|
case HCI_OP_READ_LOCAL_NAME: return "HCI_OP_READ_LOCAL_NAME";
|
bediyap |
0:f6f434d9a03a
|
246
|
case HCI_OP_WRITE_CA_TIMEOUT: return "HCI_OP_WRITE_CA_TIMEOUT";
|
bediyap |
0:f6f434d9a03a
|
247
|
case HCI_OP_WRITE_PG_TIMEOUT: return "HCI_OP_WRITE_PG_TIMEOUT";
|
bediyap |
0:f6f434d9a03a
|
248
|
case HCI_OP_WRITE_SCAN_ENABLE: return "HCI_OP_WRITE_SCAN_ENABLE";
|
bediyap |
0:f6f434d9a03a
|
249
|
case HCI_OP_READ_AUTH_ENABLE: return "HCI_OP_READ_AUTH_ENABLE";
|
bediyap |
0:f6f434d9a03a
|
250
|
case HCI_OP_WRITE_AUTH_ENABLE: return "HCI_OP_WRITE_AUTH_ENABLE";
|
bediyap |
0:f6f434d9a03a
|
251
|
case HCI_OP_READ_ENCRYPT_MODE: return "HCI_OP_READ_ENCRYPT_MODE";
|
bediyap |
0:f6f434d9a03a
|
252
|
case HCI_OP_WRITE_ENCRYPT_MODE: return "HCI_OP_WRITE_ENCRYPT_MODE";
|
bediyap |
0:f6f434d9a03a
|
253
|
case HCI_OP_READ_CLASS_OF_DEV: return "HCI_OP_READ_CLASS_OF_DEV";
|
bediyap |
0:f6f434d9a03a
|
254
|
case HCI_OP_WRITE_CLASS_OF_DEV: return "HCI_OP_WRITE_CLASS_OF_DEV";
|
bediyap |
0:f6f434d9a03a
|
255
|
case HCI_OP_READ_VOICE_SETTING: return "HCI_OP_READ_VOICE_SETTING";
|
bediyap |
0:f6f434d9a03a
|
256
|
case HCI_OP_WRITE_VOICE_SETTING: return "HCI_OP_WRITE_VOICE_SETTING";
|
bediyap |
0:f6f434d9a03a
|
257
|
case HCI_OP_HOST_BUFFER_SIZE: return "HCI_OP_HOST_BUFFER_SIZE";
|
bediyap |
0:f6f434d9a03a
|
258
|
case HCI_OP_READ_SSP_MODE: return "HCI_OP_READ_SSP_MODE";
|
bediyap |
0:f6f434d9a03a
|
259
|
case HCI_OP_WRITE_SSP_MODE: return "HCI_OP_WRITE_SSP_MODE";
|
bediyap |
0:f6f434d9a03a
|
260
|
|
bediyap |
0:f6f434d9a03a
|
261
|
// 10xx
|
bediyap |
0:f6f434d9a03a
|
262
|
case HCI_OP_READ_LOCAL_VERSION: return "HCI_OP_READ_LOCAL_VERSION";
|
bediyap |
0:f6f434d9a03a
|
263
|
case HCI_OP_READ_LOCAL_COMMANDS: return "HCI_OP_READ_LOCAL_COMMANDS";
|
bediyap |
0:f6f434d9a03a
|
264
|
case HCI_OP_READ_LOCAL_FEATURES: return "HCI_OP_READ_LOCAL_FEATURES";
|
bediyap |
0:f6f434d9a03a
|
265
|
case HCI_OP_READ_LOCAL_EXT_FEATURES: return "HCI_OP_READ_LOCAL_EXT_FEATURES";
|
bediyap |
0:f6f434d9a03a
|
266
|
case HCI_OP_READ_BUFFER_SIZE: return "HCI_OP_READ_BUFFER_SIZE";
|
bediyap |
0:f6f434d9a03a
|
267
|
case HCI_OP_READ_BD_ADDR: return "HCI_OP_READ_BD_ADDR";
|
bediyap |
0:f6f434d9a03a
|
268
|
}
|
bediyap |
0:f6f434d9a03a
|
269
|
return "Unknown Cmd";
|
bediyap |
0:f6f434d9a03a
|
270
|
}
|
bediyap |
0:f6f434d9a03a
|
271
|
|
bediyap |
0:f6f434d9a03a
|
272
|
const char* HCIErrStr(int err)
|
bediyap |
0:f6f434d9a03a
|
273
|
{
|
bediyap |
0:f6f434d9a03a
|
274
|
switch (err)
|
bediyap |
0:f6f434d9a03a
|
275
|
{
|
bediyap |
0:f6f434d9a03a
|
276
|
case 0: return "OK";
|
bediyap |
0:f6f434d9a03a
|
277
|
case HCI_UNKNOWN_HCI_COMMAND: return "HCI_UNKNOWN_HCI_COMMAND";
|
bediyap |
0:f6f434d9a03a
|
278
|
case HCI_NO_CONNECTION: return "HCI_NO_CONNECTION";
|
bediyap |
0:f6f434d9a03a
|
279
|
case HCI_HW_FAILURE: return "HCI_HW_FAILURE";
|
bediyap |
0:f6f434d9a03a
|
280
|
case HCI_PAGE_TIMEOUT: return "HCI_PAGE_TIMEOUT";
|
bediyap |
0:f6f434d9a03a
|
281
|
case HCI_AUTHENTICATION_FAILURE: return "HCI_AUTHENTICATION_FAILURE";
|
bediyap |
0:f6f434d9a03a
|
282
|
case HCI_KEY_MISSING: return "HCI_KEY_MISSING";
|
bediyap |
0:f6f434d9a03a
|
283
|
case HCI_MEMORY_FULL: return "HCI_MEMORY_FULL";
|
bediyap |
0:f6f434d9a03a
|
284
|
case HCI_CONN_TIMEOUT: return "HCI_CONN_TIMEOUT";
|
bediyap |
0:f6f434d9a03a
|
285
|
case HCI_MAX_NUMBER_OF_CONNECTIONS: return "HCI_CONN_TIMEOUT";
|
bediyap |
0:f6f434d9a03a
|
286
|
case HCI_MAX_NUMBER_OF_SCO_CONNECTIONS_TO_DEVICE: return "HCI_MAX_NUMBER_OF_SCO_CONNECTIONS_TO_DEVICE";
|
bediyap |
0:f6f434d9a03a
|
287
|
case HCI_ACL_CONNECTION_EXISTS: return "HCI_ACL_CONNECTION_EXISTS";
|
bediyap |
0:f6f434d9a03a
|
288
|
case HCI_COMMAND_DISSALLOWED: return "HCI_COMMAND_DISSALLOWED";
|
bediyap |
0:f6f434d9a03a
|
289
|
case HCI_HOST_REJECTED_DUE_TO_LIMITED_RESOURCES: return "HCI_HOST_REJECTED_DUE_TO_LIMITED_RESOURCES";
|
bediyap |
0:f6f434d9a03a
|
290
|
case HCI_HOST_REJECTED_DUE_TO_SECURITY_REASONS: return "HCI_HOST_REJECTED_DUE_TO_SECURITY_REASONS";
|
bediyap |
0:f6f434d9a03a
|
291
|
case HCI_HOST_REJECTED_DUE_TO_REMOTE_DEVICE_ONLY_PERSONAL_SERVICE: return "HCI_HOST_REJECTED_DUE_TO_REMOTE_DEVICE_ONLY_PERSONAL_SERVICE";
|
bediyap |
0:f6f434d9a03a
|
292
|
case HCI_HOST_TIMEOUT: return "HCI_HOST_TIMEOUT";
|
bediyap |
0:f6f434d9a03a
|
293
|
case HCI_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE: return "HCI_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE";
|
bediyap |
0:f6f434d9a03a
|
294
|
case HCI_INVALID_HCI_COMMAND_PARAMETERS: return "HCI_INVALID_HCI_COMMAND_PARAMETERS";
|
bediyap |
0:f6f434d9a03a
|
295
|
case HCI_OTHER_END_TERMINATED_CONN_USER_ENDED: return "HCI_OTHER_END_TERMINATED_CONN_USER_ENDED";
|
bediyap |
0:f6f434d9a03a
|
296
|
case HCI_OTHER_END_TERMINATED_CONN_LOW_RESOURCES: return "HCI_OTHER_END_TERMINATED_CONN_LOW_RESOURCES";
|
bediyap |
0:f6f434d9a03a
|
297
|
case HCI_OTHER_END_TERMINATED_CONN_ABOUT_TO_POWER_OFF: return "HCI_OTHER_END_TERMINATED_CONN_ABOUT_TO_POWER_OFF";
|
bediyap |
0:f6f434d9a03a
|
298
|
case HCI_CONN_TERMINATED_BY_LOCAL_HOST: return "HCI_CONN_TERMINATED_BY_LOCAL_HOST";
|
bediyap |
0:f6f434d9a03a
|
299
|
case HCI_REPETED_ATTEMPTS: return "HCI_REPETED_ATTEMPTS";
|
bediyap |
0:f6f434d9a03a
|
300
|
case HCI_PAIRING_NOT_ALLOWED: return "HCI_PAIRING_NOT_ALLOWED";
|
bediyap |
0:f6f434d9a03a
|
301
|
case HCI_UNKNOWN_LMP_PDU: return "HCI_UNKNOWN_LMP_PDU";
|
bediyap |
0:f6f434d9a03a
|
302
|
case HCI_UNSUPPORTED_REMOTE_FEATURE: return "HCI_UNSUPPORTED_REMOTE_FEATURE";
|
bediyap |
0:f6f434d9a03a
|
303
|
case HCI_SCO_OFFSET_REJECTED: return "HCI_SCO_OFFSET_REJECTED";
|
bediyap |
0:f6f434d9a03a
|
304
|
case HCI_SCO_INTERVAL_REJECTED: return "HCI_SCO_INTERVAL_REJECTED";
|
bediyap |
0:f6f434d9a03a
|
305
|
case HCI_SCO_AIR_MODE_REJECTED: return "HCI_SCO_AIR_MODE_REJECTED";
|
bediyap |
0:f6f434d9a03a
|
306
|
case HCI_INVALID_LMP_PARAMETERS: return "HCI_INVALID_LMP_PARAMETERS";
|
bediyap |
0:f6f434d9a03a
|
307
|
case HCI_UNSPECIFIED_ERROR: return "HCI_UNSPECIFIED_ERROR";
|
bediyap |
0:f6f434d9a03a
|
308
|
case HCI_UNSUPPORTED_LMP_PARAMETER_VALUE: return "HCI_UNSUPPORTED_LMP_PARAMETER_VALUE";
|
bediyap |
0:f6f434d9a03a
|
309
|
case HCI_ROLE_CHANGE_NOT_ALLOWED: return "HCI_ROLE_CHANGE_NOT_ALLOWED";
|
bediyap |
0:f6f434d9a03a
|
310
|
case HCI_LMP_RESPONSE_TIMEOUT: return "HCI_LMP_RESPONSE_TIMEOUT";
|
bediyap |
0:f6f434d9a03a
|
311
|
case HCI_LMP_ERROR_TRANSACTION_COLLISION: return "HCI_LMP_ERROR_TRANSACTION_COLLISION";
|
bediyap |
0:f6f434d9a03a
|
312
|
case HCI_LMP_PDU_NOT_ALLOWED: return "HCI_LMP_PDU_NOT_ALLOWED";
|
bediyap |
0:f6f434d9a03a
|
313
|
case HCI_ENCRYPTION_MODE_NOT_ACCEPTABLE: return "HCI_ENCRYPTION_MODE_NOT_ACCEPTABLE";
|
bediyap |
0:f6f434d9a03a
|
314
|
case HCI_UNIT_KEY_USED: return "HCI_UNIT_KEY_USED";
|
bediyap |
0:f6f434d9a03a
|
315
|
case HCI_QOS_NOT_SUPPORTED: return "HCI_QOS_NOT_SUPPORTED";
|
bediyap |
0:f6f434d9a03a
|
316
|
case HCI_INSTANT_PASSED: return "HCI_INSTANT_PASSED";
|
bediyap |
0:f6f434d9a03a
|
317
|
case HCI_PAIRING_UNIT_KEY_NOT_SUPPORTED: return "HCI_PAIRING_UNIT_KEY_NOT_SUPPORTED";
|
bediyap |
0:f6f434d9a03a
|
318
|
};
|
bediyap |
0:f6f434d9a03a
|
319
|
return "Unknow HCI err";
|
bediyap |
0:f6f434d9a03a
|
320
|
};
|
bediyap |
0:f6f434d9a03a
|
321
|
|
bediyap |
0:f6f434d9a03a
|
322
|
|
bediyap |
0:f6f434d9a03a
|
323
|
#endif // HCI_PRIVATE_H_INCLUDED
|