Loading system/bta/ras/ras_server.cc +13 −15 Original line number Diff line number Diff line Loading @@ -128,11 +128,11 @@ public: uint16_t ccc_data_over_written = tracker.ccc_values_[kRasRangingDataOverWrittenCharacteristic]; if (ccc_real_time != GATT_CLT_CONFIG_NONE) { bool need_confirm = ccc_real_time & GATT_CLT_CONFIG_INDICATION; bool use_notification = ccc_real_time & GATT_CLT_CONFIG_NOTIFICATION; uint16_t attr_id = GetCharacteristic(kRasRealTimeRangingDataCharacteristic)->attribute_handle_; log::debug("Send Real-time Ranging Data is_last {}", is_last); BTA_GATTS_HandleValueIndication(tracker.conn_id_, attr_id, data, need_confirm); BTA_GATTS_HandleValueIndication(tracker.conn_id_, attr_id, data, !use_notification); } if (ccc_data_ready == GATT_CLT_CONFIG_NONE && ccc_data_over_written == GATT_CLT_CONFIG_NONE) { Loading Loading @@ -369,15 +369,11 @@ public: } break; case kRasRangingDataReadyCharacteristic16bit: { p_msg.attr_value.len = kRingingCounterSize; std::vector<uint8_t> value(kRingingCounterSize); if (tracker->buffers_.size() > 0) { p_msg.attr_value.value[0] = (tracker->last_ready_procedure_ & 0xFF); p_msg.attr_value.value[1] = (tracker->last_ready_procedure_ >> 8) & 0xFF; } } break; case kRasRangingDataOverWrittenCharacteristic16bit: { p_msg.attr_value.len = kRingingCounterSize; std::vector<uint8_t> value(kRingingCounterSize); p_msg.attr_value.value[0] = (tracker->last_overwritten_procedure_ & 0xFF); p_msg.attr_value.value[1] = (tracker->last_overwritten_procedure_ >> 8) & 0xFF; } break; Loading Loading @@ -454,11 +450,6 @@ public: return; } ClientTracker* tracker = &trackers_[p_data->req_data.remote_bda]; if (tracker->handling_control_point_command_) { log::warn("Server busy"); SendResponseCode(ResponseCodeValue::SERVER_BUSY, tracker); return; } if (need_rsp) { BTA_GATTS_SendRsp(conn_id, p_data->req_data.trans_id, GATT_SUCCESS, &p_msg); } Loading Loading @@ -566,6 +557,12 @@ public: return; } if (tracker->handling_control_point_command_ && command.opcode_ != Opcode::ABORT_OPERATION) { log::warn("Server busy"); SendResponseCode(ResponseCodeValue::SERVER_BUSY, tracker); return; } tracker->handling_control_point_command_ = true; switch (command.opcode_) { Loading Loading @@ -596,7 +593,7 @@ public: uint16_t ccc_value = tracker->ccc_values_[kRasOnDemandDataCharacteristic]; uint16_t attr_id = GetCharacteristic(kRasOnDemandDataCharacteristic)->attribute_handle_; bool need_confirm = ccc_value & GATT_CLT_CONFIG_INDICATION; bool use_notification = ccc_value & GATT_CLT_CONFIG_NOTIFICATION; std::lock_guard<std::mutex> lock(on_demand_ranging_mutex_); auto it = std::find_if(tracker->buffers_.begin(), tracker->buffers_.end(), Loading @@ -610,7 +607,8 @@ public: break; } log::info("Send On Demand Ranging Data, segment {}", i); BTA_GATTS_HandleValueIndication(tracker->conn_id_, attr_id, it->segments_[i], need_confirm); BTA_GATTS_HandleValueIndication(tracker->conn_id_, attr_id, it->segments_[i], !use_notification); } log::info("Send COMPLETE_RANGING_DATA_RESPONSE, ranging_counter:{}", ranging_counter); std::vector<uint8_t> response(3, 0); Loading Loading
system/bta/ras/ras_server.cc +13 −15 Original line number Diff line number Diff line Loading @@ -128,11 +128,11 @@ public: uint16_t ccc_data_over_written = tracker.ccc_values_[kRasRangingDataOverWrittenCharacteristic]; if (ccc_real_time != GATT_CLT_CONFIG_NONE) { bool need_confirm = ccc_real_time & GATT_CLT_CONFIG_INDICATION; bool use_notification = ccc_real_time & GATT_CLT_CONFIG_NOTIFICATION; uint16_t attr_id = GetCharacteristic(kRasRealTimeRangingDataCharacteristic)->attribute_handle_; log::debug("Send Real-time Ranging Data is_last {}", is_last); BTA_GATTS_HandleValueIndication(tracker.conn_id_, attr_id, data, need_confirm); BTA_GATTS_HandleValueIndication(tracker.conn_id_, attr_id, data, !use_notification); } if (ccc_data_ready == GATT_CLT_CONFIG_NONE && ccc_data_over_written == GATT_CLT_CONFIG_NONE) { Loading Loading @@ -369,15 +369,11 @@ public: } break; case kRasRangingDataReadyCharacteristic16bit: { p_msg.attr_value.len = kRingingCounterSize; std::vector<uint8_t> value(kRingingCounterSize); if (tracker->buffers_.size() > 0) { p_msg.attr_value.value[0] = (tracker->last_ready_procedure_ & 0xFF); p_msg.attr_value.value[1] = (tracker->last_ready_procedure_ >> 8) & 0xFF; } } break; case kRasRangingDataOverWrittenCharacteristic16bit: { p_msg.attr_value.len = kRingingCounterSize; std::vector<uint8_t> value(kRingingCounterSize); p_msg.attr_value.value[0] = (tracker->last_overwritten_procedure_ & 0xFF); p_msg.attr_value.value[1] = (tracker->last_overwritten_procedure_ >> 8) & 0xFF; } break; Loading Loading @@ -454,11 +450,6 @@ public: return; } ClientTracker* tracker = &trackers_[p_data->req_data.remote_bda]; if (tracker->handling_control_point_command_) { log::warn("Server busy"); SendResponseCode(ResponseCodeValue::SERVER_BUSY, tracker); return; } if (need_rsp) { BTA_GATTS_SendRsp(conn_id, p_data->req_data.trans_id, GATT_SUCCESS, &p_msg); } Loading Loading @@ -566,6 +557,12 @@ public: return; } if (tracker->handling_control_point_command_ && command.opcode_ != Opcode::ABORT_OPERATION) { log::warn("Server busy"); SendResponseCode(ResponseCodeValue::SERVER_BUSY, tracker); return; } tracker->handling_control_point_command_ = true; switch (command.opcode_) { Loading Loading @@ -596,7 +593,7 @@ public: uint16_t ccc_value = tracker->ccc_values_[kRasOnDemandDataCharacteristic]; uint16_t attr_id = GetCharacteristic(kRasOnDemandDataCharacteristic)->attribute_handle_; bool need_confirm = ccc_value & GATT_CLT_CONFIG_INDICATION; bool use_notification = ccc_value & GATT_CLT_CONFIG_NOTIFICATION; std::lock_guard<std::mutex> lock(on_demand_ranging_mutex_); auto it = std::find_if(tracker->buffers_.begin(), tracker->buffers_.end(), Loading @@ -610,7 +607,8 @@ public: break; } log::info("Send On Demand Ranging Data, segment {}", i); BTA_GATTS_HandleValueIndication(tracker->conn_id_, attr_id, it->segments_[i], need_confirm); BTA_GATTS_HandleValueIndication(tracker->conn_id_, attr_id, it->segments_[i], !use_notification); } log::info("Send COMPLETE_RANGING_DATA_RESPONSE, ranging_counter:{}", ranging_counter); std::vector<uint8_t> response(3, 0); Loading