Fix updating rx1 delay on config change.

This commit is contained in:
Orne Brocaar 2022-05-24 16:09:08 +01:00
parent 5b1d70cdbf
commit a0f56c0ff6
2 changed files with 24 additions and 0 deletions

View File

@ -977,6 +977,14 @@ impl Data {
self.mac_commands.push(set);
}
let rx1_delay = self.device_session.rx1_delay as u8;
if rx1_delay != self.network_conf.rx1_delay {
let set = maccommand::rx_timing_setup::request(self.network_conf.rx1_delay);
mac_command::set_pending(&self.device.dev_eui, lrwn::CID::RxTimingSetupReq, &set)
.await?;
self.mac_commands.push(set);
}
Ok(())
}

View File

@ -127,6 +127,7 @@ async fn test_gateway_filtering() {
f_cnt_up: 7,
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
region_name: "eu868".into(),
..Default::default()
@ -268,6 +269,7 @@ async fn test_lorawan_10_errors() {
f_cnt_up: 8,
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
region_name: "eu868".into(),
..Default::default()
@ -452,6 +454,7 @@ async fn test_lorawan_11_errors() {
f_cnt_up: 8,
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
region_name: "eu868".into(),
..Default::default()
@ -594,6 +597,7 @@ async fn test_lorawan_10_skip_f_cnt() {
f_cnt_up: 8,
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
skip_f_cnt_check: true,
region_name: "eu868".into(),
@ -781,6 +785,7 @@ async fn test_lorawan_10_device_disabled() {
f_cnt_up: 7,
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
region_name: "eu868".into(),
..Default::default()
@ -908,6 +913,7 @@ async fn test_lorawan_10_uplink() {
f_cnt_up: 8,
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
region_name: "eu868".into(),
..Default::default()
@ -1522,6 +1528,7 @@ async fn test_lorawan_11_uplink() {
n_f_cnt_down: 5,
conf_f_cnt: 4,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
region_name: "eu868".into(),
..Default::default()
@ -1667,6 +1674,10 @@ async fn test_lorawan_11_uplink() {
async fn test_lorawan_10_rx_delay() {
let _guard = test::prepare().await;
let mut conf = (*config::get()).clone();
conf.regions[0].network.rx1_delay = 3;
config::set(conf);
let t = tenant::create(tenant::Tenant {
name: "tenant".into(),
can_have_gateways: true,
@ -2504,6 +2515,7 @@ async fn test_lorawan_10_device_queue() {
f_cnt_up: 8,
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx1_delay: 1,
rx2_frequency: 869525000,
region_name: "eu868".into(),
..Default::default()
@ -2973,6 +2985,7 @@ async fn test_lorawan_11_device_queue() {
a_f_cnt_down: 3,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx2_frequency: 869525000,
rx1_delay: 1,
region_name: "eu868".into(),
..Default::default()
};
@ -3443,6 +3456,7 @@ async fn test_lorawan_10_adr() {
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx2_frequency: 869525000,
rx1_delay: 1,
region_name: "eu868".into(),
..Default::default()
};
@ -4279,6 +4293,7 @@ async fn test_lorawan_10_device_status_request() {
n_f_cnt_down: 5,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx2_frequency: 869525000,
rx1_delay: 1,
region_name: "eu868".into(),
..Default::default()
};
@ -4543,6 +4558,7 @@ async fn test_lorawan_11_receive_window_selection() {
conf_f_cnt: 4,
enabled_uplink_channel_indices: vec![0, 1, 2],
rx2_frequency: 869525000,
rx1_delay: 1,
region_name: "eu868".into(),
..Default::default()
};