mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-01-30 23:53:54 +00:00
Make it explicit that tx power is in EIRP + fixes.
Historically, the tx power was defined as ERP. The Semtech UDP Packet Forwarder protocol was never explicit if the "powe" field was in ERP or EIRP. However, as the antenna gain in the Semtech UDP Packet Forwarder is documented as dBi and is deducted from the "powe" field, this means that "powe" is in EIRP. This commit corrects all values to EIRP, to make sure that if the antenna gain is properly configured (which should be), that the correct rf_power is used by the gateway.
This commit is contained in:
parent
89a44dcf6b
commit
5e63c5efe0
4
api/proto/gw/gw.proto
vendored
4
api/proto/gw/gw.proto
vendored
@ -368,7 +368,7 @@ message DownlinkTxInfoLegacy {
|
||||
// TX frequency (in Hz).
|
||||
uint32 frequency = 5;
|
||||
|
||||
// TX power (in dBm).
|
||||
// TX power (in dBm EIRP).
|
||||
int32 power = 6;
|
||||
|
||||
// Modulation.
|
||||
@ -411,7 +411,7 @@ message DownlinkTxInfo {
|
||||
// TX frequency (in Hz).
|
||||
uint32 frequency = 1;
|
||||
|
||||
// TX power (in dBm).
|
||||
// TX power (in dBm EIRP).
|
||||
int32 power = 2;
|
||||
|
||||
// Modulation.
|
||||
|
@ -153,7 +153,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -153,7 +153,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -153,7 +153,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -153,7 +153,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -189,7 +189,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -159,7 +159,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -159,7 +159,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -201,7 +201,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -159,7 +159,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -159,7 +159,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -159,7 +159,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -153,7 +153,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -195,7 +195,7 @@
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
|
||||
# Downlink TX Power (dBm)
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
# When set to -1, the downlink TX Power from the configured band will
|
||||
# be used.
|
||||
|
@ -2046,7 +2046,9 @@ impl Data {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// set timestamp
|
||||
@ -2111,7 +2113,9 @@ impl Data {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// set timestamp
|
||||
@ -2189,7 +2193,9 @@ impl Data {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// set timestamp
|
||||
@ -2257,7 +2263,9 @@ impl Data {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// set timestamp
|
||||
@ -2338,7 +2346,9 @@ impl Data {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// set timing
|
||||
@ -2448,7 +2458,7 @@ impl Data {
|
||||
let tx_power_rx1 = if self.network_conf.downlink_tx_power != -1 {
|
||||
self.network_conf.downlink_tx_power
|
||||
} else {
|
||||
self.region_conf.get_downlink_tx_power(
|
||||
self.region_conf.get_downlink_tx_power_eirp(
|
||||
self.region_conf.get_rx1_frequency_for_uplink_frequency(
|
||||
self.uplink_frame_set.as_ref().unwrap().tx_info.frequency,
|
||||
)?,
|
||||
@ -2459,7 +2469,7 @@ impl Data {
|
||||
self.network_conf.downlink_tx_power
|
||||
} else {
|
||||
self.region_conf
|
||||
.get_downlink_tx_power(self.device_session.rx2_frequency)
|
||||
.get_downlink_tx_power_eirp(self.device_session.rx2_frequency)
|
||||
as i32
|
||||
};
|
||||
|
||||
|
@ -93,7 +93,7 @@ impl Data {
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
tx_info.power = region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = region_conf.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
|
||||
let rx1_dr = region_conf.get_data_rate(self.dl_meta_data.data_rate_1.unwrap())?;
|
||||
helpers::set_tx_info_data_rate(&mut tx_info, &rx1_dr)?;
|
||||
@ -125,7 +125,7 @@ impl Data {
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
tx_info.power = region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = region_conf.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
|
||||
let rx2_dr = region_conf.get_data_rate(self.dl_meta_data.data_rate_2.unwrap())?;
|
||||
helpers::set_tx_info_data_rate(&mut tx_info, &rx2_dr)?;
|
||||
|
@ -256,7 +256,9 @@ impl JoinAccept<'_> {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// Set timestamp.
|
||||
@ -313,7 +315,9 @@ impl JoinAccept<'_> {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// Set timestamp.
|
||||
@ -365,7 +369,9 @@ impl JoinAccept<'_> {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// Set timestamp.
|
||||
@ -416,7 +422,9 @@ impl JoinAccept<'_> {
|
||||
if self.network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = self.network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = self.region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = self
|
||||
.region_conf
|
||||
.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
// Set timestamp.
|
||||
|
@ -136,7 +136,7 @@ impl Multicast {
|
||||
if network_conf.downlink_tx_power != -1 {
|
||||
tx_info.power = network_conf.downlink_tx_power;
|
||||
} else {
|
||||
tx_info.power = region_conf.get_downlink_tx_power(tx_info.frequency) as i32;
|
||||
tx_info.power = region_conf.get_downlink_tx_power_eirp(tx_info.frequency) as i32;
|
||||
}
|
||||
|
||||
match self.multicast_group_queue_item.emit_at_time_since_gps_epoch {
|
||||
|
@ -148,7 +148,7 @@ impl PassiveRoamingDownlink {
|
||||
power: if self.network_conf.downlink_tx_power != -1 {
|
||||
self.network_conf.downlink_tx_power
|
||||
} else {
|
||||
self.region_conf.get_downlink_tx_power(dl_freq_1) as i32
|
||||
self.region_conf.get_downlink_tx_power_eirp(dl_freq_1) as i32
|
||||
},
|
||||
..Default::default()
|
||||
};
|
||||
@ -190,7 +190,7 @@ impl PassiveRoamingDownlink {
|
||||
power: if self.network_conf.downlink_tx_power != -1 {
|
||||
self.network_conf.downlink_tx_power
|
||||
} else {
|
||||
self.region_conf.get_downlink_tx_power(dl_freq_2) as i32
|
||||
self.region_conf.get_downlink_tx_power_eirp(dl_freq_2) as i32
|
||||
},
|
||||
..Default::default()
|
||||
};
|
||||
|
@ -844,8 +844,8 @@ impl Region for Configuration {
|
||||
Ok(923400000 - self.freq_offset)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
14
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
16
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
@ -992,8 +992,8 @@ impl Region for Configuration {
|
||||
Ok(self.base.downlink_channels[down_channel].frequency)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
27
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
30
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
@ -462,8 +462,8 @@ impl Region for Configuration {
|
||||
Ok(beacon_freqs[down_channel])
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
14
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
19
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
@ -440,8 +440,8 @@ impl Region for Configuration {
|
||||
Ok(785000000)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
10
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
12
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
@ -484,8 +484,8 @@ impl Region for Configuration {
|
||||
Ok(434665000)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
10
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
12
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
@ -601,15 +601,13 @@ impl Region for Configuration {
|
||||
Ok(869525000)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, freq: u32) -> isize {
|
||||
// NOTE: as there are currently no further boundary checks on the frequency, this check is sufficient.
|
||||
// TODO: However, there should be some mechanism, that checks the frequency for compliance to regulations.
|
||||
fn get_downlink_tx_power_eirp(&self, freq: u32) -> isize {
|
||||
if (863000000..869200000).contains(&freq) {
|
||||
14 //25mW
|
||||
16
|
||||
} else if (869400000..869650000).contains(&freq) {
|
||||
27 //500mW
|
||||
29
|
||||
} else {
|
||||
14 // Default case
|
||||
16
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -390,8 +390,8 @@ impl Region for Configuration {
|
||||
Ok(866550000)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
27
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
30
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
@ -266,7 +266,7 @@ impl Region for Configuration {
|
||||
Ok(2424000000)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
10
|
||||
}
|
||||
|
||||
|
@ -362,7 +362,7 @@ impl Region for Configuration {
|
||||
Ok(923100000)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
23
|
||||
}
|
||||
|
||||
|
@ -447,7 +447,7 @@ pub trait Region {
|
||||
|
||||
/// Returns the TX power for downlink transmissions using the given frequency.
|
||||
/// Depending the band, it could return different values for different frequencies.
|
||||
fn get_downlink_tx_power(&self, frequency: u32) -> isize;
|
||||
fn get_downlink_tx_power_eirp(&self, frequency: u32) -> isize;
|
||||
|
||||
/// Returns the defaults.
|
||||
fn get_defaults(&self) -> Defaults;
|
||||
|
@ -340,8 +340,8 @@ impl Region for Configuration {
|
||||
Ok(868900000)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
14
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
16
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
@ -680,8 +680,8 @@ impl Region for Configuration {
|
||||
Ok(self.base.downlink_channels[down_channel].frequency)
|
||||
}
|
||||
|
||||
fn get_downlink_tx_power(&self, _freq: u32) -> isize {
|
||||
20
|
||||
fn get_downlink_tx_power_eirp(&self, _frequency: u32) -> isize {
|
||||
21
|
||||
}
|
||||
|
||||
fn get_defaults(&self) -> Defaults {
|
||||
|
Loading…
x
Reference in New Issue
Block a user