main.c (b78986078bc20b1a7b88aa8112c0f0dc0cab23e7) main.c (9c228539c3642b8deb9946ec408199dd181ab24d)
1/*
2 * Copyright (c) 2016 Nordic Semiconductor ASA
3 * Copyright (c) 2015-2016 Intel Corporation
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#include <errno.h>

--- 21 unchanged lines hidden (view full) ---

30#include "hci_transport.h"
31#include "bluetooth_company_id.h"
32#include "btstack_chipset_zephyr.h"
33
34#include "btstack_tlv.h"
35#include "btstack_tlv_none.h"
36#include "ble/le_device_db_tlv.h"
37
1/*
2 * Copyright (c) 2016 Nordic Semiconductor ASA
3 * Copyright (c) 2015-2016 Intel Corporation
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#include <errno.h>

--- 21 unchanged lines hidden (view full) ---

30#include "hci_transport.h"
31#include "bluetooth_company_id.h"
32#include "btstack_chipset_zephyr.h"
33
34#include "btstack_tlv.h"
35#include "btstack_tlv_none.h"
36#include "ble/le_device_db_tlv.h"
37
38#define HCI_OPCODE_ZEPHYR_READ_STATIC_ADDRESS 0xFC09
39const hci_cmd_t hci_zephyr_read_static_address = {
40 HCI_OPCODE_ZEPHYR_READ_STATIC_ADDRESS, ""
41};
42static K_FIFO_DEFINE(tx_queue);
43static K_FIFO_DEFINE(rx_queue);
44
45//
46// hci_transport_zephyr.c
47//
48
49static void (*transport_packet_handler)(uint8_t packet_type, uint8_t *packet, uint16_t size);

--- 151 unchanged lines hidden (view full) ---

201 &btstack_run_loop_base_remove_timer,
202 &btstack_run_loop_zephyr_execute,
203 &btstack_run_loop_base_dump_timer,
204 &btstack_run_loop_zephyr_get_time_ms,
205};
206/**
207 * @brief Provide btstack_run_loop_posix instance for use with btstack_run_loop_init
208 */
38static K_FIFO_DEFINE(tx_queue);
39static K_FIFO_DEFINE(rx_queue);
40
41//
42// hci_transport_zephyr.c
43//
44
45static void (*transport_packet_handler)(uint8_t packet_type, uint8_t *packet, uint16_t size);

--- 151 unchanged lines hidden (view full) ---

197 &btstack_run_loop_base_remove_timer,
198 &btstack_run_loop_zephyr_execute,
199 &btstack_run_loop_base_dump_timer,
200 &btstack_run_loop_zephyr_get_time_ms,
201};
202/**
203 * @brief Provide btstack_run_loop_posix instance for use with btstack_run_loop_init
204 */
209const btstack_run_loop_t * btstack_run_loop_zephyr_get_instance(void){
205static const btstack_run_loop_t * btstack_run_loop_zephyr_get_instance(void){
210 return &btstack_run_loop_zephyr;
211}
212
213static btstack_packet_callback_registration_t hci_event_callback_registration;
214
215static bd_addr_t local_addr;
216
217void nrf_get_static_random_addr( bd_addr_t addr ) {

--- 37 unchanged lines hidden (view full) ---

255 printf("Unknown manufacturer.\n");
256 nrf_get_static_random_addr( local_addr );
257 gap_random_address_set( local_addr );
258 break;
259 }
260}
261
262static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
206 return &btstack_run_loop_zephyr;
207}
208
209static btstack_packet_callback_registration_t hci_event_callback_registration;
210
211static bd_addr_t local_addr;
212
213void nrf_get_static_random_addr( bd_addr_t addr ) {

--- 37 unchanged lines hidden (view full) ---

251 printf("Unknown manufacturer.\n");
252 nrf_get_static_random_addr( local_addr );
253 gap_random_address_set( local_addr );
254 break;
255 }
256}
257
258static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
259 const uint8_t *params;
263 if (packet_type != HCI_EVENT_PACKET) return;
264 switch (hci_event_packet_get_type(packet)){
265 case BTSTACK_EVENT_STATE:
266 switch(btstack_event_state_get_state(packet)){
267 case HCI_STATE_WORKING:
268 printf("BTstack up and running on %s.\n", bd_addr_to_str(local_addr));
269 break;
270 case HCI_STATE_OFF:
271 log_info("Good bye, see you.\n");
272 break;
273 default:
274 break;
275 }
276 break;
277 case HCI_EVENT_COMMAND_COMPLETE:
278 switch (hci_event_command_complete_get_command_opcode(packet)){
279 case HCI_OPCODE_HCI_READ_LOCAL_VERSION_INFORMATION:
280 local_version_information_handler(packet);
281 break;
260 if (packet_type != HCI_EVENT_PACKET) return;
261 switch (hci_event_packet_get_type(packet)){
262 case BTSTACK_EVENT_STATE:
263 switch(btstack_event_state_get_state(packet)){
264 case HCI_STATE_WORKING:
265 printf("BTstack up and running on %s.\n", bd_addr_to_str(local_addr));
266 break;
267 case HCI_STATE_OFF:
268 log_info("Good bye, see you.\n");
269 break;
270 default:
271 break;
272 }
273 break;
274 case HCI_EVENT_COMMAND_COMPLETE:
275 switch (hci_event_command_complete_get_command_opcode(packet)){
276 case HCI_OPCODE_HCI_READ_LOCAL_VERSION_INFORMATION:
277 local_version_information_handler(packet);
278 break;
282 case HCI_OPCODE_ZEPHYR_READ_STATIC_ADDRESS:
283 reverse_48(&packet[7], local_addr);
279 case HCI_OPCODE_HCI_ZEPHYR_READ_STATIC_ADDRESS:
280 params = hci_event_command_complete_get_return_parameters(packet);
281 if(params[0] != 0)
282 break;
283 if(size < 13)
284 break;
285 reverse_48(&params[2], local_addr);
284 gap_random_address_set(local_addr);
285 break;
286 default:
287 break;
288 }
289 break;
290 default:
291 break;

--- 50 unchanged lines hidden ---
286 gap_random_address_set(local_addr);
287 break;
288 default:
289 break;
290 }
291 break;
292 default:
293 break;

--- 50 unchanged lines hidden ---