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

Method _update_end_device_conf

chirpstack/src/downlink/data.rs:2106–2151  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

2104 }
2105
2106 async fn _update_end_device_conf(&mut self) -> Result<()> {
2107 trace!("Updating End Device Conf");
2108
2109 let ds = self.device.get_device_session_mut()?;
2110 let relay_params = self.device_profile.relay_params.clone().unwrap_or_default();
2111
2112 // Get the current relay state.
2113 let relay = if let Some(r) = &ds.relay {
2114 r.clone()
2115 } else {
2116 internal::Relay::default()
2117 };
2118
2119 if relay.ed_activation_mode != relay_params.ed_activation_mode.to_u8() as u32
2120 || relay.ed_smart_enable_level != relay_params.ed_smart_enable_level as u32
2121 || relay.ed_back_off != relay_params.ed_back_off as u32
2122 || relay.second_channel_freq != relay_params.second_channel_freq
2123 || relay.second_channel_dr != relay_params.second_channel_dr as u32
2124 || relay.second_channel_ack_offset != relay_params.second_channel_ack_offset as u32
2125 {
2126 let set = lrwn::MACCommandSet::new(vec![lrwn::MACCommand::EndDeviceConfReq(
2127 lrwn::EndDeviceConfReqPayload {
2128 activation_relay_mode: lrwn::ActivationRelayMode {
2129 relay_mode_activation: relay_params.ed_activation_mode,
2130 smart_enable_level: relay_params.ed_smart_enable_level,
2131 },
2132 channel_settings_ed: lrwn::ChannelSettingsED {
2133 second_ch_ack_offset: relay_params.second_channel_ack_offset,
2134 second_ch_dr: relay_params.second_channel_dr,
2135 second_ch_idx: if relay_params.second_channel_freq > 0 {
2136 1
2137 } else {
2138 0
2139 },
2140 backoff: relay_params.ed_back_off,
2141 },
2142 second_ch_freq: relay_params.second_channel_freq,
2143 },
2144 )]);
2145 self.mac_commands.push(set);
2146 }
2147
2148 ds.relay = Some(relay);
2149
2150 Ok(())
2151 }
2152
2153 fn set_tx_info_for_rx1(&mut self) -> Result<()> {
2154 trace!("Setting tx-info for RX1");

Callers 2

set_mac_commandsMethod · 0.80

Calls 3

pushMethod · 0.80
to_u8Method · 0.45

Tested by 1