hci.c (24b3c62931f131de8243230463f3536778ba1e63) | hci.c (5611a760af48d1ce1beea59c7908be73bd2393f1) |
---|---|
1/* 2 * Copyright (C) 2014 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright --- 807 unchanged lines hidden (view full) --- 816 817 int i; 818 log_info("HCI: handle adv report with num reports: %d", num_reports); 819 uint8_t event[12 + LE_ADVERTISING_DATA_SIZE]; // use upper bound to avoid var size automatic var 820 for (i=0; i<num_reports;i++){ 821 uint8_t data_length = packet[offset + 8]; 822 uint8_t event_size = 10 + data_length; 823 int pos = 0; | 1/* 2 * Copyright (C) 2014 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright --- 807 unchanged lines hidden (view full) --- 816 817 int i; 818 log_info("HCI: handle adv report with num reports: %d", num_reports); 819 uint8_t event[12 + LE_ADVERTISING_DATA_SIZE]; // use upper bound to avoid var size automatic var 820 for (i=0; i<num_reports;i++){ 821 uint8_t data_length = packet[offset + 8]; 822 uint8_t event_size = 10 + data_length; 823 int pos = 0; |
824 event[pos++] = GAP_LE_ADVERTISING_REPORT; | 824 event[pos++] = GAP_LE_EVENT_ADVERTISING_REPORT; |
825 event[pos++] = event_size; 826 memcpy(&event[pos], &packet[offset], 1+1+6); // event type + address type + address 827 offset += 8; 828 pos += 8; 829 event[pos++] = packet[offset + 1 + data_length]; // rssi 830 event[pos++] = packet[offset++]; //data_length; 831 memcpy(&event[pos], &packet[offset], data_length); 832 pos += data_length; --- 2210 unchanged lines hidden (view full) --- 3043 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); 3044 hci_stack->packet_handler(HCI_EVENT_PACKET, event, sizeof(event)); 3045} 3046 3047void hci_emit_security_level(hci_con_handle_t con_handle, gap_security_level_t level){ 3048 log_info("hci_emit_security_level %u for handle %x", level, con_handle); 3049 uint8_t event[5]; 3050 int pos = 0; | 825 event[pos++] = event_size; 826 memcpy(&event[pos], &packet[offset], 1+1+6); // event type + address type + address 827 offset += 8; 828 pos += 8; 829 event[pos++] = packet[offset + 1 + data_length]; // rssi 830 event[pos++] = packet[offset++]; //data_length; 831 memcpy(&event[pos], &packet[offset], data_length); 832 pos += data_length; --- 2210 unchanged lines hidden (view full) --- 3043 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); 3044 hci_stack->packet_handler(HCI_EVENT_PACKET, event, sizeof(event)); 3045} 3046 3047void hci_emit_security_level(hci_con_handle_t con_handle, gap_security_level_t level){ 3048 log_info("hci_emit_security_level %u for handle %x", level, con_handle); 3049 uint8_t event[5]; 3050 int pos = 0; |
3051 event[pos++] = GAP_SECURITY_LEVEL; | 3051 event[pos++] = GAP_EVENT_SECURITY_LEVEL; |
3052 event[pos++] = sizeof(event) - 2; 3053 bt_store_16(event, 2, con_handle); 3054 pos += 2; 3055 event[pos++] = level; 3056 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); 3057 hci_stack->packet_handler(HCI_EVENT_PACKET, event, sizeof(event)); 3058} 3059 3060void hci_emit_dedicated_bonding_result(bd_addr_t address, uint8_t status){ 3061 log_info("hci_emit_dedicated_bonding_result %u ", status); 3062 uint8_t event[9]; 3063 int pos = 0; | 3052 event[pos++] = sizeof(event) - 2; 3053 bt_store_16(event, 2, con_handle); 3054 pos += 2; 3055 event[pos++] = level; 3056 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); 3057 hci_stack->packet_handler(HCI_EVENT_PACKET, event, sizeof(event)); 3058} 3059 3060void hci_emit_dedicated_bonding_result(bd_addr_t address, uint8_t status){ 3061 log_info("hci_emit_dedicated_bonding_result %u ", status); 3062 uint8_t event[9]; 3063 int pos = 0; |
3064 event[pos++] = GAP_DEDICATED_BONDING_COMPLETED; | 3064 event[pos++] = GAP_EVENT_DEDICATED_BONDING_COMPLETED; |
3065 event[pos++] = sizeof(event) - 2; 3066 event[pos++] = status; 3067 bt_flip_addr( &event[pos], address); 3068 pos += 6; 3069 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); 3070 hci_stack->packet_handler(HCI_EVENT_PACKET, event, sizeof(event)); 3071} 3072 --- 509 unchanged lines hidden --- | 3065 event[pos++] = sizeof(event) - 2; 3066 event[pos++] = status; 3067 bt_flip_addr( &event[pos], address); 3068 pos += 6; 3069 hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); 3070 hci_stack->packet_handler(HCI_EVENT_PACKET, event, sizeof(event)); 3071} 3072 --- 509 unchanged lines hidden --- |