diff options
author | Roshan Pius <rpius@google.com> | 2022-01-25 12:16:45 -0800 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2022-01-25 14:07:22 -0800 |
commit | 6a1c305329decda79aeeaa952911d3dd53613e02 (patch) | |
tree | b6889d55f80fa97889862c1453e141a635bd12bb /src | |
parent | 42ce1615a5356e27ca8156292bf8e5876ef92819 (diff) | |
download | uwb-6a1c305329decda79aeeaa952911d3dd53613e02.tar.gz |
uwb(uci-rust): Use {Packet} instead of {Packet}Builder
The {Packet} struct should be used for parsed data.
Also, made all EventManager method names consistent with "_received".
Test: UwbManagerTest, adb shell cmd uwb start-fira-ranging-session
Bug: 197341298
Change-Id: I9b08c43bb05254f01c495e53b630c96f323518ee
Diffstat (limited to 'src')
-rw-r--r-- | src/rust/event_manager/mod.rs | 40 | ||||
-rw-r--r-- | src/rust/uci/mod.rs | 10 | ||||
-rw-r--r-- | src/rust/uci/uci_hrcv.rs | 183 |
3 files changed, 72 insertions, 161 deletions
diff --git a/src/rust/event_manager/mod.rs b/src/rust/event_manager/mod.rs index b8f6f46..cf93988 100644 --- a/src/rust/event_manager/mod.rs +++ b/src/rust/event_manager/mod.rs @@ -52,12 +52,15 @@ pub trait Manager { fn device_status_notification_received(&self, data: DeviceStatusNtfPacket) -> Result<()>; fn core_generic_error_notification_received(&self, data: GenericErrorPacket) -> Result<()>; fn session_status_notification_received(&self, data: SessionStatusNtfPacket) -> Result<()>; - fn short_range_data_notification(&self, data: ShortMacTwoWayRangeDataNtfPacket) -> Result<()>; - fn extended_range_data_notification( + fn short_range_data_notification_received( + &self, + data: ShortMacTwoWayRangeDataNtfPacket, + ) -> Result<()>; + fn extended_range_data_notification_received( &self, data: ExtendedMacTwoWayRangeDataNtfPacket, ) -> Result<()>; - fn session_update_controller_multicast_list_notification( + fn session_update_controller_multicast_list_notification_received( &self, data: SessionUpdateControllerMulticastListNtfPacket, ) -> Result<()>; @@ -93,29 +96,33 @@ impl Manager for EventManager { result } - fn short_range_data_notification(&self, data: ShortMacTwoWayRangeDataNtfPacket) -> Result<()> { + fn short_range_data_notification_received( + &self, + data: ShortMacTwoWayRangeDataNtfPacket, + ) -> Result<()> { let env = self.jvm.attach_current_thread()?; - let result = self.handle_short_range_data_notification(&env, data); + let result = self.handle_short_range_data_notification_received(&env, data); self.clear_exception(env); result } - fn extended_range_data_notification( + fn extended_range_data_notification_received( &self, data: ExtendedMacTwoWayRangeDataNtfPacket, ) -> Result<()> { let env = self.jvm.attach_current_thread()?; - let result = self.handle_extended_range_data_notification(&env, data); + let result = self.handle_extended_range_data_notification_received(&env, data); self.clear_exception(env); result } - fn session_update_controller_multicast_list_notification( + fn session_update_controller_multicast_list_notification_received( &self, data: SessionUpdateControllerMulticastListNtfPacket, ) -> Result<()> { let env = self.jvm.attach_current_thread()?; - let result = self.handle_session_update_controller_multicast_list_notification(&env, data); + let result = + self.handle_session_update_controller_multicast_list_notification_received(&env, data); self.clear_exception(env); result } @@ -454,7 +461,7 @@ impl EventManager { ) } - fn handle_short_range_data_notification( + fn handle_short_range_data_notification_received( &self, env: &JNIEnv, data: ShortMacTwoWayRangeDataNtfPacket, @@ -507,7 +514,7 @@ impl EventManager { .map(|_| ()) // drop void method return } - fn handle_extended_range_data_notification( + fn handle_extended_range_data_notification_received( &self, env: &JNIEnv, data: ExtendedMacTwoWayRangeDataNtfPacket, @@ -561,7 +568,7 @@ impl EventManager { .map(|_| ()) // drop void method return } - pub fn handle_session_update_controller_multicast_list_notification( + pub fn handle_session_update_controller_multicast_list_notification_received( &self, env: &JNIEnv, data: SessionUpdateControllerMulticastListNtfPacket, @@ -654,16 +661,19 @@ impl Manager for EventManagerTest { fn session_status_notification_received(&self, data: SessionStatusNtfPacket) -> Result<()> { Ok(()) } - fn short_range_data_notification(&self, data: ShortMacTwoWayRangeDataNtfPacket) -> Result<()> { + fn short_range_data_notification_received( + &self, + data: ShortMacTwoWayRangeDataNtfPacket, + ) -> Result<()> { Ok(()) } - fn extended_range_data_notification( + fn extended_range_data_notification_received( &self, data: ExtendedMacTwoWayRangeDataNtfPacket, ) -> Result<()> { Ok(()) } - fn session_update_controller_multicast_list_notification( + fn session_update_controller_multicast_list_notification_received( &self, data: SessionUpdateControllerMulticastListNtfPacket, ) -> Result<()> { diff --git a/src/rust/uci/mod.rs b/src/rust/uci/mod.rs index 9645403..fd96223 100644 --- a/src/rust/uci/mod.rs +++ b/src/rust/uci/mod.rs @@ -34,7 +34,7 @@ use tokio::runtime::{Builder, Runtime}; use tokio::sync::{mpsc, oneshot, Notify}; use tokio::{select, task}; use uwb_uci_packets::{ - GetDeviceInfoCmdBuilder, GetDeviceInfoRspBuilder, Packet, RangeStartCmdBuilder, + GetDeviceInfoCmdBuilder, GetDeviceInfoRspPacket, Packet, RangeStartCmdBuilder, RangeStopCmdBuilder, SessionDeinitCmdBuilder, SessionGetAppConfigCmdBuilder, SessionGetCountCmdBuilder, SessionGetStateCmdBuilder, SessionState, SessionStatusNtfPacket, StatusCode, @@ -338,13 +338,13 @@ impl<T: Manager> Driver<T> { self.event_manager.session_status_notification_received(response); } uci_hrcv::UciNotification::ShortMacTwoWayRangeDataNtf(response) => { - self.event_manager.short_range_data_notification(response); + self.event_manager.short_range_data_notification_received(response); } uci_hrcv::UciNotification::ExtendedMacTwoWayRangeDataNtf(response) => { - self.event_manager.extended_range_data_notification(response); + self.event_manager.extended_range_data_notification_received(response); } uci_hrcv::UciNotification::SessionUpdateControllerMulticastListNtf(response) => { - self.event_manager.session_update_controller_multicast_list_notification(response); + self.event_manager.session_update_controller_multicast_list_notification_received(response); } _ => log::error!("Unexpected hal notification received {:?}", response), } @@ -415,7 +415,7 @@ pub struct Dispatcher { cmd_sender: mpsc::UnboundedSender<(JNICommand, Option<UciResponseHandle>)>, join_handle: task::JoinHandle<Result<()>>, runtime: Runtime, - pub device_info: Option<GetDeviceInfoRspBuilder>, + pub device_info: Option<GetDeviceInfoRspPacket>, } impl Dispatcher { diff --git a/src/rust/uci/uci_hrcv.rs b/src/rust/uci/uci_hrcv.rs index 8459610..079073c 100644 --- a/src/rust/uci/uci_hrcv.rs +++ b/src/rust/uci/uci_hrcv.rs @@ -26,23 +26,23 @@ pub enum UciMessage { #[derive(Debug)] pub enum UciResponse { - GetDeviceInfoRsp(GetDeviceInfoRspBuilder), - GetCapsInfoRsp(GetCapsInfoRspBuilder), - SetConfigRsp(SetConfigRspBuilder), - GetConfigRsp(GetConfigRspBuilder), - DeviceResetRsp(DeviceResetRspBuilder), - SessionInitRsp(SessionInitRspBuilder), - SessionDeinitRsp(SessionDeinitRspBuilder), - SessionGetAppConfigRsp(SessionGetAppConfigRspBuilder), - SessionSetAppConfigRsp(SessionSetAppConfigRspBuilder), - SessionGetStateRsp(SessionGetStateRspBuilder), - SessionGetCountRsp(SessionGetCountRspBuilder), - SessionUpdateControllerMulticastListRsp(SessionUpdateControllerMulticastListRspBuilder), - RangeStartRsp(RangeStartRspBuilder), - RangeStopRsp(RangeStopRspBuilder), - RangeGetRangingCountRsp(RangeGetRangingCountRspBuilder), - AndroidSetCountryCodeRsp(AndroidSetCountryCodeRspBuilder), - AndroidGetPowerStatsRsp(AndroidGetPowerStatsRspBuilder), + GetDeviceInfoRsp(GetDeviceInfoRspPacket), + GetCapsInfoRsp(GetCapsInfoRspPacket), + SetConfigRsp(SetConfigRspPacket), + GetConfigRsp(GetConfigRspPacket), + DeviceResetRsp(DeviceResetRspPacket), + SessionInitRsp(SessionInitRspPacket), + SessionDeinitRsp(SessionDeinitRspPacket), + SessionGetAppConfigRsp(SessionGetAppConfigRspPacket), + SessionSetAppConfigRsp(SessionSetAppConfigRspPacket), + SessionGetStateRsp(SessionGetStateRspPacket), + SessionGetCountRsp(SessionGetCountRspPacket), + SessionUpdateControllerMulticastListRsp(SessionUpdateControllerMulticastListRspPacket), + RangeStartRsp(RangeStartRspPacket), + RangeStopRsp(RangeStopRspPacket), + RangeGetRangingCountRsp(RangeGetRangingCountRspPacket), + AndroidSetCountryCodeRsp(AndroidSetCountryCodeRspPacket), + AndroidGetPowerStatsRsp(AndroidGetPowerStatsRspPacket), } #[derive(Debug)] @@ -86,25 +86,29 @@ pub fn uci_notification(evt: UciNotificationPacket) -> Result<UciNotification, U fn core_response(evt: CoreResponsePacket) -> Result<UciResponse, UwbErr> { match evt.specialize() { - CoreResponseChild::GetDeviceInfoRsp(evt) => Ok(get_device_info_rsp(evt)), - CoreResponseChild::GetCapsInfoRsp(evt) => Ok(get_caps_info_rsp(evt)), - CoreResponseChild::SetConfigRsp(evt) => Ok(set_config_rsp(evt)), - CoreResponseChild::GetConfigRsp(evt) => Ok(get_config_rsp(evt)), - CoreResponseChild::DeviceResetRsp(evt) => Ok(device_reset_rsp(evt)), + CoreResponseChild::GetDeviceInfoRsp(evt) => Ok(UciResponse::GetDeviceInfoRsp(evt)), + CoreResponseChild::GetCapsInfoRsp(evt) => Ok(UciResponse::GetCapsInfoRsp(evt)), + CoreResponseChild::SetConfigRsp(evt) => Ok(UciResponse::SetConfigRsp(evt)), + CoreResponseChild::GetConfigRsp(evt) => Ok(UciResponse::GetConfigRsp(evt)), + CoreResponseChild::DeviceResetRsp(evt) => Ok(UciResponse::DeviceResetRsp(evt)), _ => Err(UwbErr::Specialize(evt.to_vec())), } } fn session_response(evt: SessionResponsePacket) -> Result<UciResponse, UwbErr> { match evt.specialize() { - SessionResponseChild::SessionInitRsp(evt) => Ok(session_init_rsp(evt)), - SessionResponseChild::SessionDeinitRsp(evt) => Ok(session_deinit_rsp(evt)), - SessionResponseChild::SessionSetAppConfigRsp(evt) => Ok(session_set_app_config_rsp(evt)), - SessionResponseChild::SessionGetAppConfigRsp(evt) => Ok(session_get_app_config_rsp(evt)), - SessionResponseChild::SessionGetStateRsp(evt) => Ok(session_get_state_rsp(evt)), - SessionResponseChild::SessionGetCountRsp(evt) => Ok(session_get_count_rsp(evt)), + SessionResponseChild::SessionInitRsp(evt) => Ok(UciResponse::SessionInitRsp(evt)), + SessionResponseChild::SessionDeinitRsp(evt) => Ok(UciResponse::SessionDeinitRsp(evt)), + SessionResponseChild::SessionSetAppConfigRsp(evt) => { + Ok(UciResponse::SessionSetAppConfigRsp(evt)) + } + SessionResponseChild::SessionGetAppConfigRsp(evt) => { + Ok(UciResponse::SessionGetAppConfigRsp(evt)) + } + SessionResponseChild::SessionGetStateRsp(evt) => Ok(UciResponse::SessionGetStateRsp(evt)), + SessionResponseChild::SessionGetCountRsp(evt) => Ok(UciResponse::SessionGetCountRsp(evt)), SessionResponseChild::SessionUpdateControllerMulticastListRsp(evt) => { - Ok(session_update_controller_multicast_list_rsp(evt)) + Ok(UciResponse::SessionUpdateControllerMulticastListRsp(evt)) } _ => Err(UwbErr::Specialize(evt.to_vec())), } @@ -112,9 +116,11 @@ fn session_response(evt: SessionResponsePacket) -> Result<UciResponse, UwbErr> { fn ranging_response(evt: RangingResponsePacket) -> Result<UciResponse, UwbErr> { match evt.specialize() { - RangingResponseChild::RangeStartRsp(evt) => Ok(range_start_rsp(evt)), - RangingResponseChild::RangeStopRsp(evt) => Ok(range_stop_rsp(evt)), - RangingResponseChild::RangeGetRangingCountRsp(evt) => Ok(range_get_ranging_count_rsp(evt)), + RangingResponseChild::RangeStartRsp(evt) => Ok(UciResponse::RangeStartRsp(evt)), + RangingResponseChild::RangeStopRsp(evt) => Ok(UciResponse::RangeStopRsp(evt)), + RangingResponseChild::RangeGetRangingCountRsp(evt) => { + Ok(UciResponse::RangeGetRangingCountRsp(evt)) + } _ => Err(UwbErr::Specialize(evt.to_vec())), } } @@ -122,9 +128,11 @@ fn ranging_response(evt: RangingResponsePacket) -> Result<UciResponse, UwbErr> { fn android_response(evt: AndroidResponsePacket) -> Result<UciResponse, UwbErr> { match evt.specialize() { AndroidResponseChild::AndroidSetCountryCodeRsp(evt) => { - Ok(android_set_country_code_rsp(evt)) + Ok(UciResponse::AndroidSetCountryCodeRsp(evt)) + } + AndroidResponseChild::AndroidGetPowerStatsRsp(evt) => { + Ok(UciResponse::AndroidGetPowerStatsRsp(evt)) } - AndroidResponseChild::AndroidGetPowerStatsRsp(evt) => Ok(android_get_power_start_rsp(evt)), _ => Err(UwbErr::Specialize(evt.to_vec())), } } @@ -156,113 +164,6 @@ fn ranging_notification(evt: RangingNotificationPacket) -> Result<UciNotificatio } } -fn get_device_info_rsp(evt: GetDeviceInfoRspPacket) -> UciResponse { - let evt_data = GetDeviceInfoRspBuilder { - status: evt.get_status(), - uci_version: evt.get_uci_version(), - mac_version: evt.get_mac_version(), - phy_version: evt.get_phy_version(), - uci_test_version: evt.get_uci_test_version(), - vendor_spec_info: evt.get_vendor_spec_info().to_vec(), - }; - UciResponse::GetDeviceInfoRsp(evt_data) -} - -fn get_caps_info_rsp(evt: GetCapsInfoRspPacket) -> UciResponse { - let evt_data = - GetCapsInfoRspBuilder { status: evt.get_status(), tlvs: evt.get_tlvs().to_vec() }; - UciResponse::GetCapsInfoRsp(evt_data) -} - -fn set_config_rsp(evt: SetConfigRspPacket) -> UciResponse { - let evt_data = - SetConfigRspBuilder { status: evt.get_status(), cfg_status: evt.get_cfg_status().to_vec() }; - UciResponse::SetConfigRsp(evt_data) -} - -fn get_config_rsp(evt: GetConfigRspPacket) -> UciResponse { - let evt_data = GetConfigRspBuilder { status: evt.get_status(), tlvs: evt.get_tlvs().to_vec() }; - UciResponse::GetConfigRsp(evt_data) -} - -fn device_reset_rsp(evt: DeviceResetRspPacket) -> UciResponse { - let evt_data = DeviceResetRspBuilder { status: evt.get_status() }; - UciResponse::DeviceResetRsp(evt_data) -} - -fn session_init_rsp(evt: SessionInitRspPacket) -> UciResponse { - let evt_data = SessionInitRspBuilder { status: evt.get_status() }; - UciResponse::SessionInitRsp(evt_data) -} - -fn session_deinit_rsp(evt: SessionDeinitRspPacket) -> UciResponse { - let evt_data = SessionDeinitRspBuilder { status: evt.get_status() }; - UciResponse::SessionDeinitRsp(evt_data) -} - -fn session_set_app_config_rsp(evt: SessionSetAppConfigRspPacket) -> UciResponse { - let evt_data = SessionSetAppConfigRspBuilder { - status: evt.get_status(), - cfg_status: evt.get_cfg_status().to_vec(), - }; - UciResponse::SessionSetAppConfigRsp(evt_data) -} - -fn session_get_app_config_rsp(evt: SessionGetAppConfigRspPacket) -> UciResponse { - let evt_data = - SessionGetAppConfigRspBuilder { status: evt.get_status(), tlvs: evt.get_tlvs().to_vec() }; - UciResponse::SessionGetAppConfigRsp(evt_data) -} - -fn session_get_state_rsp(evt: SessionGetStateRspPacket) -> UciResponse { - let evt_data = SessionGetStateRspBuilder { - status: evt.get_status(), - session_state: evt.get_session_state(), - }; - UciResponse::SessionGetStateRsp(evt_data) -} - -fn session_get_count_rsp(evt: SessionGetCountRspPacket) -> UciResponse { - let evt_data = SessionGetCountRspBuilder { - status: evt.get_status(), - session_count: evt.get_session_count(), - }; - UciResponse::SessionGetCountRsp(evt_data) -} - -fn session_update_controller_multicast_list_rsp( - evt: SessionUpdateControllerMulticastListRspPacket, -) -> UciResponse { - let evt_data = SessionUpdateControllerMulticastListRspBuilder { status: evt.get_status() }; - UciResponse::SessionUpdateControllerMulticastListRsp(evt_data) -} - -fn range_start_rsp(evt: RangeStartRspPacket) -> UciResponse { - let evt_data = RangeStartRspBuilder { status: evt.get_status() }; - UciResponse::RangeStartRsp(evt_data) -} - -fn range_stop_rsp(evt: RangeStopRspPacket) -> UciResponse { - let evt_data = RangeStopRspBuilder { status: evt.get_status() }; - UciResponse::RangeStopRsp(evt_data) -} - -fn range_get_ranging_count_rsp(evt: RangeGetRangingCountRspPacket) -> UciResponse { - let evt_data = - RangeGetRangingCountRspBuilder { status: evt.get_status(), count: evt.get_count() }; - UciResponse::RangeGetRangingCountRsp(evt_data) -} - -fn android_set_country_code_rsp(evt: AndroidSetCountryCodeRspPacket) -> UciResponse { - let evt_data = AndroidSetCountryCodeRspBuilder { status: evt.get_status() }; - UciResponse::AndroidSetCountryCodeRsp(evt_data) -} - -fn android_get_power_start_rsp(evt: AndroidGetPowerStatsRspPacket) -> UciResponse { - let evt_data = AndroidGetPowerStatsRspBuilder { stats: evt.get_stats().clone() }; - UciResponse::AndroidGetPowerStatsRsp(evt_data) -} - fn range_data_ntf(evt: RangeDataNtfPacket) -> Result<UciNotification, UwbErr> { match evt.specialize() { RangeDataNtfChild::ShortMacTwoWayRangeDataNtf(evt) => { |