(ufs: UplinkFrameSet, phy: Vec<u8>, dl_meta: DLMetaData)
| 33 | } |
| 34 | |
| 35 | async fn _handle(ufs: UplinkFrameSet, phy: Vec<u8>, dl_meta: DLMetaData) -> Result<()> { |
| 36 | let network_conf = config::get_region_network(&ufs.region_config_id)?; |
| 37 | let region_conf = region::get(&ufs.region_config_id)?; |
| 38 | |
| 39 | let mut ctx = PassiveRoamingDownlink { |
| 40 | uplink_frame_set: ufs, |
| 41 | phy_payload: phy, |
| 42 | dl_meta_data: dl_meta, |
| 43 | network_conf, |
| 44 | region_conf, |
| 45 | downlink_frame: gw::DownlinkFrame { |
| 46 | downlink_id: rand::rng().random(), |
| 47 | ..Default::default() |
| 48 | }, |
| 49 | downlink_gateway: None, |
| 50 | }; |
| 51 | |
| 52 | ctx.select_downlink_gateway()?; |
| 53 | ctx.set_downlink_frame()?; |
| 54 | ctx.save_downlink_frame().await?; |
| 55 | ctx.send_downlink_frame().await?; |
| 56 | |
| 57 | Ok(()) |
| 58 | } |
| 59 | |
| 60 | fn select_downlink_gateway(&mut self) -> Result<()> { |
| 61 | trace!("Selecting downlink gateway"); |
nothing calls this directly
no test coverage detected