diff options
author | Bhautik Ardeshana <bhautik.ardeshana@nxp.com> | 2023-07-25 15:53:27 +0530 |
---|---|---|
committer | Bhautik Ardeshana <bhautik.ardeshana@nxp.com> | 2023-07-27 15:51:21 +0530 |
commit | b4a9faf8d4be5ad677096208db98a676eaea8ac2 (patch) | |
tree | 7eb538755582cdb0ed3d0468f5d5d66b4cdb8e40 | |
parent | eb84adc930f4b5e727f55443d2332de8bba01bcc (diff) | |
download | uwb-b4a9faf8d4be5ad677096208db98a676eaea8ac2.tar.gz |
Replace session_id with session_handle in onDataReceive
Bug: 292976096
Test: Test data transfer
Change-Id: I301cef792ed526b77f9163463273c370037d23a4
-rw-r--r-- | src/rust/uwb_core/src/uci/uci_manager.rs | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/rust/uwb_core/src/uci/uci_manager.rs b/src/rust/uwb_core/src/uci/uci_manager.rs index 2325751..3518982 100644 --- a/src/rust/uwb_core/src/uci/uci_manager.rs +++ b/src/rust/uwb_core/src/uci/uci_manager.rs @@ -1093,7 +1093,7 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> { } UciDefragPacket::Data(packet) => { self.logger.log_uci_data(&packet); - self.handle_data_rcv(packet); + self.handle_data_rcv(packet).await; } UciDefragPacket::Raw(result, raw_uci_control_packet) => { // Handle response to raw UCI cmd. We want to send it back as @@ -1304,10 +1304,25 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> { } } - fn handle_data_rcv(&mut self, packet: UciDataPacket) { + async fn handle_data_rcv(&mut self, packet: UciDataPacket) { match packet.try_into() { - Ok(data_rcv) => { - let _ = self.data_rcv_notf_sender.send(data_rcv); + Ok(DataRcvNotification { session_token, status, uci_sequence_num, + source_address, payload }) => { + match self.get_session_id(&session_token).await { + Ok(session_id) => { + let data_recv = DataRcvNotification { + session_token: session_id, + status, + uci_sequence_num, + source_address, + payload, + }; + let _ = self.data_rcv_notf_sender.send(data_recv); + } + Err(e) => { + error!("Unable to find session Id, error {:?}", e); + } + } } Err(e) => { error!("Unable to parse incoming Data packet, error {:?}", e); @@ -2703,7 +2718,7 @@ mod tests { // Setup the DataPacketRcv (Rx by HAL) and the expected DataRcvNotification. let data_packet_rcv = build_uci_packet(mt_data, pbf, dpf, oid, data_rcv_payload); let expected_data_rcv_notification = DataRcvNotification { - session_token, + session_token: session_id, status: DataRcvStatusCode::UciStatusSuccess, uci_sequence_num, source_address, @@ -2774,7 +2789,7 @@ mod tests { let data_packet_rcv_fragment_2 = build_uci_packet(mt_data, pbf_fragment_2, dpf, oid, data_rcv_payload_fragment_2); let expected_data_rcv_notification = DataRcvNotification { - session_token, + session_token: session_id, status: DataRcvStatusCode::UciStatusSuccess, uci_sequence_num, source_address, |