(&self)
| 2588 | } |
| 2589 | |
| 2590 | fn _prefer_rx2_dr(&self) -> Result<bool> { |
| 2591 | let ds = self.device.get_device_session()?; |
| 2592 | |
| 2593 | // The device has not yet been updated to the network-server RX2 parameters |
| 2594 | // (using mac-commands). Do not prefer RX2 over RX1 in this case. |
| 2595 | if ds.rx2_frequency != self.network_conf.rx2_frequency |
| 2596 | || ds.rx2_dr != self.network_conf.rx2_dr as u32 |
| 2597 | || ds.rx1_dr_offset != self.network_conf.rx1_dr_offset as u32 |
| 2598 | || ds.rx1_delay != self.network_conf.rx1_delay as u32 |
| 2599 | { |
| 2600 | return Ok(false); |
| 2601 | } |
| 2602 | |
| 2603 | // get rx1 data-rate |
| 2604 | let dr_rx1 = self.region_conf.get_rx1_data_rate_index( |
| 2605 | self.uplink_frame_set.as_ref().unwrap().dr, |
| 2606 | ds.rx1_dr_offset as usize, |
| 2607 | )?; |
| 2608 | |
| 2609 | if dr_rx1 < self.network_conf.rx2_prefer_on_rx1_dr_lt { |
| 2610 | return Ok(true); |
| 2611 | } |
| 2612 | |
| 2613 | Ok(false) |
| 2614 | } |
| 2615 | |
| 2616 | fn _prefer_rx2_link_budget(&self) -> Result<bool> { |
| 2617 | let ds = self.device.get_device_session()?; |
no test coverage detected