From dfcf4193ccf97837ddec0ac4647f22a3d2e89923 Mon Sep 17 00:00:00 2001 From: Orne Brocaar Date: Mon, 23 Sep 2024 12:22:11 +0100 Subject: [PATCH] Move tx min / max freqs as consts to libconcentratord. --- .../config/vendor/multitech/mtac_lora_2g4.rs | 3 ++- .../src/config/vendor/rak/rak5148.rs | 3 ++- .../config/vendor/semtech/sx1280z3dsfgw1.rs | 3 ++- .../src/config/vendor/imst/ic880a.rs | 7 +++--- .../src/config/vendor/kerlink/ifemtocell.rs | 7 +++--- .../vendor/multitech/mtac_lora_h_868.rs | 3 ++- .../vendor/multitech/mtac_lora_h_915.rs | 3 ++- .../config/vendor/multitech/mtcap_lora_868.rs | 3 ++- .../config/vendor/multitech/mtcap_lora_915.rs | 3 ++- .../src/config/vendor/rak/rak2245.rs | 24 ++++++++++--------- .../src/config/vendor/rak/rak2246.rs | 24 ++++++++++--------- .../src/config/vendor/rak/rak2247.rs | 24 ++++++++++--------- .../src/config/vendor/risinghf/rhf0m301.rs | 7 +++--- .../src/config/vendor/sandbox/lorago_port.rs | 7 +++--- .../src/config/vendor/wifx/lorix_one.rs | 3 ++- .../src/config/vendor/dragino/pg1302.rs | 5 ++-- .../config/vendor/embit/emb_lr1302_mpcie.rs | 13 +++++----- .../config/vendor/multitech/mtac_003e00.rs | 3 ++- .../config/vendor/multitech/mtac_003u00.rs | 3 ++- .../config/vendor/multitech/mtcap3_003e00.rs | 3 ++- .../config/vendor/multitech/mtcap3_003u00.rs | 3 ++- .../src/config/vendor/rak/rak2287.rs | 24 ++++++++++--------- .../src/config/vendor/rak/rak5146.rs | 24 ++++++++++--------- .../src/config/vendor/seeed/wm1302.rs | 20 +++++++++------- .../config/vendor/semtech/sx1302c490gw1.rs | 5 ++-- .../config/vendor/semtech/sx1302c868gw1.rs | 7 +++--- .../config/vendor/semtech/sx1302c915gw1.rs | 5 ++-- .../config/vendor/semtech/sx1302css868gw1.rs | 7 +++--- .../config/vendor/semtech/sx1302css915gw1.rs | 5 ++-- .../config/vendor/semtech/sx1302css923gw1.rs | 8 ++++--- .../waveshare/sx1302_lorawan_gateway_hat.rs | 20 +++++++++------- libconcentratord/src/lib.rs | 1 + libconcentratord/src/region/as923.rs | 1 + libconcentratord/src/region/as923_2.rs | 1 + libconcentratord/src/region/as923_3.rs | 1 + libconcentratord/src/region/as923_4.rs | 1 + libconcentratord/src/region/au915.rs | 1 + libconcentratord/src/region/cn470.rs | 1 + libconcentratord/src/region/eu433.rs | 1 + libconcentratord/src/region/eu868.rs | 1 + libconcentratord/src/region/in865.rs | 1 + libconcentratord/src/region/ism2400.rs | 1 + libconcentratord/src/region/kr920.rs | 1 + libconcentratord/src/region/mod.rs | 13 ++++++++++ libconcentratord/src/region/ru864.rs | 1 + libconcentratord/src/region/us915.rs | 1 + 46 files changed, 186 insertions(+), 120 deletions(-) create mode 100644 libconcentratord/src/region/as923.rs create mode 100644 libconcentratord/src/region/as923_2.rs create mode 100644 libconcentratord/src/region/as923_3.rs create mode 100644 libconcentratord/src/region/as923_4.rs create mode 100644 libconcentratord/src/region/au915.rs create mode 100644 libconcentratord/src/region/cn470.rs create mode 100644 libconcentratord/src/region/eu433.rs create mode 100644 libconcentratord/src/region/eu868.rs create mode 100644 libconcentratord/src/region/in865.rs create mode 100644 libconcentratord/src/region/ism2400.rs create mode 100644 libconcentratord/src/region/kr920.rs create mode 100644 libconcentratord/src/region/mod.rs create mode 100644 libconcentratord/src/region/ru864.rs create mode 100644 libconcentratord/src/region/us915.rs diff --git a/chirpstack-concentratord-2g4/src/config/vendor/multitech/mtac_lora_2g4.rs b/chirpstack-concentratord-2g4/src/config/vendor/multitech/mtac_lora_2g4.rs index 3dbbdf6e..2993a008 100644 --- a/chirpstack-concentratord-2g4/src/config/vendor/multitech/mtac_lora_2g4.rs +++ b/chirpstack-concentratord-2g4/src/config/vendor/multitech/mtac_lora_2g4.rs @@ -1,10 +1,11 @@ use super::super::super::super::config; use super::super::Configuration; +use libconcentratord::region; pub fn new(conf: &config::Configuration) -> Configuration { Configuration { tty_path: conf.gateway.get_com_dev_path("/dev/ttyACM0"), - tx_min_max_freqs: vec![(2400000000, 2483500000)], + tx_min_max_freqs: region::ism2400::TX_MIN_MAX_FREQS.to_vec(), reset_pin: None, boot0_pin: None, } diff --git a/chirpstack-concentratord-2g4/src/config/vendor/rak/rak5148.rs b/chirpstack-concentratord-2g4/src/config/vendor/rak/rak5148.rs index 3dbbdf6e..2993a008 100644 --- a/chirpstack-concentratord-2g4/src/config/vendor/rak/rak5148.rs +++ b/chirpstack-concentratord-2g4/src/config/vendor/rak/rak5148.rs @@ -1,10 +1,11 @@ use super::super::super::super::config; use super::super::Configuration; +use libconcentratord::region; pub fn new(conf: &config::Configuration) -> Configuration { Configuration { tty_path: conf.gateway.get_com_dev_path("/dev/ttyACM0"), - tx_min_max_freqs: vec![(2400000000, 2483500000)], + tx_min_max_freqs: region::ism2400::TX_MIN_MAX_FREQS.to_vec(), reset_pin: None, boot0_pin: None, } diff --git a/chirpstack-concentratord-2g4/src/config/vendor/semtech/sx1280z3dsfgw1.rs b/chirpstack-concentratord-2g4/src/config/vendor/semtech/sx1280z3dsfgw1.rs index fbe19263..f807ffe1 100644 --- a/chirpstack-concentratord-2g4/src/config/vendor/semtech/sx1280z3dsfgw1.rs +++ b/chirpstack-concentratord-2g4/src/config/vendor/semtech/sx1280z3dsfgw1.rs @@ -1,10 +1,11 @@ use super::super::super::super::config; use super::super::Configuration; +use libconcentratord::region; pub fn new(conf: &config::Configuration) -> Configuration { Configuration { tty_path: conf.gateway.get_com_dev_path("/dev/ttyACM0"), - tx_min_max_freqs: vec![(2400000000, 2483500000)], + tx_min_max_freqs: region::ism2400::TX_MIN_MAX_FREQS.to_vec(), // pin configuration taken from: // https://github.com/Lora-net/gateway_2g4_hal/blob/master/tools/rpi_configure_gpio.sh reset_pin: conf.gateway.get_mcu_reset_pin("/dev/gpiochip0", 32), diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/imst/ic880a.rs b/chirpstack-concentratord-sx1301/src/config/vendor/imst/ic880a.rs index c3195a63..35b7be96 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/imst/ic880a.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/imst/ic880a.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; @@ -10,9 +11,9 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863000000, 870000000)], - Region::IN865 => vec![(865000000, 867000000)], - Region::RU864 => vec![(864000000, 870000000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/kerlink/ifemtocell.rs b/chirpstack-concentratord-sx1301/src/config/vendor/kerlink/ifemtocell.rs index 88f393db..e32d4bba 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/kerlink/ifemtocell.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/kerlink/ifemtocell.rs @@ -3,15 +3,16 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::Configuration; +use libconcentratord::region; // source: /tmp/calib_rf.json on gateway pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863000000, 870000000)], - Region::IN865 => vec![(865000000, 867000000)], - Region::RU864 => vec![(864000000, 870000000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_868.rs b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_868.rs index c73b8004..0c540436 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_868.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_868.rs @@ -3,6 +3,7 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::{Configuration, Gps}; +use libconcentratord::region; pub enum Port { AP1, @@ -14,7 +15,7 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863000000, 870000000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_915.rs b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_915.rs index 42e0b900..f2e2aad9 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_915.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtac_lora_h_915.rs @@ -3,6 +3,7 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::{Configuration, Gps}; +use libconcentratord::region; pub enum Port { AP1, @@ -14,7 +15,7 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::US915); let tx_min_max_freqs = match region { - Region::US915 => vec![(902000000, 928000000)], + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_868.rs b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_868.rs index cd09fcdd..3cf4c979 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_868.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_868.rs @@ -3,13 +3,14 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::Configuration; +use libconcentratord::region; // source: http://git.multitech.net/cgi-bin/cgit.cgi/meta-mlinux.git/tree/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.1.0.MTCAP-LORA-1-5.US915.basic pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(902000000, 928000000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_915.rs b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_915.rs index 02e245b5..9fcc60f0 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_915.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/multitech/mtcap_lora_915.rs @@ -3,13 +3,14 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::Configuration; +use libconcentratord::region; // source: http://git.multitech.net/cgi-bin/cgit.cgi/meta-mlinux.git/tree/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.1.0.MTCAP-LORA-1-5.EU868.basic pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::US915); let tx_min_max_freqs = match region { - Region::US915 => vec![(863000000, 870000000)], + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2245.rs b/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2245.rs index 1a497299..330bf78e 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2245.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2245.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; @@ -47,17 +48,18 @@ pub fn new(conf: &config::Configuration) -> Result { }; let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(915000000, 928000000), (915000000, 928000000)] - } - Region::AU915 => vec![(915000000, 928000000)], - Region::CN470 => vec![(470000000, 510000000)], - Region::EU433 => vec![(433050000, 434900000)], - Region::EU868 => vec![(863000000, 870000000)], - Region::IN865 => vec![(865000000, 867000000)], - Region::KR920 => vec![(920900000, 923300000)], - Region::RU864 => vec![(863000000, 870000000)], - Region::US915 => vec![(902000000, 928000000)], + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::CN470 => region::cn470::TX_MIN_MAX_FREQS.to_vec(), + Region::EU433 => region::eu433::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2246.rs b/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2246.rs index 90817061..ed5713e3 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2246.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2246.rs @@ -3,6 +3,7 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::{Configuration, Gps}; +use libconcentratord::region::{self, au915}; // source: // https://github.com/RAKWireless/rak_common_for_gateway/blob/713ebf74f65beecdbc0304c7d880d05890f84315/lora/rak2246/global_conf/ @@ -48,17 +49,18 @@ pub fn new(conf: &config::Configuration) -> Result { }; let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(923200000, 925000000)] - } - Region::AU915 => vec![(915000000, 928000000)], - Region::CN470 => vec![(470000000, 510000000)], - Region::EU433 => vec![(433050000, 434900000)], - Region::EU868 => vec![(863000000, 870000000)], - Region::IN865 => vec![(865000000, 867000000)], - Region::KR920 => vec![(920900000, 923300000)], - Region::RU864 => vec![(863000000, 870000000)], - Region::US915 => vec![(902000000, 928000000)], + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::CN470 => region::cn470::TX_MIN_MAX_FREQS.to_vec(), + Region::EU433 => region::eu433::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2247.rs b/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2247.rs index f4b59995..41f12fd3 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2247.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2247.rs @@ -3,6 +3,7 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::{Configuration, Gps}; +use libconcentratord::region; // source: // https://github.com/RAKWireless/rak_common_for_gateway/blob/45c93c07f7/lora/rak2247_spi/global_conf/ @@ -46,17 +47,18 @@ pub fn new(conf: &config::Configuration) -> Result { }; let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(915000000, 928000000)] - } - Region::AU915 => vec![(915000000, 928000000)], - Region::CN470 => vec![(470000000, 510000000)], - Region::EU433 => vec![(433050000, 434900000)], - Region::EU868 => vec![(863000000, 870000000)], - Region::IN865 => vec![(865000000, 867000000)], - Region::KR920 => vec![(920900000, 923300000)], - Region::RU864 => vec![(863000000, 870000000)], - Region::US915 => vec![(902000000, 928000000)], + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::CN470 => region::cn470::TX_MIN_MAX_FREQS.to_vec(), + Region::EU433 => region::eu433::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/risinghf/rhf0m301.rs b/chirpstack-concentratord-sx1301/src/config/vendor/risinghf/rhf0m301.rs index 6f8516c2..7cfc5263 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/risinghf/rhf0m301.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/risinghf/rhf0m301.rs @@ -3,6 +3,7 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::Configuration; +use libconcentratord::region; // Taken from the "generic" eu868 configuration as no actual calibration values // are known. TODO: replace with actual calibration values if known. @@ -13,9 +14,9 @@ pub fn new(conf: &config::Configuration) -> Result { .ok_or_else(|| anyhow!("You must specify a region"))?; let tx_min_max_freqs = match region { - Region::US915 => vec![(923000000, 928000000)], - Region::EU868 => vec![(863000000, 870000000)], - Region::AU915 => vec![(915000000, 928000000)], + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/sandbox/lorago_port.rs b/chirpstack-concentratord-sx1301/src/config/vendor/sandbox/lorago_port.rs index 7fbe417b..039b491e 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/sandbox/lorago_port.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/sandbox/lorago_port.rs @@ -3,6 +3,7 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::Configuration; +use libconcentratord::region; // source: // http://sandboxelectronics.com/?p=2669 @@ -14,9 +15,9 @@ pub fn new(conf: &config::Configuration) -> Result { .ok_or_else(|| anyhow!("You must specify a region"))?; let tx_min_max_freqs = match region { - Region::AU915 => vec![(915000000, 928000000)], - Region::EU868 => vec![(863000000, 870000000)], - Region::US915 => vec![(923000000, 928000000)], + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1301/src/config/vendor/wifx/lorix_one.rs b/chirpstack-concentratord-sx1301/src/config/vendor/wifx/lorix_one.rs index 8d8f59a1..0ccdb41a 100644 --- a/chirpstack-concentratord-sx1301/src/config/vendor/wifx/lorix_one.rs +++ b/chirpstack-concentratord-sx1301/src/config/vendor/wifx/lorix_one.rs @@ -3,6 +3,7 @@ use libloragw_sx1301::hal; use super::super::super::super::config::{self, Region}; use super::super::Configuration; +use libconcentratord::region; // source: // https://github.com/Wifx/meta-wifx/blob/krogoth/recipes-connectivity/packet-forwarder/files/configs/global_conf_EU868_2dBi_indoor.json @@ -11,7 +12,7 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863000000, 870000000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/dragino/pg1302.rs b/chirpstack-concentratord-sx1302/src/config/vendor/dragino/pg1302.rs index ecf41309..d522dbeb 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/dragino/pg1302.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/dragino/pg1302.rs @@ -3,6 +3,7 @@ use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; use super::super::{ComType, Configuration, Gps, RadioConfig}; +use libconcentratord::region; // source: // wget https://www.dragino.com/downloads/downloads/LoRa_Gateway/PG1302/software/draginofwd-32bit.deb @@ -13,8 +14,8 @@ pub fn new(conf: &config::Configuration) -> Result { .ok_or_else(|| anyhow!("You must specify a region"))?; let tx_min_max_freqs = match region { - Region::EU868 => vec![(863000000, 870000000)], - Region::US915 => vec![(923000000, 928000000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Unsupported region: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/embit/emb_lr1302_mpcie.rs b/chirpstack-concentratord-sx1302/src/config/vendor/embit/emb_lr1302_mpcie.rs index 5a006699..7c9dce3d 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/embit/emb_lr1302_mpcie.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/embit/emb_lr1302_mpcie.rs @@ -3,6 +3,7 @@ use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; use super::super::{ComType, Configuration, Gps, RadioConfig}; +use libconcentratord::region; // source: https://github.com/Lora-net/sx1302_hal/blob/master/packet_forwarder/ // Note: At the time of implementation, Embit does not provide tx_gain_table values. @@ -14,12 +15,12 @@ pub fn new(conf: &config::Configuration) -> Result { .ok_or_else(|| anyhow!("You must specify a region"))?; let tx_min_max_freqs = match region { - Region::AU915 => vec![(915_000_000, 928_000_000)], - Region::EU868 => vec![(863_000_000, 870_000_000)], - Region::IN865 => vec![(865_000_000, 867_000_000)], - Region::KR920 => vec![(920_900_000, 923_300_000)], - Region::RU864 => vec![(863_000_000, 870_000_000)], - Region::US915 => vec![(923_000_000, 928_000_000)], + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003e00.rs b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003e00.rs index bab8b371..8fff18f5 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003e00.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003e00.rs @@ -3,6 +3,7 @@ use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; use super::super::{ComType, Configuration, Gps, RadioConfig}; +use libconcentratord::region; pub enum Port { AP1, @@ -15,7 +16,7 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863_000_000, 870_000_000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Unsupported region: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003u00.rs b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003u00.rs index c397cfe2..026b4df2 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003u00.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtac_003u00.rs @@ -3,6 +3,7 @@ use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; use super::super::{ComType, Configuration, Gps, RadioConfig}; +use libconcentratord::region; pub enum Port { AP1, @@ -15,7 +16,7 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::US915); let tx_min_max_freqs = match region { - Region::US915 => vec![(923_000_000, 928_000_000)], + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Unsupported region: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003e00.rs b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003e00.rs index fbb43942..34841379 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003e00.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003e00.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -10,7 +11,7 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863_000_000, 870_000_000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Unsupported region: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003u00.rs b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003u00.rs index 6d8a031d..b62f3339 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003u00.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/multitech/mtcap3_003u00.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -10,7 +11,7 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::US915); let tx_min_max_freqs = match region { - Region::US915 => vec![(923_000_000, 928_000_000)], + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Unsupported region: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak2287.rs b/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak2287.rs index a54fe515..7cec61cf 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak2287.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak2287.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -13,17 +14,18 @@ pub fn new(conf: &config::Configuration) -> Result { .ok_or_else(|| anyhow!("You must specify a region"))?; let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(915_000_000, 928_000_000)] - } - Region::AU915 => vec![(915_000_000, 928_000_000)], - Region::CN470 => vec![(470_000_000, 510_000_000)], - Region::EU433 => vec![(433_050_000, 434_900_000)], - Region::EU868 => vec![(863_000_000, 870_000_000)], - Region::IN865 => vec![(865_000_000, 867_000_000)], - Region::KR920 => vec![(920_900_000, 923_300_000)], - Region::RU864 => vec![(863_000_000, 870_000_000)], - Region::US915 => vec![(923_000_000, 928_000_000)], + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::CN470 => region::cn470::TX_MIN_MAX_FREQS.to_vec(), + Region::EU433 => region::eu433::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak5146.rs b/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak5146.rs index 33b8840d..0e7e07ba 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak5146.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/rak/rak5146.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -13,17 +14,18 @@ pub fn new(conf: &config::Configuration) -> Result { .ok_or_else(|| anyhow!("You must specify a region"))?; let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(915_000_000, 928_000_000)] - } - Region::AU915 => vec![(915_000_000, 928_000_000)], - Region::CN470 => vec![(470_000_000, 510_000_000)], - Region::EU433 => vec![(433_050_000, 434_900_000)], - Region::EU868 => vec![(863_000_000, 870_000_000)], - Region::IN865 => vec![(865_000_000, 867_000_000)], - Region::KR920 => vec![(920_900_000, 923_300_000)], - Region::RU864 => vec![(863_000_000, 870_000_000)], - Region::US915 => vec![(923_000_000, 928_000_000)], + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::CN470 => region::cn470::TX_MIN_MAX_FREQS.to_vec(), + Region::EU433 => region::eu433::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/seeed/wm1302.rs b/chirpstack-concentratord-sx1302/src/config/vendor/seeed/wm1302.rs index b5389e26..4590e19c 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/seeed/wm1302.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/seeed/wm1302.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -13,15 +14,16 @@ pub fn new(conf: &config::Configuration) -> Result { .ok_or_else(|| anyhow!("You must specify a region"))?; let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(915_000_000, 928_000_000)] - } - Region::AU915 => vec![(915_000_000, 928_000_000)], - Region::EU868 => vec![(863_000_000, 870_000_000)], - Region::IN865 => vec![(865_000_000, 867_000_000)], - Region::KR920 => vec![(920_900_000, 923_300_000)], - Region::RU864 => vec![(863_000_000, 870_000_000)], - Region::US915 => vec![(923_000_000, 928_000_000)], + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c490gw1.rs b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c490gw1.rs index b5e73c9a..9a826505 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c490gw1.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c490gw1.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -9,8 +10,8 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::CN470); let tx_min_max_freqs = match region { - Region::CN470 => vec![(470_000_000, 510_000_000)], - Region::EU433 => vec![(433_050_000, 434_900_000)], + Region::CN470 => region::cn470::TX_MIN_MAX_FREQS.to_vec(), + Region::EU433 => region::eu433::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c868gw1.rs b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c868gw1.rs index f78c0b75..fa3b08f6 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c868gw1.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c868gw1.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -9,9 +10,9 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863_000_000, 870_000_000)], - Region::IN865 => vec![(865_000_000, 867_000_000)], - Region::RU864 => vec![(863_000_000, 870_000_000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c915gw1.rs b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c915gw1.rs index 4665bc73..e5878c54 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c915gw1.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302c915gw1.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -9,8 +10,8 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::US915); let tx_min_max_freqs = match region { - Region::US915 => vec![(923000000, 928000000)], - Region::AU915 => vec![(915000000, 928000000)], + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css868gw1.rs b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css868gw1.rs index 70fb3fec..74d4b707 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css868gw1.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css868gw1.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -9,9 +10,9 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::EU868 => vec![(863_000_000, 870_000_000)], - Region::IN865 => vec![(865_000_000, 867_000_000)], - Region::RU864 => vec![(863_000_000, 870_000_000)], + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css915gw1.rs b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css915gw1.rs index 19c5df2e..307c3fa5 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css915gw1.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css915gw1.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -9,8 +10,8 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::US915); let tx_min_max_freqs = match region { - Region::US915 => vec![(923000000, 928000000)], - Region::AU915 => vec![(915000000, 928000000)], + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css923gw1.rs b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css923gw1.rs index d34dc40b..b040e70e 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css923gw1.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/semtech/sx1302css923gw1.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -9,9 +10,10 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::AS923); let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(915_000_000, 928_000_000)] - } + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region is not supported: {}", region)), }; diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/waveshare/sx1302_lorawan_gateway_hat.rs b/chirpstack-concentratord-sx1302/src/config/vendor/waveshare/sx1302_lorawan_gateway_hat.rs index 925c8389..c5627960 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/waveshare/sx1302_lorawan_gateway_hat.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/waveshare/sx1302_lorawan_gateway_hat.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use libconcentratord::region; use libloragw_sx1302::hal; use super::super::super::super::config::{self, Region}; @@ -9,15 +10,16 @@ pub fn new(conf: &config::Configuration) -> Result { let region = conf.gateway.region.unwrap_or(Region::EU868); let tx_min_max_freqs = match region { - Region::AS923 | Region::AS923_2 | Region::AS923_3 | Region::AS923_4 => { - vec![(915_000_000, 928_000_000)] - } - Region::AU915 => vec![(915_000_000, 928_000_000)], - Region::EU868 => vec![(863_000_000, 870_000_000)], - Region::IN865 => vec![(865_000_000, 867_000_000)], - Region::KR920 => vec![(920_900_000, 923_300_000)], - Region::RU864 => vec![(863_000_000, 870_000_000)], - Region::US915 => vec![(923_000_000, 928_000_000)], + Region::AS923 => region::as923::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_2 => region::as923_2::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_3 => region::as923_3::TX_MIN_MAX_FREQS.to_vec(), + Region::AS923_4 => region::as923_4::TX_MIN_MAX_FREQS.to_vec(), + Region::AU915 => region::au915::TX_MIN_MAX_FREQS.to_vec(), + Region::EU868 => region::eu868::TX_MIN_MAX_FREQS.to_vec(), + Region::IN865 => region::in865::TX_MIN_MAX_FREQS.to_vec(), + Region::KR920 => region::kr920::TX_MIN_MAX_FREQS.to_vec(), + Region::RU864 => region::ru864::TX_MIN_MAX_FREQS.to_vec(), + Region::US915 => region::us915::TX_MIN_MAX_FREQS.to_vec(), _ => return Err(anyhow!("Region not supported: {}", region)), }; diff --git a/libconcentratord/src/lib.rs b/libconcentratord/src/lib.rs index edf3c528..b4fa0a05 100644 --- a/libconcentratord/src/lib.rs +++ b/libconcentratord/src/lib.rs @@ -9,6 +9,7 @@ pub mod events; pub mod gpsd; mod helpers; pub mod jitqueue; +pub mod region; pub mod regulation; pub mod reset; pub mod signals; diff --git a/libconcentratord/src/region/as923.rs b/libconcentratord/src/region/as923.rs new file mode 100644 index 00000000..6271c8ee --- /dev/null +++ b/libconcentratord/src/region/as923.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(915000000, 928000000)]; diff --git a/libconcentratord/src/region/as923_2.rs b/libconcentratord/src/region/as923_2.rs new file mode 100644 index 00000000..6271c8ee --- /dev/null +++ b/libconcentratord/src/region/as923_2.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(915000000, 928000000)]; diff --git a/libconcentratord/src/region/as923_3.rs b/libconcentratord/src/region/as923_3.rs new file mode 100644 index 00000000..6271c8ee --- /dev/null +++ b/libconcentratord/src/region/as923_3.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(915000000, 928000000)]; diff --git a/libconcentratord/src/region/as923_4.rs b/libconcentratord/src/region/as923_4.rs new file mode 100644 index 00000000..6271c8ee --- /dev/null +++ b/libconcentratord/src/region/as923_4.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(915000000, 928000000)]; diff --git a/libconcentratord/src/region/au915.rs b/libconcentratord/src/region/au915.rs new file mode 100644 index 00000000..6271c8ee --- /dev/null +++ b/libconcentratord/src/region/au915.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(915000000, 928000000)]; diff --git a/libconcentratord/src/region/cn470.rs b/libconcentratord/src/region/cn470.rs new file mode 100644 index 00000000..6a96fa92 --- /dev/null +++ b/libconcentratord/src/region/cn470.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(470000000, 510000000)]; diff --git a/libconcentratord/src/region/eu433.rs b/libconcentratord/src/region/eu433.rs new file mode 100644 index 00000000..a77cef22 --- /dev/null +++ b/libconcentratord/src/region/eu433.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(433050000, 434900000)]; diff --git a/libconcentratord/src/region/eu868.rs b/libconcentratord/src/region/eu868.rs new file mode 100644 index 00000000..ce7b8333 --- /dev/null +++ b/libconcentratord/src/region/eu868.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(863000000, 870000000)]; diff --git a/libconcentratord/src/region/in865.rs b/libconcentratord/src/region/in865.rs new file mode 100644 index 00000000..e4929324 --- /dev/null +++ b/libconcentratord/src/region/in865.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(865000000, 867000000)]; diff --git a/libconcentratord/src/region/ism2400.rs b/libconcentratord/src/region/ism2400.rs new file mode 100644 index 00000000..f7b117ce --- /dev/null +++ b/libconcentratord/src/region/ism2400.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(2400000000, 2483500000)]; diff --git a/libconcentratord/src/region/kr920.rs b/libconcentratord/src/region/kr920.rs new file mode 100644 index 00000000..48e5dc38 --- /dev/null +++ b/libconcentratord/src/region/kr920.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(920900000, 923300000)]; diff --git a/libconcentratord/src/region/mod.rs b/libconcentratord/src/region/mod.rs new file mode 100644 index 00000000..a4ed204c --- /dev/null +++ b/libconcentratord/src/region/mod.rs @@ -0,0 +1,13 @@ +pub mod as923; +pub mod as923_2; +pub mod as923_3; +pub mod as923_4; +pub mod au915; +pub mod cn470; +pub mod eu433; +pub mod eu868; +pub mod in865; +pub mod ism2400; +pub mod kr920; +pub mod ru864; +pub mod us915; diff --git a/libconcentratord/src/region/ru864.rs b/libconcentratord/src/region/ru864.rs new file mode 100644 index 00000000..ca228297 --- /dev/null +++ b/libconcentratord/src/region/ru864.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(864000000, 870000000)]; diff --git a/libconcentratord/src/region/us915.rs b/libconcentratord/src/region/us915.rs new file mode 100644 index 00000000..1017a8db --- /dev/null +++ b/libconcentratord/src/region/us915.rs @@ -0,0 +1 @@ +pub const TX_MIN_MAX_FREQS: [(u32, u32); 1] = [(902000000, 928000000)];