Loading system/gd/hci/distance_measurement_manager.cc +16 −13 Original line number Diff line number Diff line Loading @@ -624,14 +624,16 @@ struct DistanceMeasurementManager::impl { procedure_done_status = cs_event_result.GetProcedureDoneStatus(); subevent_done_status = cs_event_result.GetSubeventDoneStatus(); result_data_structures = cs_event_result.GetResultDataStructures(); init_cs_procedure_data( if (cs_trackers_.find(connection_handle) == cs_trackers_.end()) { log::warn("Can't find any tracker for {}", connection_handle); return; } CsProcedureData* procedure_data = init_cs_procedure_data( connection_handle, cs_event_result.GetProcedureCounter(), cs_event_result.GetNumAntennaPaths(), true); CsProcedureData* procedure_data = get_procedure_data(connection_handle, cs_event_result.GetProcedureCounter()); if (procedure_data != nullptr && cs_trackers_[connection_handle].role == CsRole::INITIATOR) { if (cs_trackers_[connection_handle].role == CsRole::INITIATOR) { procedure_data->frequency_compensation.push_back( cs_event_result.GetFrequencyCompensation()); } Loading Loading @@ -662,6 +664,10 @@ struct DistanceMeasurementManager::impl { procedure_done_status = cs_event_result.GetProcedureDoneStatus(); subevent_done_status = cs_event_result.GetSubeventDoneStatus(); result_data_structures = cs_event_result.GetResultDataStructures(); if (cs_trackers_.find(connection_handle) == cs_trackers_.end()) { log::warn("Can't find any tracker for {}", connection_handle); return; } } uint16_t counter = cs_trackers_[connection_handle].local_counter; Loading Loading @@ -729,15 +735,11 @@ struct DistanceMeasurementManager::impl { procedure_data->segmentation_header_.rolling_segment_counter_ %= 64; } void init_cs_procedure_data( CsProcedureData* init_cs_procedure_data( uint16_t connection_handle, uint16_t procedure_counter, uint8_t num_antenna_paths, bool local) { if (cs_trackers_.find(connection_handle) == cs_trackers_.end()) { log::warn("Can't find any tracker for {}", connection_handle); return; } // Update procedure count if (local) { cs_trackers_[connection_handle].local_counter = procedure_counter; Loading @@ -746,10 +748,10 @@ struct DistanceMeasurementManager::impl { } std::vector<CsProcedureData>& data_list = cs_trackers_[connection_handle].procedure_data_list; for (CsProcedureData procedure_data : data_list) { if (procedure_data.counter == procedure_counter) { // Data already exist, return return; for (auto& data : data_list) { if (data.counter == procedure_counter) { // Data already exists, return return &data; } } log::info("Create data for procedure_counter: {}", procedure_counter); Loading @@ -763,6 +765,7 @@ struct DistanceMeasurementManager::impl { log::warn("buffer full, drop procedure data with counter: {}", data_list.front().counter); data_list.erase(data_list.begin()); } return &data_list.back(); } CsProcedureData* get_procedure_data(uint16_t connection_handle, uint16_t counter) { Loading Loading
system/gd/hci/distance_measurement_manager.cc +16 −13 Original line number Diff line number Diff line Loading @@ -624,14 +624,16 @@ struct DistanceMeasurementManager::impl { procedure_done_status = cs_event_result.GetProcedureDoneStatus(); subevent_done_status = cs_event_result.GetSubeventDoneStatus(); result_data_structures = cs_event_result.GetResultDataStructures(); init_cs_procedure_data( if (cs_trackers_.find(connection_handle) == cs_trackers_.end()) { log::warn("Can't find any tracker for {}", connection_handle); return; } CsProcedureData* procedure_data = init_cs_procedure_data( connection_handle, cs_event_result.GetProcedureCounter(), cs_event_result.GetNumAntennaPaths(), true); CsProcedureData* procedure_data = get_procedure_data(connection_handle, cs_event_result.GetProcedureCounter()); if (procedure_data != nullptr && cs_trackers_[connection_handle].role == CsRole::INITIATOR) { if (cs_trackers_[connection_handle].role == CsRole::INITIATOR) { procedure_data->frequency_compensation.push_back( cs_event_result.GetFrequencyCompensation()); } Loading Loading @@ -662,6 +664,10 @@ struct DistanceMeasurementManager::impl { procedure_done_status = cs_event_result.GetProcedureDoneStatus(); subevent_done_status = cs_event_result.GetSubeventDoneStatus(); result_data_structures = cs_event_result.GetResultDataStructures(); if (cs_trackers_.find(connection_handle) == cs_trackers_.end()) { log::warn("Can't find any tracker for {}", connection_handle); return; } } uint16_t counter = cs_trackers_[connection_handle].local_counter; Loading Loading @@ -729,15 +735,11 @@ struct DistanceMeasurementManager::impl { procedure_data->segmentation_header_.rolling_segment_counter_ %= 64; } void init_cs_procedure_data( CsProcedureData* init_cs_procedure_data( uint16_t connection_handle, uint16_t procedure_counter, uint8_t num_antenna_paths, bool local) { if (cs_trackers_.find(connection_handle) == cs_trackers_.end()) { log::warn("Can't find any tracker for {}", connection_handle); return; } // Update procedure count if (local) { cs_trackers_[connection_handle].local_counter = procedure_counter; Loading @@ -746,10 +748,10 @@ struct DistanceMeasurementManager::impl { } std::vector<CsProcedureData>& data_list = cs_trackers_[connection_handle].procedure_data_list; for (CsProcedureData procedure_data : data_list) { if (procedure_data.counter == procedure_counter) { // Data already exist, return return; for (auto& data : data_list) { if (data.counter == procedure_counter) { // Data already exists, return return &data; } } log::info("Create data for procedure_counter: {}", procedure_counter); Loading @@ -763,6 +765,7 @@ struct DistanceMeasurementManager::impl { log::warn("buffer full, drop procedure data with counter: {}", data_list.front().counter); data_list.erase(data_list.begin()); } return &data_list.back(); } CsProcedureData* get_procedure_data(uint16_t connection_handle, uint16_t counter) { Loading