summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhautik Ardeshana <bhautik.ardeshana@nxp.com>2023-07-25 15:53:27 +0530
committerBhautik Ardeshana <bhautik.ardeshana@nxp.com>2023-07-27 15:51:21 +0530
commitb4a9faf8d4be5ad677096208db98a676eaea8ac2 (patch)
tree7eb538755582cdb0ed3d0468f5d5d66b4cdb8e40
parenteb84adc930f4b5e727f55443d2332de8bba01bcc (diff)
downloaduwb-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.rs27
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,