(relay_ctx: RelayContext, ufs: UplinkFrameSet)
| 154 | } |
| 155 | |
| 156 | async fn _handle_relayed(relay_ctx: RelayContext, ufs: UplinkFrameSet) -> Result<()> { |
| 157 | let mut ctx = Data { |
| 158 | phy_payload: *relay_ctx.req.payload.clone(), |
| 159 | uplink_frame_set: ufs, |
| 160 | relay_context: Some(relay_ctx), |
| 161 | f_cnt_up_full: 0, |
| 162 | reset: false, |
| 163 | retransmission: false, |
| 164 | tenant: None, |
| 165 | device: None, |
| 166 | device_profile: None, |
| 167 | application: None, |
| 168 | device_info: None, |
| 169 | relay_rx_info: None, |
| 170 | uplink_event: None, |
| 171 | must_send_downlink: false, |
| 172 | downlink_mac_commands: Vec::new(), |
| 173 | device_changeset: Default::default(), |
| 174 | region_conf: None, |
| 175 | }; |
| 176 | |
| 177 | ctx.get_device_for_phy_payload_relayed().await?; |
| 178 | ctx.get_device_data().await?; |
| 179 | ctx.set_device_info()?; |
| 180 | ctx.set_region_config()?; |
| 181 | ctx.set_device_gateway_rx_info()?; |
| 182 | ctx.set_relay_rx_info()?; |
| 183 | ctx.handle_retransmission_reset().await?; |
| 184 | ctx.decrypt_f_opts_mac_commands()?; |
| 185 | ctx.decrypt_frm_payload()?; |
| 186 | ctx.set_adr()?; |
| 187 | ctx.set_uplink_data_rate_relayed().await?; |
| 188 | ctx.handle_class_b_beacon_locked().await?; |
| 189 | ctx.reset_channels_on_activation_or_adr_ack_req()?; |
| 190 | ctx.handle_mac_commands().await?; |
| 191 | ctx.append_meta_data_to_uplink_history_relayed()?; |
| 192 | ctx.send_uplink_event().await?; |
| 193 | ctx.detect_and_save_measurements().await?; |
| 194 | ctx.sync_uplink_f_cnt()?; |
| 195 | ctx.update_device().await?; |
| 196 | ctx.handle_uplink_ack().await?; |
| 197 | ctx.save_metrics_relayed().await?; |
| 198 | ctx.start_downlink_data_flow_relayed().await?; |
| 199 | |
| 200 | Ok(()) |
| 201 | } |
| 202 | |
| 203 | async fn handle_passive_roaming_device(&mut self) -> Result<(), Error> { |
| 204 | trace!("Handling passive-roaming device"); |
nothing calls this directly
no test coverage detected