summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAyush Jain <ayushjain@google.com>2023-12-02 01:54:12 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-12-02 01:54:12 +0000
commit941befa9bc6ba939ffe2a91a10be14df725b2343 (patch)
treeba94f6b8ab1f5b4032fd71c21a26cb59baafb891
parentb9698356e504189d2fc198c9fec9f7d083c50005 (diff)
parentdfd3cad11eccdec2205714586c32cb7ef9af54ab (diff)
downloaduwb-941befa9bc6ba939ffe2a91a10be14df725b2343.tar.gz
Store UCI CORE_GET_DEVICE_INFO RSP. am: dfd3cad11e
Original change: https://android-review.googlesource.com/c/platform/external/uwb/+/2789571 Change-Id: Ie33f38ef23ac9be584744d0f460401cf9294274c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/rust/uwb_core/src/uci/uci_manager.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/rust/uwb_core/src/uci/uci_manager.rs b/src/rust/uwb_core/src/uci/uci_manager.rs
index 4ec189f..471f62e 100644
--- a/src/rust/uwb_core/src/uci/uci_manager.rs
+++ b/src/rust/uwb_core/src/uci/uci_manager.rs
@@ -707,6 +707,10 @@ struct UciManagerActor<T: UciHal, U: UciLogger> {
// session related commands. This map stores the app provided session id to UWBS generated
// session handle mapping if provided, else reuses session id.
session_id_to_token_map: Arc<Mutex<HashMap<SessionId, SessionToken>>>,
+
+ // Used to store the UWBS response for the UCI CMD CORE_GET_DEVICE_INFO. This will help us
+ // identify the UWBS supported UCI version and change our behavior accordingly.
+ get_device_info_rsp: Option<GetDeviceInfoResponse>,
}
impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> {
@@ -742,6 +746,7 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> {
radar_data_rcv_notf_sender: mpsc::unbounded_channel().0,
last_init_session_id: None,
session_id_to_token_map,
+ get_device_info_rsp: None,
}
}
@@ -845,6 +850,13 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> {
Ok(())
}
+ // Store the GET_DEVICE_INFO RSP from UWBS.
+ fn store_if_uwbs_device_info(&mut self, resp: &UciResponse) {
+ if let UciResponse::CoreGetDeviceInfo(Ok(get_device_info_rsp)) = resp {
+ self.get_device_info_rsp = Some(get_device_info_rsp.clone());
+ }
+ }
+
async fn handle_cmd(
&mut self,
cmd: UciManagerCmd,
@@ -1196,6 +1208,7 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> {
error!("Session init response received without a sesson id stored! Something has gone badly wrong: {:?}", resp);
return;
}
+ self.store_if_uwbs_device_info(&resp);
if let Some(uci_cmd_retryer) = self.uci_cmd_retryer.take() {
uci_cmd_retryer.send_result(Ok(resp));