@@ -279,12 +279,12 @@ static void calculate_dist_rtt(cs_de_report_t *p_report)
279
279
}
280
280
}
281
281
282
- static bool m_is_tone_quality_bad (cs_de_tone_quality_t * p_tone_qi )
282
+ static bool m_is_tone_quality_bad (cs_de_tone_quality_t * p_tone_qi , uint8_t channel_map [ 10 ] )
283
283
{
284
284
uint8_t bad_tones_count = 0 ;
285
-
286
285
for (uint8_t i = 0 ; i < NUM_CHANNELS ; ++ i ) {
287
- if (p_tone_qi [i ] == CS_DE_TONE_QUALITY_BAD ) {
286
+ if (BT_LE_CS_CHANNEL_BIT_GET (channel_map , i + CHANNEL_INDEX_OFFSET ) &&
287
+ p_tone_qi [i ] == CS_DE_TONE_QUALITY_BAD ) {
288
288
bad_tones_count += 1 ;
289
289
}
290
290
}
@@ -422,25 +422,26 @@ static bool process_step_data(struct bt_le_cs_subevent_step *local_step,
422
422
}
423
423
424
424
void cs_de_populate_report (struct net_buf_simple * local_steps , struct net_buf_simple * peer_steps ,
425
- enum bt_conn_le_cs_role role , cs_de_report_t * p_report )
425
+ struct bt_conn_le_cs_config * config , cs_de_report_t * p_report )
426
426
{
427
427
memset (p_report , 0x0 , sizeof (* p_report ));
428
428
memset (m_n_iqs , 0 , sizeof (m_n_iqs ));
429
429
memset (m_tone_quality_indicators , CS_DE_TONE_QUALITY_BAD ,
430
430
sizeof (m_tone_quality_indicators ));
431
431
432
- p_report -> role = role ;
432
+ p_report -> role = config -> role ;
433
433
434
- bt_ras_rreq_rd_subevent_data_parse (peer_steps , local_steps , role , process_ranging_header ,
435
- NULL , process_step_data , p_report );
434
+ bt_ras_rreq_rd_subevent_data_parse (peer_steps , local_steps , config -> role ,
435
+ process_ranging_header , NULL , process_step_data ,
436
+ p_report );
436
437
437
438
for (uint8_t ap = 0 ; ap < p_report -> n_ap ; ap ++ ) {
438
439
p_report -> distance_estimates [ap ].ifft = NAN ;
439
440
p_report -> distance_estimates [ap ].phase_slope = NAN ;
440
441
p_report -> distance_estimates [ap ].rtt = NAN ;
441
442
p_report -> distance_estimates [ap ].best = NAN ;
442
443
443
- if (m_is_tone_quality_bad (& m_tone_quality_indicators [ap ][0 ])) {
444
+ if (m_is_tone_quality_bad (& m_tone_quality_indicators [ap ][0 ], config -> channel_map )) {
444
445
p_report -> tone_quality [ap ] = CS_DE_TONE_QUALITY_BAD ;
445
446
} else {
446
447
p_report -> tone_quality [ap ] = CS_DE_TONE_QUALITY_OK ;
0 commit comments