diff options
author | Ayush Jain <ayushjain@google.com> | 2023-12-02 01:54:12 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-12-02 01:54:12 +0000 |
commit | 941befa9bc6ba939ffe2a91a10be14df725b2343 (patch) | |
tree | ba94f6b8ab1f5b4032fd71c21a26cb59baafb891 | |
parent | b9698356e504189d2fc198c9fec9f7d083c50005 (diff) | |
parent | dfd3cad11eccdec2205714586c32cb7ef9af54ab (diff) | |
download | uwb-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.rs | 13 |
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)); |