@@ -78,7 +78,7 @@ void adafruit_soc_task(void* arg);
78
78
static void bluefruit_blinky_cb ( TimerHandle_t xTimer )
79
79
{
80
80
(void ) xTimer;
81
- ledToggle (LED_CONN );
81
+ ledToggle (LED_BLUE );
82
82
}
83
83
84
84
/* *
@@ -472,7 +472,7 @@ void AdafruitBluefruit::_ble_handler(ble_evt_t* evt)
472
472
if (para->role == BLE_GAP_ROLE_PERIPH)
473
473
{
474
474
stopConnLed ();
475
- if (_led_conn) ledOn (LED_CONN );
475
+ if (_led_conn) ledOn (LED_BLUE );
476
476
477
477
_conn_hdl = evt->evt .gap_evt .conn_handle ;
478
478
_conn_interval = para->conn_params .min_conn_interval ;
@@ -509,7 +509,7 @@ void AdafruitBluefruit::_ble_handler(ble_evt_t* evt)
509
509
// Check if it is peripheral connection
510
510
if (_conn_hdl == evt->evt .gap_evt .conn_handle )
511
511
{
512
- if (_led_conn) ledOff (LED_CONN );
512
+ if (_led_conn) ledOff (LED_BLUE );
513
513
514
514
// Save all configured cccd
515
515
if (_bonded) _saveBondedCCCD ();
@@ -519,6 +519,7 @@ void AdafruitBluefruit::_ble_handler(ble_evt_t* evt)
519
519
varclr (&_peer_addr);
520
520
521
521
vSemaphoreDelete (_txbuf_sem);
522
+ _txbuf_sem = NULL ;
522
523
523
524
if ( _discconnect_cb ) _discconnect_cb (evt->evt .gap_evt .params .disconnected .reason );
524
525
@@ -535,22 +536,26 @@ void AdafruitBluefruit::_ble_handler(ble_evt_t* evt)
535
536
break ;
536
537
537
538
case BLE_EVT_TX_COMPLETE:
538
- for ( uint8_t i= 0 ; i<evt-> evt . common_evt . params . tx_complete . count ; i++ )
539
+ if ( _txbuf_sem )
539
540
{
540
- xSemaphoreGive (_txbuf_sem);
541
+ for (uint8_t i=0 ; i<evt->evt .common_evt .params .tx_complete .count ; i++)
542
+ {
543
+ xSemaphoreGive (_txbuf_sem);
544
+ }
541
545
}
542
546
break ;
543
547
544
548
case BLE_GAP_EVT_SEC_PARAMS_REQUEST:
545
549
{
550
+ // Pairing in progress
546
551
varclr (&_bond_data);
547
552
_bond_data.own_enc .master_id .ediv = 0xFFFF ; // invalid value for ediv
548
553
549
554
/* Step 1: Pairing/Bonding
550
555
* - Central supplies its parameters
551
556
* - We replies with our security parameters
552
557
*/
553
- // ble_gap_sec_params_t* peer = &evt->evt.gap_evt.params.sec_params_request.peer_params;
558
+ // ble_gap_sec_params_t* peer = &evt->evt.gap_evt.params.sec_params_request.peer_params;
554
559
555
560
ble_gap_sec_params_t sec_para =
556
561
{
@@ -598,7 +603,7 @@ COMMENT_OUT(
598
603
599
604
case BLE_GAP_EVT_SEC_INFO_REQUEST:
600
605
{
601
- // If bonded previously, Central will ask for stored keys.
606
+ // Reconnection. If bonded previously, Central will ask for stored keys.
602
607
// return security information. Otherwise NULL
603
608
ble_gap_evt_sec_info_request_t * sec_request = (ble_gap_evt_sec_info_request_t *) &evt->evt .gap_evt .params .sec_info_request ;
604
609
@@ -616,10 +621,10 @@ COMMENT_OUT(
616
621
617
622
case BLE_GAP_EVT_PASSKEY_DISPLAY:
618
623
{
619
- // ble_gap_evt_passkey_display_t const* passkey_display = &evt->evt.gap_evt.params.passkey_display;
624
+ // ble_gap_evt_passkey_display_t const* passkey_display = &evt->evt.gap_evt.params.passkey_display;
620
625
//
621
- // PRINT_INT(passkey_display->match_request);
622
- // PRINT_BUFFER(passkey_display->passkey, 6);
626
+ // PRINT_INT(passkey_display->match_request);
627
+ // PRINT_BUFFER(passkey_display->passkey, 6);
623
628
624
629
// sd_ble_gap_auth_key_reply
625
630
}
@@ -645,7 +650,7 @@ COMMENT_OUT(
645
650
{
646
651
ble_gap_evt_auth_status_t * status = &evt->evt .gap_evt .params .auth_status ;
647
652
648
- // Bonding succeeded --> save encryption keys
653
+ // Pairing/ Bonding succeeded --> save encryption keys
649
654
if (BLE_GAP_SEC_STATUS_SUCCESS == status->auth_status )
650
655
{
651
656
_saveBondKeys ();
0 commit comments