MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / _prefer_rx2_dr

Method _prefer_rx2_dr

chirpstack/src/downlink/data.rs:2590–2614  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

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()?;

Callers 2

set_tx_infoMethod · 0.45
set_tx_info_relayedMethod · 0.45

Calls 4

get_device_sessionMethod · 0.80
unwrapMethod · 0.80
as_refMethod · 0.80

Tested by

no test coverage detected