Skip to content

Commit

Permalink
Move tx min / max freqs as consts to libconcentratord.
Browse files Browse the repository at this point in the history
  • Loading branch information
brocaar committed Sep 23, 2024
1 parent 286d7b4 commit dfcf419
Show file tree
Hide file tree
Showing 46 changed files with 186 additions and 120 deletions.
Original file line number Diff line number Diff line change
@@ -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,
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use anyhow::Result;
use libconcentratord::region;
use libloragw_sx1301::hal;

use super::super::super::super::config::{self, Region};
Expand All @@ -10,9 +11,9 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Configuration> {
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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -14,7 +15,7 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -14,7 +15,7 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Configuration> {
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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Configuration> {
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)),
};

Expand Down
24 changes: 13 additions & 11 deletions chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2245.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use anyhow::Result;
use libconcentratord::region;
use libloragw_sx1301::hal;

use super::super::super::super::config::{self, Region};
Expand Down Expand Up @@ -47,17 +48,18 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
};

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)),
};

Expand Down
24 changes: 13 additions & 11 deletions chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2246.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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/
Expand Down Expand Up @@ -48,17 +49,18 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
};

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)),
};

Expand Down
24 changes: 13 additions & 11 deletions chirpstack-concentratord-sx1301/src/config/vendor/rak/rak2247.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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/
Expand Down Expand Up @@ -46,17 +47,18 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
};

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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -13,9 +14,9 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
.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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -14,9 +15,9 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
.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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -11,7 +12,7 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -13,8 +14,8 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
.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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -14,12 +15,12 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
.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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -15,7 +16,7 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
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)),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -15,7 +16,7 @@ pub fn new(conf: &config::Configuration) -> Result<Configuration> {
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)),
};

Expand Down
Loading

0 comments on commit dfcf419

Please sign in to comment.