hci-decoder  1.0
Lightweight Bluetooth HCI decoder library parsing individually HCI frames into JSON format
hci_response_packet.h
Go to the documentation of this file.
1 /************************************************************************************
2  * The MIT License (MIT) *
3  * *
4  * Copyright (c) 2015 Bertrand Martel *
5  * *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy *
7  * of this software and associated documentation files (the "Software"), to deal *
8  * in the Software without restriction, including without limitation the rights *
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell *
10  * copies of the Software, and to permit persons to whom the Software is *
11  * furnished to do so, subject to the following conditions: *
12  * *
13  * The above copyright notice and this permission notice shall be included in *
14  * all copies or substantial portions of the Software. *
15  * *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN *
22  * THE SOFTWARE. *
23  ************************************************************************************/
31 #ifndef HCIRESPONSEPACKET_H
32 #define HCIRESPONSEPACKET_H
33 
34 #include "json/json.h"
35 #include "hci_decoder/hci_global.h"
36 
37 /*response with status only*/
38 typedef struct status_response_cmd : public IHciResponseFrame {
39 
40  status_response_cmd(const std::vector<uint8_t> &data){
41  status = data[0];
42  }
43 
44  Json::Value toJson(){
45  Json::Value output;
46  output["status"] = status;
47  return output;
48  }
49 
51 
52 /**********************************************************************/
53 /**********************************************************************/
54 /********************* LINK POLICY COMMAND ****************************/
55 /**********************************************************************/
56 /**********************************************************************/
57 
58 /**********************************************************************/
59 /**********************************************************************/
60 /************ INFORMATIONAL PARAMETERS COMMAND ************************/
61 /**********************************************************************/
62 /**********************************************************************/
63 
64 /*HCI Command : OGF=0x04 | OCF=0x0002 Read local supported Command*/
66 
67  std::vector<uint8_t> supported_hci_command_mask; /*mask featuring all hci commands supported*/
68 
69  informational_read_local_supported_cmd_response_cmd(const std::vector<uint8_t> &data){
70  status = data[0];
71  for (unsigned int i = 0 ; i < 64;i++){
72  supported_hci_command_mask.push_back(data[1+i]);
73  }
74  }
75 
76  Json::Value toJson(){
77  Json::Value output;
78  output["status"] = status;
79  Json::Value supported_hci_command_mask_vals(Json::arrayValue);
80  for (unsigned int i = 0;i<64;i++){
81  supported_hci_command_mask_vals.append(supported_hci_command_mask[i]);
82  }
83  output["supported_hci_command_mask"] = supported_hci_command_mask_vals;
84  return output;
85  }
86 
88 
89 /*HCI Command : OGF=0x04 | OCF=0x0005 Read Buffer size Command*/
91 
96 
97  informational_read_buffer_size_response_cmd(const std::vector<uint8_t> &data){
98  status = data[0];
99  acl_data_packet_length = data[1] + (data[2]<<8);
100  synchronous_data_packet_length = data[3];
101  total_num_acld_data_packet_length = data[4] + (data[5]<<8);
102  total_num_synchronous_data_packet_length = data[6] + (data[7]<<8);
103  }
104 
105  Json::Value toJson(){
106  Json::Value output;
107  output["status"] = status;
108  output["acl_data_packet_length"] = acl_data_packet_length;
109  output["synchronous_data_packet_length"] = synchronous_data_packet_length;
110  output["total_num_acld_data_packet_length"] = total_num_acld_data_packet_length;
111  output["total_num_synchronous_data_packet_length"] = total_num_synchronous_data_packet_length;
112  return output;
113  }
114 
116 
117 /*HCI Command : OGF=0x04 | OCF=0x0009 Read BD ADDR Command*/
119 
121 
122  informational_read_bd_addr_response_cmd(const std::vector<uint8_t> &data){
123  status = data[0];
124  bd_addr.address[0] = data[6];
125  bd_addr.address[1] = data[5];
126  bd_addr.address[2] = data[4];
127  bd_addr.address[3] = data[3];
128  bd_addr.address[4] = data[2];
129  bd_addr.address[5] = data[1];
130  }
131 
132  Json::Value toJson(){
133  Json::Value output;
134  output["status"] = status;
135  output["bd_addr"] = bd_addr.toString();
136  return output;
137  }
138 
140 
141 /*HCI Command : OGF=0x04 | OCF=0x0001 Read local version information Command*/
143 
144  uint16_t hci_version; /*Revision of the Current HCI in the BR/EDR Controller*/
146  uint16_t manufacturer_name; /*Manufacturer Name of the BR/EDR Controller*/
147  uint16_t lmp_pal_subversion; /*Subversion of the Current LMP or PAL in the Controller. This value is implementation dependent*/
148 
150  status = data[0];
151  hci_version = data[1] + (data[2]<<8);
152  lmp_pal_version = data[3];
153  manufacturer_name = data[4] + (data[5]<<8);
154  lmp_pal_subversion = data[6] + (data[7]<<8);
155  }
156 
157  Json::Value toJson(){
158  Json::Value output;
159  output["status"] = status;
160  output["hci_version"] = hci_version;
161  output["lmp_pal_version"] = lmp_pal_version;
162  output["manufacturer_name"] = manufacturer_name;
163  output["lmp_pal_subversion"] = lmp_pal_subversion;
164  return output;
165  }
166 
168 
169 /*HCI Command : OGF=0x04 | OCF=0x0004 Read local extended features Command*/
171 
172  uint8_t page_number;
173  uint8_t maximum_page_number; /*The highest features page number which contains non-zero bits for the local device*/
174  std::vector<uint8_t> extended_lmp_features; /*Bit map of requested page of LMP features.*/
175 
177  status = data[0];
178  page_number = data[1];
179  maximum_page_number = data[2];
180  for (unsigned int i = 0; i < 8;i++){
181  extended_lmp_features.push_back(data[3+i]);
182  }
183  }
184 
185  Json::Value toJson(){
186  Json::Value output;
187  output["status"] = status;
188  output["page_number"] = page_number;
189  output["maximum_page_number"] = maximum_page_number;
190  Json::Value extended_lmp_features_val(Json::arrayValue);
191 
192  for (unsigned int i = 0; i < 8;i++){
193  extended_lmp_features_val.append(extended_lmp_features[i]);
194  }
195  output["extended_lmp_features"] = extended_lmp_features_val;
196  return output;
197  }
198 
200 
201 /**********************************************************************/
202 /**********************************************************************/
203 /*********************** LE CONTROLLER COMMAND ************************/
204 /**********************************************************************/
205 /**********************************************************************/
206 
207 /*HCI Command : OGF=0x08 | OCF=0x000F LE Read White list Command*/
209 
210  uint8_t white_list_size; /*Total number of white list entries that can be stored in the Controller*/
211 
212  le_read_white_list_response_cmd(const std::vector<uint8_t> &data){
213  status = data[0];
214  white_list_size = data[1];
215  }
216 
217  Json::Value toJson(){
218  Json::Value output;
219  output["status"] = status;
220  output["white_list_size"] = white_list_size;
221  return output;
222  }
223 
225 
226 /*HCI Command : OGF=0x08 | OCF=0x0002 LE Read Buffer Size Command*/
228 
231 
232  le_read_buffer_size_response_cmd(const std::vector<uint8_t> &data){
233  status = data[0];
234  le_data_packet_length = data[1] + (data[2]<<8);
235  total_num_le_data_packet_length = data[3];
236  }
237 
238  Json::Value toJson(){
239  Json::Value output;
240  output["status"] = status;
241  output["le_data_packet_length"] = le_data_packet_length;
242  output["total_num_le_data_packet_length"] = total_num_le_data_packet_length;
243  return output;
244  }
245 
247 
248 /*HCI Command : OGF=0x08 | OCF=0x0003 LE Read Local Supported Features Command*/
250 
251  std::vector<uint8_t> supported_le_features; /*Bit Mask List of supported LE features */
252 
253  le_read_local_supported_features_response_cmd(const std::vector<uint8_t> &data){
254  status = data[0];
255  for (unsigned int i = 0; i < 8;i++){
256  supported_le_features.push_back(data[1+i]);
257  }
258  }
259 
260  Json::Value toJson(){
261  Json::Value output;
262  output["status"] = status;
263  Json::Value supported_le_features_vals(Json::arrayValue);
264  for (unsigned int i = 0 ; i< 8;i++){
265  supported_le_features_vals.append(supported_le_features[i]);
266  }
267  output["supported_le_features"] = supported_le_features_vals;
268  return output;
269  }
270 
272 
273 /**********************************************************************/
274 /**********************************************************************/
275 /***************** CONTROLLER BASEBAND COMMAND ************************/
276 /**********************************************************************/
277 /**********************************************************************/
278 
279 /*HCI Command : OGF=0x03 | OCF=0x0014 Read local name Command*/
281 
282  std::string local_name;
283 
284  ctrl_bsb_read_local_name_response_cmd(const std::vector<uint8_t> &data){
285  status = data[0];
286  local_name="";
287  bool found = false;
288  for (unsigned int i = 0; i <248 && !found;i++){
289  if (data[1+i]!='\0'){
290  local_name+=data[1+i];
291  }
292  else{
293  found=true;
294  }
295  }
296  }
297 
298  Json::Value toJson(){
299  Json::Value output;
300  output["status"] = status;
301  output["local_name"] = local_name;
302  return output;
303  }
304 
306 
307 /*HCI Command : OGF=0x03 | OCF=0x0023 Read Class of Device Command*/
309 
310  uint32_t device_class; /*3B : Class of Device for the device*/
311 
312  ctrl_bsb_read_class_of_device_response_cmd(const std::vector<uint8_t> &data){
313  status = data[0];
314  device_class = data[1] + (data[2]<<8) + (data[3]<<16);
315  }
316 
317  Json::Value toJson(){
318  Json::Value output;
319  output["status"] = status;
320  output["device_class"] = device_class;
321  return output;
322  }
323 
325 
326 
327 /*HCI Command : OGF=0x03 | OCF=0x0044 Read inquiry mode Command*/
329 
330  uint8_t inquiry_mode; /*1B : 0x00:Standard Inquiry Result event format | 0x01: Inquiry Result format with RSSI | 0x02: Inquiry Result with RSSI format or Extended Inquiry Result format*/
331 
332  ctrl_bsb_read_inquiry_mode_response_cmd(const std::vector<uint8_t> &data){
333  status = data[0];
334  inquiry_mode = data[1];
335  }
336 
337  Json::Value toJson(){
338  Json::Value output;
339  output["status"] = status;
340  output["inquiry_mode"] = inquiry_mode;
341  return output;
342  }
343 
345 
346 /*HCI Command : OGF=0x03 | OCF=0x006C Read LE host support Command*/
348 
349  uint8_t le_supported_host; /*1B*/
350  uint8_t simultaneous_le_host; /*1B*/
351 
352  ctrl_bsb_read_le_host_support_response_cmd(const std::vector<uint8_t> &data){
353  status = data[0];
354  le_supported_host = data[1];
355  simultaneous_le_host = data[2];
356  }
357 
358  Json::Value toJson(){
359  Json::Value output;
360  output["status"] = status;
361  output["le_supported_host"] = le_supported_host;
362  output["simultaneous_le_host"] = simultaneous_le_host;
363  return output;
364  }
365 
367 
368 /*HCI Command : OGF=0x03 | OCF=0x001D Read Inquiry Scan activity Command*/
370 
373 
374  ctrl_bsb_read_inquiry_scan_activity_response_cmd(const std::vector<uint8_t> &data){
375  status = data[0];
376  inquiry_scan_interval = data[1] + (data[2]<<8);
377  inquiry_scan_window =data[3] + (data[4]<<8);
378  }
379 
380  Json::Value toJson(){
381  Json::Value output;
382  output["status"] = status;
383  output["inquiry_scan_interval"] = inquiry_scan_interval;
384  output["inquiry_scan_window"] = inquiry_scan_window;
385  return output;
386  }
387 
389 
390 /*HCI Command : OGF=0x03 | OCF=0x0025 Read voice settings Command*/
392 
393  uint16_t voice_settings; /*2B : 10 Bits meaningful*/
394 
395  ctrl_bsb_read_voice_settings_response_cmd(const std::vector<uint8_t> &data){
396  status = data[0];
397  voice_settings = data[1] + (data[2]<<8);
398  }
399 
400  Json::Value toJson(){
401  Json::Value output;
402  output["status"] = status;
403  output["voice_settings"] = voice_settings;
404  return output;
405  }
406 
408 
409 /*HCI Command : OGF=0x03 | OCF=0x0039 Read Inquiry Access Code (IAC) LAP Command*/
411 
412  uint8_t num_current_iac; /*Specifies the number of IACs (Inquiry Access Codes) which are currently in use by the local BR/
413  EDR Controller to simultaneously listen for during an Inquiry Scan*/
414 
415  std::vector<uint32_t> lap_iac; /*LAP(s) used to create IAC which is currently in use by the local BR/EDR
416  Controller to simultaneously listen for during an Inquiry Scan*/
417 
418  ctrl_bsb_read_iac_lap_response_cmd(const std::vector<uint8_t> &data){
419  status = data[0];
420  num_current_iac = data[1];
421  for (unsigned int i = 0 ; i< num_current_iac;i++){
422  uint32_t lap = data[2+i] + (data[3+i]<<8) + (data[4+i]<<16);
423  lap_iac.push_back(lap);
424  }
425  }
426 
427  Json::Value toJson(){
428  Json::Value output;
429  output["status"] = status;
430  output["num_current_iac"] = num_current_iac;
431  Json::Value laps(Json::arrayValue);
432  for (unsigned int i = 0; i < num_current_iac;i++){
433  laps.append(lap_iac[i]);
434  }
435  output["lap_iac"] = laps;
436  return output;
437  }
438 
440 
441 /*HCI Command : OGF=0x03 | OCF=0x0046 Read page scan type Command*/
443 
444  uint8_t page_scan_type; /*1B : 0x00:Mandatory: Standard Scan (default) | 0x01: Optional: Interlaced Scan*/
445 
446  ctrl_bsb_read_page_scan_type_response_cmd(const std::vector<uint8_t> &data){
447  status = data[0];
448  page_scan_type = data[1];
449  }
450 
451  Json::Value toJson(){
452  Json::Value output;
453  output["status"] = status;
454  output["page_scan_type"] = page_scan_type;
455  return output;
456  }
457 
459 
460 /*HCI Command : OGF=0x03 | OCF=0x0055 Read simple pairing mode Command*/
462 
463  uint8_t simple_pairing_mode; /*1B : 0x00:Simple Pairing disabled | 0x01:Simple pairing enabled*/
464 
465  ctrl_bsb_read_simple_pairing_mode_response_cmd(const std::vector<uint8_t> &data){
466  status = data[0];
467  simple_pairing_mode = data[1];
468  }
469 
470  Json::Value toJson(){
471  Json::Value output;
472  output["status"] = status;
473  output["simple_pairing_mode"] = simple_pairing_mode;
474  return output;
475  }
476 
478 
479 /*HCI Command : OGF=0x03 | OCF=0x0051 Read extended inquiry response Command*/
481 
482  uint8_t fec_required; /*1B : 0x00:FEC (Forward Error correction) is not required | 0x01:FEC is required*/
483  std::vector<uint8_t> extended_inquiry_response;
484 
485  ctrl_bsb_read_extended_inquiry_response_response_cmd(const std::vector<uint8_t> &data){
486  status = data[0];
487  fec_required = data[1];
488  for (unsigned int i = 0;i < 240;i++){
489  extended_inquiry_response.push_back(data[2+i]);
490  }
491  }
492 
493  Json::Value toJson(){
494  Json::Value output;
495  output["fec_required"] = fec_required;
496  Json::Value extended_inquiry_response_val(Json::arrayValue);
497  for (unsigned int i = 0;i < 240;i++){
498  extended_inquiry_response_val.append(extended_inquiry_response[i]);
499  }
500  output["extended_inquiry_response"] = extended_inquiry_response_val;
501  return output;
502  }
503 
505 
506 /*HCI Command : OGF=0x03 | OCF=0x0019 Read scan enable Command*/
508 
509  uint8_t scan_enable; /*1B : 0x00:No Scans enabled | 0x01: Inquiry Scan enabled/Page Scan disabled | 0x02: Inquiry Scan disabled/Page Scan enabled | 0x03:Inquiry Scan enabled/Page Scan enabled*/
510 
511  ctrl_bsb_read_scan_enable_response_cmd(const std::vector<uint8_t> &data){
512  status = data[0];
513  scan_enable = data[1];
514  }
515 
516  Json::Value toJson(){
517  Json::Value output;
518  output["status"] = status;
519  output["scan_enable"] = scan_enable;
520  return output;
521  }
522 
524 
525 /*HCI Command : OGF=0x03 | OCF=0x0042 Read inquiry scan type Command*/
527 
528  uint8_t scan_type; /*1B : 0x00:Standard Scan | 0x01: Interlaced Scan*/
529 
530  ctrl_bsb_read_inquiry_scan_type_response_cmd(const std::vector<uint8_t> &data){
531  status = data[0];
532  scan_type = data[1];
533  }
534 
535  Json::Value toJson(){
536  Json::Value output;
537  output["status"] = status;
538  output["scan_type"] = scan_type;
539  return output;
540  }
541 
543 
544 /*HCI Command : OGF=0x03 | OCF=0x0017 Read page timeout Command*/
546 
547  uint16_t page_timeout; /* 0:Illegal Page Timeout. Must be larger than 0 otherwise Page Timeout measured in Number of Baseband slots*/
548 
549  ctrl_bsb_read_page_timeout_response_cmd(const std::vector<uint8_t> &data){
550  status = data[0];
551  page_timeout = data[1] + (data[2]<<8);
552  }
553 
554  Json::Value toJson(){
555  Json::Value output;
556  output["status"] = status;
557  output["page_timeout"] = page_timeout;
558  return output;
559  }
560 
562 
563 #endif //HCIRESPONSEPACKET_H
ctrl_bsb_read_page_scan_type_response_cmd ctrl_bsb_read_page_scan_type_response_cmd_t
ctrl_bsb_read_scan_enable_response_cmd ctrl_bsb_read_scan_enable_response_cmd_t
Definition: hci_response_packet.h:118
uint16_t manufacturer_name
Definition: hci_response_packet.h:146
ctrl_bsb_read_class_of_device_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:312
std::string toString()
Definition: hci_global.h:144
ctrl_bsb_read_inquiry_scan_type_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:530
Definition: hci_response_packet.h:227
ctrl_bsb_read_simple_pairing_mode_response_cmd ctrl_bsb_read_simple_pairing_mode_response_cmd_t
Definition: hci_response_packet.h:545
uint8_t fec_required
Definition: hci_response_packet.h:482
Definition: hci_response_packet.h:347
Json::Value toJson()
Definition: hci_response_packet.h:157
ctrl_bsb_read_extended_inquiry_response_response_cmd ctrl_bsb_read_extended_inquiry_response_response_cmd_t
ctrl_bsb_read_voice_settings_response_cmd ctrl_bsb_read_voice_settings_response_cmd_t
Definition: hci_response_packet.h:369
uint16_t inquiry_scan_window
Definition: hci_response_packet.h:372
Json::Value toJson()
Definition: hci_response_packet.h:470
uint8_t address[6]
Definition: hci_global.h:138
std::vector< uint8_t > supported_hci_command_mask
Definition: hci_response_packet.h:67
uint8_t total_num_le_data_packet_length
Definition: hci_response_packet.h:230
ctrl_bsb_read_simple_pairing_mode_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:465
ctrl_bsb_read_iac_lap_response_cmd ctrl_bsb_read_iac_lap_response_cmd_t
uint8_t le_supported_host
Definition: hci_response_packet.h:349
uint16_t total_num_synchronous_data_packet_length
Definition: hci_response_packet.h:95
Definition: hci_response_packet.h:308
Definition: hci_response_packet.h:38
Definition: hci_response_packet.h:410
uint16_t page_timeout
Definition: hci_response_packet.h:547
le_read_white_list_response_cmd le_read_white_list_response_cmd_t
Definition: hci_response_packet.h:280
informational_read_buffer_size_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:97
le_read_white_list_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:212
Definition: hci_response_packet.h:391
ctrl_bsb_read_local_name_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:284
uint8_t scan_enable
Definition: hci_response_packet.h:509
Definition: hci_response_packet.h:507
uint16_t lmp_pal_subversion
Definition: hci_response_packet.h:147
ctrl_bsb_read_page_timeout_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:549
std::vector< uint8_t > supported_le_features
Definition: hci_response_packet.h:251
std::vector< uint8_t > extended_lmp_features
Definition: hci_response_packet.h:174
Json::Value toJson()
Definition: hci_response_packet.h:535
Json::Value toJson()
Definition: hci_response_packet.h:132
std::vector< uint32_t > lap_iac
Definition: hci_response_packet.h:415
ctrl_bsb_read_inquiry_scan_activity_response_cmd ctrl_bsb_read_inquiry_scan_activity_response_cmd_t
uint16_t total_num_acld_data_packet_length
Definition: hci_response_packet.h:94
std::string local_name
Definition: hci_response_packet.h:282
ctrl_bsb_read_le_host_support_response_cmd ctrl_bsb_read_le_host_support_response_cmd_t
Definition: hci_response_packet.h:442
informational_read_local_extended_features_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:176
Json::Value toJson()
Definition: hci_response_packet.h:400
Json::Value toJson()
Definition: hci_response_packet.h:44
uint16_t le_data_packet_length
Definition: hci_response_packet.h:229
Json::Value toJson()
Definition: hci_response_packet.h:260
uint8_t inquiry_mode
Definition: hci_response_packet.h:330
Definition: hci_response_packet.h:461
uint8_t simple_pairing_mode
Definition: hci_response_packet.h:463
uint8_t maximum_page_number
Definition: hci_response_packet.h:173
IHciResponseFrame class Interface defining all a generic HCI Response Frame.
Definition: IHciResponseFrame.h:43
ctrl_bsb_read_page_timeout_response_cmd ctrl_bsb_read_page_timeout_response_cmd_t
uint16_t voice_settings
Definition: hci_response_packet.h:393
le_read_local_supported_features_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:253
uint8_t status
Definition: IHciResponseFrame.h:59
ctrl_bsb_read_inquiry_mode_response_cmd ctrl_bsb_read_inquiry_mode_response_cmd_t
uint8_t page_scan_type
Definition: hci_response_packet.h:444
informational_read_local_version_information_response_cmd informational_read_local_version_information_response_cmd_t
uint8_t simultaneous_le_host
Definition: hci_response_packet.h:350
Definition: hci_response_packet.h:208
le_read_local_supported_features_response_cmd le_read_local_supported_features_response_cmd_t
ctrl_bsb_read_le_host_support_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:352
Json::Value toJson()
Definition: hci_response_packet.h:358
informational_read_local_extended_features_response_cmd informational_read_local_extended_features_response_cmd_t
Json::Value toJson()
Definition: hci_response_packet.h:493
ctrl_bsb_read_iac_lap_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:418
Definition: hci_response_packet.h:249
uint8_t num_current_iac
Definition: hci_response_packet.h:412
uint16_t inquiry_scan_interval
Definition: hci_response_packet.h:371
Json::Value toJson()
Definition: hci_response_packet.h:516
uint32_t device_class
Definition: hci_response_packet.h:310
Json::Value toJson()
Definition: hci_response_packet.h:298
Json::Value toJson()
Definition: hci_response_packet.h:380
status_response_cmd status_response_cmd_t
Json::Value toJson()
Definition: hci_response_packet.h:554
bt_address bd_addr
Definition: hci_response_packet.h:120
Json::Value toJson()
Definition: hci_response_packet.h:105
informational_read_local_version_information_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:149
uint16_t hci_version
Definition: hci_response_packet.h:144
Definition: hci_response_packet.h:526
ctrl_bsb_read_inquiry_mode_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:332
Definition: hci_response_packet.h:65
Json::Value toJson()
Definition: hci_response_packet.h:217
informational_read_bd_addr_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:122
informational_read_bd_addr_response_cmd informational_read_bd_addr_response_cmd_t
informational_read_local_supported_cmd_response_cmd informational_read_local_supported_cmd_response_cmd_t
ctrl_bsb_read_extended_inquiry_response_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:485
Definition: hci_response_packet.h:480
informational_read_local_supported_cmd_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:69
ctrl_bsb_read_local_name_response_cmd ctrl_bsb_read_local_name_response_cmd_t
Json::Value toJson()
Definition: hci_response_packet.h:76
std::vector< uint8_t > extended_inquiry_response
Definition: hci_response_packet.h:483
Definition: hci_response_packet.h:170
ctrl_bsb_read_inquiry_scan_activity_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:374
ctrl_bsb_read_scan_enable_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:511
uint8_t white_list_size
Definition: hci_response_packet.h:210
Json::Value toJson()
Definition: hci_response_packet.h:317
Json::Value toJson()
Definition: hci_response_packet.h:185
uint8_t page_number
Definition: hci_response_packet.h:172
le_read_buffer_size_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:232
Definition: hci_response_packet.h:90
le_read_buffer_size_response_cmd le_read_buffer_size_response_cmd_t
Json::Value toJson()
Definition: hci_response_packet.h:337
informational_read_buffer_size_response_cmd informational_read_buffer_size_response_cmd_t
ctrl_bsb_read_voice_settings_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:395
Json::Value toJson()
Definition: hci_response_packet.h:427
uint8_t scan_type
Definition: hci_response_packet.h:528
ctrl_bsb_read_page_scan_type_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:446
uint16_t acl_data_packet_length
Definition: hci_response_packet.h:92
uint8_t lmp_pal_version
Definition: hci_response_packet.h:145
Definition: hci_global.h:136
uint8_t synchronous_data_packet_length
Definition: hci_response_packet.h:93
ctrl_bsb_read_class_of_device_response_cmd ctrl_bsb_read_class_of_device_response_cmd_t
Json::Value toJson()
Definition: hci_response_packet.h:451
ctrl_bsb_read_inquiry_scan_type_response_cmd ctrl_bsb_read_inquiry_scan_type_response_cmd_t
Json::Value toJson()
Definition: hci_response_packet.h:238
Definition: hci_response_packet.h:328
status_response_cmd(const std::vector< uint8_t > &data)
Definition: hci_response_packet.h:40