mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-04-17 20:50:14 +00:00
Compare commits
3 Commits
api/go/v4.
...
v4.0.4
Author | SHA1 | Date | |
---|---|---|---|
bfcff17f34 | |||
6973e91ade | |||
e2214f9485 |
8
Cargo.lock
generated
8
Cargo.lock
generated
@ -672,7 +672,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "backend"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
dependencies = [
|
||||
"aes-kw",
|
||||
"anyhow",
|
||||
@ -889,7 +889,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "chirpstack"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"anyhow",
|
||||
@ -968,7 +968,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "chirpstack_api"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
dependencies = [
|
||||
"hex",
|
||||
"pbjson",
|
||||
@ -2207,7 +2207,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lrwn"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"anyhow",
|
||||
|
2
api/grpc-web/package.json
vendored
2
api/grpc-web/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api-grpc-web",
|
||||
"version": "4.0.3",
|
||||
"version": "4.0.4",
|
||||
"description": "Chirpstack gRPC-web API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
2
api/js/package.json
vendored
2
api/js/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api",
|
||||
"version": "4.0.3",
|
||||
"version": "4.0.4",
|
||||
"description": "Chirpstack JS and TS API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
2
api/python/src/setup.py
vendored
2
api/python/src/setup.py
vendored
@ -18,7 +18,7 @@ CLASSIFIERS = [
|
||||
|
||||
setup(
|
||||
name='chirpstack-api',
|
||||
version = "4.0.3",
|
||||
version = "4.0.4",
|
||||
url='https://github.com/brocaar/chirpstack-api',
|
||||
author='Orne Brocaar',
|
||||
author_email='info@brocaar.com',
|
||||
|
2
api/rust/Cargo.lock
generated
vendored
2
api/rust/Cargo.lock
generated
vendored
@ -117,7 +117,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "chirpstack_api"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
dependencies = [
|
||||
"hex",
|
||||
"pbjson",
|
||||
|
2
api/rust/Cargo.toml
vendored
2
api/rust/Cargo.toml
vendored
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
license = "MIT"
|
||||
homepage = "https://www.chirpstack.io"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "backend"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
@ -3,7 +3,7 @@ name = "chirpstack"
|
||||
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
homepage="https://www.chirpstack.io/"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
@ -495,9 +495,6 @@ impl Data {
|
||||
|
||||
// Network-server FCnt.
|
||||
mac_pl.fhdr.f_cnt = self.device_session.n_f_cnt_down;
|
||||
|
||||
// Unset queue-item.
|
||||
self.device_queue_item = None;
|
||||
} else {
|
||||
// In this case mac-commands are sent using the FOpts field. In case there
|
||||
// is a device-queue item, we will validate if it still fits within the
|
||||
@ -531,7 +528,6 @@ impl Data {
|
||||
} else {
|
||||
f_pending = true;
|
||||
mac_pl.fhdr.f_ctrl.f_pending = true;
|
||||
self.device_queue_item = None;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
use std::str::FromStr;
|
||||
|
||||
use anyhow::Result;
|
||||
use rand::seq::SliceRandom;
|
||||
|
||||
@ -65,7 +67,9 @@ pub fn set_tx_info_data_rate(
|
||||
parameters: Some(gw::modulation::Parameters::Lora(gw::LoraModulationInfo {
|
||||
bandwidth: v.bandwidth,
|
||||
spreading_factor: v.spreading_factor as u32,
|
||||
code_rate: chirpstack_api::gw::CodeRate::Cr45.into(),
|
||||
code_rate: gw::CodeRate::from_str(&v.coding_rate)
|
||||
.map_err(|e| anyhow!("{}", e))?
|
||||
.into(),
|
||||
polarization_inversion: true,
|
||||
code_rate_legacy: "".into(),
|
||||
})),
|
||||
|
@ -25,6 +25,7 @@ pub fn get_uplink_dr(region_name: &str, tx_info: &chirpstack_api::gw::UplinkTxIn
|
||||
lrwn::region::DataRateModulation::Lora(lrwn::region::LoraDataRate {
|
||||
spreading_factor: v.spreading_factor as u8,
|
||||
bandwidth: v.bandwidth,
|
||||
coding_rate: v.code_rate().into(),
|
||||
})
|
||||
}
|
||||
chirpstack_api::gw::modulation::Parameters::Fsk(v) => {
|
||||
@ -57,7 +58,9 @@ pub fn set_uplink_modulation(
|
||||
gw::modulation::Parameters::Lora(gw::LoraModulationInfo {
|
||||
bandwidth: v.bandwidth,
|
||||
spreading_factor: v.spreading_factor as u32,
|
||||
code_rate: gw::CodeRate::Cr45.into(),
|
||||
code_rate: gw::CodeRate::from_str(&v.coding_rate)
|
||||
.map_err(|e| anyhow!("{}", e))?
|
||||
.into(),
|
||||
code_rate_legacy: "".into(),
|
||||
polarization_inversion: true,
|
||||
})
|
||||
|
@ -255,6 +255,7 @@ fn per_modultation_to_per_dr(
|
||||
lrwn::region::DataRateModulation::Lora(lrwn::region::LoraDataRate {
|
||||
spreading_factor: v.spreading_factor as u8,
|
||||
bandwidth: v.bandwidth,
|
||||
coding_rate: v.code_rate().into(),
|
||||
})
|
||||
}
|
||||
gw::modulation::Parameters::Fsk(v) => {
|
||||
|
@ -3,7 +3,7 @@ name = "lrwn"
|
||||
description = "Library for encoding / decoding LoRaWAN frames."
|
||||
homepage = "https://www.chirpstack.io"
|
||||
license = "MIT"
|
||||
version = "4.0.3"
|
||||
version = "4.0.4"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
|
@ -42,6 +42,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -53,6 +54,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -64,6 +66,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -75,6 +78,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -86,6 +90,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -97,6 +102,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -108,6 +114,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 250000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -94,6 +100,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -116,6 +123,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -127,6 +135,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -138,6 +147,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -149,6 +159,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -160,6 +171,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -171,6 +183,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -1362,6 +1375,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: true,
|
||||
expected_dr: 0,
|
||||
@ -1370,6 +1384,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: false,
|
||||
expected_dr: 8,
|
||||
@ -1378,6 +1393,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: true,
|
||||
expected_dr: 6,
|
||||
@ -1386,6 +1402,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: false,
|
||||
expected_dr: 12,
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -94,6 +100,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -94,6 +100,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 250000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -94,6 +100,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 250000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -94,6 +100,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 250000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -764,6 +771,7 @@ mod tests {
|
||||
DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
0,
|
||||
),
|
||||
@ -772,6 +780,7 @@ mod tests {
|
||||
DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
0,
|
||||
),
|
||||
@ -780,6 +789,7 @@ mod tests {
|
||||
DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
5,
|
||||
),
|
||||
@ -788,6 +798,7 @@ mod tests {
|
||||
DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
5,
|
||||
),
|
||||
@ -796,6 +807,7 @@ mod tests {
|
||||
DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 250000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
6,
|
||||
),
|
||||
@ -804,6 +816,7 @@ mod tests {
|
||||
DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 250000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
6,
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -94,6 +100,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 6,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -105,6 +112,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 5,
|
||||
bandwidth: 812000,
|
||||
coding_rate: "4/8LI".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -274,25 +274,26 @@ pub struct DataRate {
|
||||
pub modulation: DataRateModulation,
|
||||
}
|
||||
|
||||
#[derive(Clone, PartialEq)]
|
||||
#[derive(Clone, PartialEq, Debug)]
|
||||
pub enum DataRateModulation {
|
||||
Lora(LoraDataRate),
|
||||
Fsk(FskDataRate),
|
||||
LrFhss(LrFhssDataRate),
|
||||
}
|
||||
|
||||
#[derive(Clone, PartialEq)]
|
||||
#[derive(Clone, PartialEq, Debug)]
|
||||
pub struct LoraDataRate {
|
||||
pub spreading_factor: u8,
|
||||
pub bandwidth: u32,
|
||||
pub coding_rate: String,
|
||||
}
|
||||
|
||||
#[derive(Clone, PartialEq)]
|
||||
#[derive(Clone, PartialEq, Debug)]
|
||||
pub struct FskDataRate {
|
||||
pub bitrate: u32,
|
||||
}
|
||||
|
||||
#[derive(Clone, PartialEq)]
|
||||
#[derive(Clone, PartialEq, Debug)]
|
||||
pub struct LrFhssDataRate {
|
||||
pub coding_rate: String,
|
||||
pub occupied_channel_width: u32,
|
||||
@ -465,7 +466,7 @@ impl RegionBaseConfig {
|
||||
}
|
||||
}
|
||||
|
||||
Err(anyhow!("Unknown data-rate"))
|
||||
Err(anyhow!("Unknown data-rate: {:?}", modulation))
|
||||
}
|
||||
|
||||
fn get_data_rate(&self, dr: u8) -> Result<DataRateModulation> {
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -83,6 +88,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -94,6 +100,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 250000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
|
@ -28,6 +28,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -39,6 +40,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -50,6 +52,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -61,6 +64,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -72,6 +76,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -106,6 +111,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -117,6 +123,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 11,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -128,6 +135,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -139,6 +147,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 9,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -150,6 +159,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -161,6 +171,7 @@ impl Configuration {
|
||||
modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 7,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
},
|
||||
),
|
||||
@ -1054,6 +1065,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 10,
|
||||
bandwidth: 125000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: true,
|
||||
expected_dr: 0,
|
||||
@ -1062,6 +1074,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 12,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: false,
|
||||
expected_dr: 8,
|
||||
@ -1070,6 +1083,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: true,
|
||||
expected_dr: 4,
|
||||
@ -1078,6 +1092,7 @@ pub mod test {
|
||||
dr_modulation: DataRateModulation::Lora(LoraDataRate {
|
||||
spreading_factor: 8,
|
||||
bandwidth: 500000,
|
||||
coding_rate: "4/5".into(),
|
||||
}),
|
||||
uplink: false,
|
||||
expected_dr: 12,
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "chirpstack-ui",
|
||||
"version": "4.0.3",
|
||||
"version": "4.0.4",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@ant-design/colors": "^6.0.0",
|
||||
|
@ -1881,7 +1881,7 @@
|
||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||
|
||||
"@chirpstack/chirpstack-api-grpc-web@file:../api/grpc-web":
|
||||
version "4.0.3"
|
||||
version "4.0.4"
|
||||
dependencies:
|
||||
"@types/google-protobuf" "^3.15.2"
|
||||
google-protobuf "^3.17.3"
|
||||
|
Reference in New Issue
Block a user