How to shorten the data transmission cycle using sd_ble_gatts_hvx()?

 Hello.

Log data is transmitted to APP(phone) using sd_ble_gatts_hvx().

The length of one packet is 20 bytes, and the expected total number of packets is about 3,200.

The connection interval I set is min. 7.5mS as shown below log.

The connection interval sent from the APP(phone) after connection is 12 (15mS).

This connection interval is not updated.

If you look at the log below, the log data is transmitted after the BLE_GATTS_EVT_HVN_TX_COMPLETE event every 15mS.

It seems to follow the setting of the APP(phone).

I wonder if there is any way to shorten this cycle.

 

The development environment is as follows.

- MCU : nRF52833

- SD : s140

- SDK : 17.1.0

 

Below is the log data.

 

 Thanks.

// *** my setting *** //
#define MIN_CONN_INTERVAL						MSEC_TO_UNITS(7.5, UNIT_1_25_MS)	// 7.5, Minimum connection interval */
#define MAX_CONN_INTERVAL						MSEC_TO_UNITS(100, UNIT_1_25_MS)	// Maximum connection interval. */
#define SLAVE_LATENCY							10											// 5, Slave latency
#define CONN_SUP_TIMEOUT						MSEC_TO_UNITS(5000, UNIT_10_MS)	// 3,000, Connection supervisory timeout. */

#define FIRST_CONN_PARAMS_UPDATE_DELAY		APP_TIMER_TICKS(100)					// 200, Time from initiating event (connect or start of notification) to first time sd_ble_gap_conn_param_update is called (5 seconds). */
#define NEXT_CONN_PARAMS_UPDATE_DELAY		APP_TIMER_TICKS(5000)				// 3000, Time between each call to sd_ble_gap_conn_param_update after the first call (30 seconds). */
#define MAX_CONN_PARAM_UPDATE_COUNT			3											/**< Number of attempts before giving up the connection parameter negotiation. */



// *** after connect with APP(phone) *** //
00> BLE_GAP_EVT_CONN_PARAM_UPDATE - conn_interval min:6, conn_interval max:6		// from APP(phone), I don't update comm_params.
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:13815
00> BLE_GAP_EVT_CONN_PARAM_UPDATE - conn_interval min:12, conn_interval max:12	// from APP(phone), I don't update comm_params.
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:13845
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:13905
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:13965
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:13995
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14175
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14535
00> tx log (58, 0-1), time:14566							// I transmit my 1 log packet every 30mS.
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14595		// I receive BLE_GATTS_EVT_HVN_TX_COMPLETE event every 30mS.
00> tx log (58, 0-2), time:14596
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14625
00> tx log (57, 1-1), time:14626
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14655
00> tx log (57, 1-2), time:14656
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14685
00> tx log (56, 2),   time:14686
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14715
00> tx log (55, 3),   time:14716
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14745
00> tx log (54, 4),   time:14746
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14775
00> tx log (53, 5),   time:14776
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14805
00> tx log (52, 6),   time:14806
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14835
00> tx log (51, 7),   time:14836
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14865
00> tx log (50, 8),   time:14866
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14895
00> tx log (49, 9),   time:14896
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14925
00> tx log (48, 10),   time:14926
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14955
00> tx log (47, 11),   time:14956
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:14985
00> tx log (46, 12-1), time:14986
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15015
00> tx log (46, 12-2), time:15016
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15045
00> tx log (45, 13),   time:15046
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15075
00> tx log (44, 14-1), time:15076
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15105
00> tx log (44, 14-2), time:15106							// I transmit my 1 log packet every 15mS.
00> tx log (43, 15),   time:15122
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15135			// I receive BLE_GATTS_EVT_HVN_TX_COMPLETE event every 15mS.
00> tx log (42, 16-1), time:15136
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15150
00> tx log (42, 16-2), time:15151
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15166
00> tx log (41, 17-1), time:15166
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15181
00> tx log (41, 17-2), time:15181
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15196
00> tx log (40, 18-1), time:15196
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15211
00> tx log (40, 18-2), time:15211
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15226
00> tx log (39, 19),   time:15226
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15241
00> tx log (38, 20-1), time:15241
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15255
00> tx log (38, 20-2), time:15256
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15271
00> tx log (37, 21-1), time:15271
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15285
00> tx log (37, 21-2), time:15286
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15301
00> tx log (36, 22-1), time:15301
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15315
00> tx log (36, 22-2), time:15316
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15330
00> tx log (35, 23),   time:15331
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15346
00> tx log (34, 24-1), time:15346
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15361
00> tx log (34, 24-2), time:15361
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15376
00> tx log (33, 25),   time:15376
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15390
00> tx log (32, 26),   time:15391
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15405
00> tx log (31, 27),   time:15406
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15420
00> tx log (30, 28),   time:15421
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15436
00> tx log (29, 29),   time:15436
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15450
00> tx log (28, 30),   time:15451
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15466
00> tx log (27, 31),   time:15466
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15481
00> tx log (26, 32),   time:15481
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15495
00> tx log (25, 33),   time:15496
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15510
00> tx log (24, 34),   time:15511
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15526
00> tx log (23, 35-1), time:15526
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15540
00> tx log (23, 35-2), time:15541
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15555
00> tx log (22, 36),   time:15556
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15570
00> tx log (21, 37-1), time:15571
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15585
00> tx log (21, 37-2), time:15586
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15600
00> tx log (20, 38-1), time:15601
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15615
00> tx log (20, 38-2), time:15616
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15630
00> tx log (19, 39),   time:15631
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15646
00> tx log (18, 40-1), time:15646
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15661
00> tx log (18, 40-2), time:15661
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15676
00> tx log (17, 41-1), time:15676
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15690
00> tx log (17, 41-2), time:15691
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15706
00> tx log (16, 42-1), time:15706
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15720
00> tx log (16, 42-2), time:15721
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15736
00> tx log (15, 43),   time:15736
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15750
00> tx log (14, 44-1), time:15751
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15766
00> tx log (14, 44-2), time:15766
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15781
00> tx log (13, 45),   time:15782
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15795
00> tx log (12, 46-1), time:15796
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15810
00> tx log (12, 46-2), time:15811
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15825
00> tx log (11, 47),   time:15826
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15841
00> tx log (10, 48-1), time:15842
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15856
00> tx log (10, 48-2), time:15856
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15871
00> tx log (9, 49-1), time:15872
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15885
00> tx log (9, 49-2), time:15886
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15900
00> tx log (8, 50-1), time:15901
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15915
00> tx log (8, 50-2), time:15916
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15931
00> tx log (7, 51),   time:15932
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15945
00> tx log (6, 52-1), time:15946
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15961
00> tx log (6, 52-2), time:15962
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15975
00> tx log (5, 53),   time:15976
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:15991
00> tx log (4, 54-1), time:15992
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16006
00> tx log (4, 54-2), time:16007
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16021
00> tx log (3, 55-1), time:16022
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16036
00> tx log (3, 55-2), time:16037
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16051
00> tx log (2, 56-1), time:16052
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16066
00> tx log (2, 56-2), time:16067
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16081
00> tx log (1, 57),   time:16082
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16095
00> LOG TX DONE 1														// all tx done
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16111
00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:16141

Parents
  • As you suggested, I tried to transmit after storing the transmission data in the buffer.

    The results did not change significantly.

    the process

    1. Stacking the transmission data in the buffer
    2. Send Until Fail
    3. Listen for BLE_GATTS_EVT_HVN_TX_COMPLETE event on failure
    4. Repeat from step 1. when receiving BLE_GATTS_EVT_HVN_TX_COMPLETE event

    I attach the code I used and log data.

    I'm looking for a related part, but I don't know what the particular problem is.

    Please advise.

     

    thanks.

    #ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH
    #define NRF_SDH_BLE_GAP_EVENT_LENGTH 		// 400:500mS		// old : 6
    #endif
    
    
    #define MIN_CONN_INTERVAL						MSEC_TO_UNITS(7.5, UNIT_1_25_MS)	// 7.5, Minimum connection interval */
    #define MAX_CONN_INTERVAL						MSEC_TO_UNITS(500, UNIT_1_25_MS)	// 100, Maximum connection interval. */
    #define SLAVE_LATENCY							0											// 5, Slave latency
    #define CONN_SUP_TIMEOUT						MSEC_TO_UNITS(4000, UNIT_10_MS)	// 3,000, Connection supervisory timeout. */
    
    #define FIRST_CONN_PARAMS_UPDATE_DELAY		APP_TIMER_TICKS(1000)				// 100, Time from initiating event (connect or start of notification) to first time sd_ble_gap_conn_param_update is called (5 seconds). */
    #define NEXT_CONN_PARAMS_UPDATE_DELAY		APP_TIMER_TICKS(5000)				// 5000, Time between each call to sd_ble_gap_conn_param_update after the first call (30 seconds). */
    #define MAX_CONN_PARAM_UPDATE_COUNT			3											/**< Number of attempts before giving up the connection parameter negotiation. */
    
    
    static void packet_transmit_handler(void)
    {
    	uint32_t err_code __attribute__((unused)) = NRF_SUCCESS;
    	ble_gatts_hvx_params_t hvx_params __attribute__((unused));
    	ble_gatts_conn_cfg_t queue_size __attribute__((unused));
    
    #if 1
    	if(flagBle.txBusy == true)
    	{
    		if(m_tx_packet_buffer.counter)
    		{
    			flagBle.txDelay = true;
    			m_packet_timer_start();
    		}
    		#ifdef MSG_BLE
    			NRF_LOG_RAW_INFO("@%s() busy error !!!\r\n", M_FUNCTION);
    		#endif
    
    		return;
    	}
    #endif
    
    //	CRITICAL_REGION_ENTER();
    //	memset(&queue_size, 0, sizeof(queue_size));
    
    	while(1)
    	{
    		if(m_tx_packet_buffer.rear_index != m_tx_packet_buffer.front_index)
    		{
    #if 0
    			err_code = ble_dls_tx_string_send(mp_dls,
    													(void *)&m_tx_packet_buffer.list[m_tx_packet_buffer.rear_index].data,
    													m_tx_packet_buffer.list[m_tx_packet_buffer.rear_index].len);
    #else
    			uint16_t len = m_tx_packet_buffer.list[m_tx_packet_buffer.rear_index].len;
    			memset(&hvx_params, 0, sizeof(hvx_params));
    			hvx_params.handle = mp_dls->tx_handles.value_handle;
    			hvx_params.type   = BLE_GATT_HVX_NOTIFICATION;
    			hvx_params.offset = 0;
    			hvx_params.p_len  = &len;
    			hvx_params.p_data = (void *)&m_tx_packet_buffer.list[m_tx_packet_buffer.rear_index].data;
    
    			err_code = sd_ble_gatts_hvx(mp_dls->conn_handle, &hvx_params);
    #endif
    
    			if(err_code == NRF_SUCCESS)
    			{
    				m_tx_packet_buffer.rear_index++;
    				m_tx_packet_buffer.rear_index %= PACKET_BUFFER_TX_NUM;
    				m_tx_packet_buffer.counter--;
    			#if 1	// def _MSG_BLE
    				NRF_LOG_RAW_INFO("sussess - time:%u\r\n", CURRENT_TIME_MS);
    			#endif
    			}
    			else
    			{
    			#ifdef MSG_BLE
    				extern uint16_t m_log_current_index;
    //				NRF_LOG_RAW_INFO("@%s fail - num:%d!!! - err_code:%d, time:%u\r\n", M_FUNCTION, m_log_current_index, err_code, CURRENT_TIME_MS);
    				NRF_LOG_RAW_INFO("fail!!! - err_code:%d, time:%u\r\n", err_code, CURRENT_TIME_MS);
    			#endif
    				flagBle.txBusy = true;
    				flagBle.txDelay = true;
    				break;
    			}
    		}
    		else
    		{
    //NRF_LOG_RAW_INFO("@%s() same index\r\n");
    			break;
    		}
    	}
    //	CRITICAL_REGION_EXIT();
    
    #ifdef _MSG_BLE
    	NRF_LOG_RAW_INFO("%s() result:%d, time:%u\r\n", M_FUNCTION, err_code, CURRENT_TIME_MS);
    #endif
    
    	if(m_tx_packet_buffer.counter)
    	{
    		m_packet_timer_start();
    	}
    }
    

    00> BLE_GAP_EVT_CONN_PARAM_UPDATE - conn_interval min:6, conn_interval max:6
    00> sussess - time:20699
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:20714
    00> sussess - time:20730
    00> BLE_GAP_EVT_CONN_PARAM_UPDATE - conn_interval min:12, conn_interval max:12
    00> log_flash_delete : index-0 number-0
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:20744
    00> sussess - time:20775
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:20804
    00> sussess - time:20805
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:20834
    00> log_flash_delete : index-0 number-0
    00> sussess - time:20840
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:20864
    00> sussess - time:21015
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21044
    00> sussess - time:21360
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21389
    
    00> ******* log tx request *******
    00>    CMD(229) : log transfer request (0 -> 90)(1, 0)=>(1, 90)
    00> tx log (91, 0-1), time:21405						// log save to buffer
    00> tx log (91, 0-2), time:21405
    00> tx log (90, 1-1), time:21406
    00> tx log (90, 1-2), time:21406
    00> tx log (89, 2-1), time:21406
    00> tx log (89, 2-2), time:21407
    00> tx log (88, 3-1), time:21407
    00> tx log (88, 3-2), time:21407
    00> tx log (87, 4-1), time:21408
    00> tx log (87, 4-2), time:21408
    00> tx log (86, 5-1), time:21409
    00> tx log (86, 5-2), time:21409
    00> tx log (85, 6),   time:21409
    00> tx log (84, 7-1), time:21410
    00> tx log (84, 7-2), time:21410
    00> sussess - time:21410								// tx to APP success
    00> sussess - time:21410
    00> sussess - time:21410
    00> sussess - time:21410
    00> fail!!! - err_code:19, time:21410				// tx fail, error code : 19
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21419	// BLE_GATTS_EVT_HVN_TX_COMPLETE event
    00> tx log (83, 8-1), time:21420						// log save to buffer
    00> tx log (83, 8-2), time:21420
    00> tx log (82, 9-1), time:21421
    00> tx log (82, 9-2), time:21421
    00> sussess - time:21421								// tx to APP success
    00> fail!!! - err_code:19, time:21421				// tx fail, error code : 19
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21434	// BLE_GATTS_EVT_HVN_TX_COMPLETE event
    00> tx log (81, 10-1), time:21435
    00> sussess - time:21435
    00> fail!!! - err_code:19, time:21435
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21449
    00> tx log (81, 10-2), time:21450
    00> sussess - time:21450
    00> fail!!! - err_code:19, time:21450
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21464
    00> tx log (80, 11-1), time:21465
    00> sussess - time:21465
    00> fail!!! - err_code:19, time:21465
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21479
    00> tx log (80, 11-2), time:21479
    00> sussess - time:21479
    00> fail!!! - err_code:19, time:21479
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21494
    00> tx log (79, 12-1), time:21495
    00> sussess - time:21495
    00> fail!!! - err_code:19, time:21495
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21509
    00> tx log (79, 12-2), time:21509
    00> sussess - time:21509
    00> fail!!! - err_code:19, time:21509
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21524
    00> tx log (78, 13-1), time:21525
    00> sussess - time:21525
    00> fail!!! - err_code:19, time:21525
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21539
    00> tx log (78, 13-2), time:21539
    00> sussess - time:21539
    00> fail!!! - err_code:19, time:21539
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21554
    00> tx log (77, 14-1), time:21554
    00> sussess - time:21554
    00> fail!!! - err_code:19, time:21554
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21569
    00> tx log (77, 14-2), time:21570
    00> sussess - time:21570
    00> fail!!! - err_code:19, time:21570
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21584
    00> tx log (76, 15-1), time:21584
    00> sussess - time:21584
    00> fail!!! - err_code:19, time:21584
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21599
    00> tx log (76, 15-2), time:21599
    00> sussess - time:21599
    00> fail!!! - err_code:19, time:21599
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21614
    00> tx log (75, 16-1), time:21614
    00> sussess - time:21614
    00> fail!!! - err_code:19, time:21614
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21629
    00> tx log (75, 16-2), time:21630
    00> sussess - time:21630
    00> fail!!! - err_code:19, time:21630
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21644
    00> tx log (74, 17),   time:21645
    00> sussess - time:21645
    00> fail!!! - err_code:19, time:21645
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21659
    00> tx log (73, 18-1), time:21659
    00> sussess - time:21659
    00> fail!!! - err_code:19, time:21659
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21674
    00> tx log (73, 18-2), time:21675
    00> sussess - time:21675
    00> fail!!! - err_code:19, time:21675
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21689
    00> tx log (72, 19),   time:21689
    00> sussess - time:21689
    00> fail!!! - err_code:19, time:21689
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21704
    00> tx log (71, 20-1), time:21705
    00> sussess - time:21705
    00> fail!!! - err_code:19, time:21705
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21719
    00> tx log (71, 20-2), time:21719
    00> sussess - time:21719
    00> fail!!! - err_code:19, time:21719
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21734
    00> tx log (70, 21-1), time:21734
    00> sussess - time:21734
    00> fail!!! - err_code:19, time:21734
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21749
    00> tx log (70, 21-2), time:21750
    00> sussess - time:21750
    00> fail!!! - err_code:19, time:21750
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21764
    00> tx log (69, 22),   time:21765
    00> sussess - time:21765
    00> fail!!! - err_code:19, time:21765
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21779
    00> tx log (68, 23-1), time:21780
    00> sussess - time:21780
    00> fail!!! - err_code:19, time:21780
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21794
    00> tx log (68, 23-2), time:21794
    00> sussess - time:21794
    00> fail!!! - err_code:19, time:21794
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21809
    00> tx log (67, 24-1), time:21809
    00> sussess - time:21809
    00> fail!!! - err_code:19, time:21809
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21824
    00> tx log (67, 24-2), time:21825
    00> sussess - time:21825
    00> fail!!! - err_code:19, time:21825
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21839
    00> tx log (66, 25),   time:21839
    00> sussess - time:21839
    00> fail!!! - err_code:19, time:21839
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21854
    00> tx log (65, 26-1), time:21855
    00> sussess - time:21855
    00> fail!!! - err_code:19, time:21855
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21869
    00> tx log (65, 26-2), time:21869
    00> sussess - time:21869
    00> fail!!! - err_code:19, time:21869
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21884
    00> tx log (64, 27),   time:21885
    00> sussess - time:21885
    00> fail!!! - err_code:19, time:21885
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21899
    00> tx log (63, 28-1), time:21899
    00> sussess - time:21899
    00> fail!!! - err_code:19, time:21899
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21914
    00> tx log (63, 28-2), time:21914
    00> sussess - time:21914
    00> fail!!! - err_code:19, time:21914
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21929
    00> tx log (62, 29-1), time:21930
    00> sussess - time:21930
    00> fail!!! - err_code:19, time:21930
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21944
    00> tx log (62, 29-2), time:21945
    00> sussess - time:21945
    00> fail!!! - err_code:19, time:21945
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21959
    00> tx log (61, 30),   time:21959
    00> sussess - time:21959
    00> fail!!! - err_code:19, time:21959
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21974
    00> tx log (60, 31-1), time:21974
    00> sussess - time:21974
    00> fail!!! - err_code:19, time:21974
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:21990
    00> tx log (60, 31-2), time:21990
    00> sussess - time:21991
    00> fail!!! - err_code:19, time:21991
    00> tx log (59, 32-1), time:21991
    00> @packet_transmit_handler() busy error !!!
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22004
    00> sussess - time:22004
    00> fail!!! - err_code:19, time:22004
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22019
    00> tx log (59, 32-2), time:22019
    00> sussess - time:22019
    00> fail!!! - err_code:19, time:22019
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22034
    00> tx log (58, 33),   time:22034
    00> sussess - time:22034
    00> fail!!! - err_code:19, time:22034
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22049
    00> tx log (57, 34-1), time:22049
    00> sussess - time:22049
    00> fail!!! - err_code:19, time:22049
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22064
    00> tx log (57, 34-2), time:22064
    00> sussess - time:22064
    00> fail!!! - err_code:19, time:22064
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22079
    00> tx log (56, 35-1), time:22079
    00> sussess - time:22079
    00> fail!!! - err_code:19, time:22079
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22094
    00> tx log (56, 35-2), time:22094
    00> sussess - time:22094
    00> fail!!! - err_code:19, time:22094
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22109
    00> tx log (55, 36),   time:22109
    00> sussess - time:22109
    00> fail!!! - err_code:19, time:22109
    00> BLE_GATTS_EVT_HVN_TX_COMPLETE - time:22124
    

  • Looking at the timestamp it looks like you only get one packet per connection event. What is the event length used on the link (not just what you configure in the peripheral)? Can you make a sniffer trace so that we see what is happening on air?

Reply Children
No Data
Related