(&self)
| 1089 | } |
| 1090 | |
| 1091 | async fn send_downlink_frame_passive_roaming(&self) -> Result<()> { |
| 1092 | trace!("Sending downlink-frame using passive-roaming"); |
| 1093 | |
| 1094 | let ufs = self.uplink_frame_set.as_ref().unwrap(); |
| 1095 | let ds = self.device.get_device_session()?; |
| 1096 | let roaming_meta = ufs.roaming_meta_data.as_ref().unwrap(); |
| 1097 | |
| 1098 | let net_id = NetID::from_slice(&roaming_meta.base_payload.sender_id)?; |
| 1099 | let client = roaming::get(&net_id).await?; |
| 1100 | |
| 1101 | let mut req = backend::XmitDataReqPayload { |
| 1102 | phy_payload: self.downlink_frame.items[0].phy_payload.clone(), |
| 1103 | dl_meta_data: Some(backend::DLMetaData { |
| 1104 | class_mode: Some("A".to_string()), |
| 1105 | dev_eui: self.device.dev_eui.to_vec(), |
| 1106 | f_ns_ul_token: roaming_meta.ul_meta_data.f_ns_ul_token.clone(), |
| 1107 | dl_freq_1: { |
| 1108 | let rx1_freq = self |
| 1109 | .region_conf |
| 1110 | .get_rx1_frequency_for_uplink_frequency(ufs.tx_info.frequency)?; |
| 1111 | Some(rx1_freq as f64 / 1_000_000.0) |
| 1112 | }, |
| 1113 | dl_freq_2: Some(ds.rx2_frequency as f64 / 1_000_000.0), |
| 1114 | data_rate_1: { |
| 1115 | let rx1_dr = self |
| 1116 | .region_conf |
| 1117 | .get_rx1_data_rate_index(ds.dr as u8, ds.rx1_dr_offset as usize)?; |
| 1118 | Some(rx1_dr) |
| 1119 | }, |
| 1120 | data_rate_2: Some(ds.rx2_dr as u8), |
| 1121 | rx_delay_1: Some(ds.rx1_delay as usize), |
| 1122 | gw_info: roaming_meta |
| 1123 | .ul_meta_data |
| 1124 | .gw_info |
| 1125 | .iter() |
| 1126 | .filter(|gw| gw.dl_allowed.unwrap_or_default()) |
| 1127 | .map(|gw| backend::GWInfoElement { |
| 1128 | ul_token: gw.ul_token.clone(), |
| 1129 | ..Default::default() |
| 1130 | }) |
| 1131 | .collect(), |
| 1132 | ..Default::default() |
| 1133 | }), |
| 1134 | ..Default::default() |
| 1135 | }; |
| 1136 | |
| 1137 | #[cfg(test)] |
| 1138 | { |
| 1139 | req.base.transaction_id = 1234 |
| 1140 | } |
| 1141 | |
| 1142 | let async_receiver = match client.is_async() { |
| 1143 | false => None, |
| 1144 | true => { |
| 1145 | Some(get_async_receiver(req.base.transaction_id, client.get_async_timeout()).await?) |
| 1146 | } |
| 1147 | }; |
| 1148 | client |
no test coverage detected