Skip to content

Commit 4821e25

Browse files
committed
Update ChirpStack Concentratord. Add support for model flags.
1 parent 1bcd546 commit 4821e25

File tree

5 files changed

+42
-27
lines changed

5 files changed

+42
-27
lines changed

layers/targets/meta-raspberrypi/recipes-chirpstack/chirpstack-concentratord/files/sx1301/global.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,8 @@ lorawan_public=true
4545
# frequency, TX gain table.
4646
model="generic_eu868"
4747

48+
# Gateway vendor / model flags.
49+
model_flags=[]
50+
4851
# Gateway ID.
4952
gateway_id="0101010101010101"

layers/targets/meta-raspberrypi/recipes-chirpstack/chirpstack-concentratord/files/sx1302/global.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,6 @@ lorawan_public=true
4444
# This configures various vendor and model specific settings like the min / max
4545
# frequency, TX gain table.
4646
model="generic_sx1250_eu868"
47+
48+
# Gateway vendor / model flags.
49+
model_flags=[]

layers/targets/meta-raspberrypi/recipes-core/gateway-config/files/gateway-config.sh

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ do_setup_ic880a() {
7878
do_main_menu
7979
elif [ $RET -eq 0 ]; then
8080
case "$FUN" in
81-
1) do_copy_concentratord_config "sx1301" "imst_ic880a_eu868" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";
81+
1) do_copy_concentratord_config "sx1301" "imst_ic880a_eu868" "" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";
8282
esac
8383
fi
8484
}
@@ -106,7 +106,7 @@ do_setup_imst_lite() {
106106
do_main_menu
107107
elif [ $RET -eq 0 ]; then
108108
case "$FUN" in
109-
1) do_copy_concentratord_config "sx1301" "imst_ic880a_eu868" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";
109+
1) do_copy_concentratord_config "sx1301" "imst_ic880a_eu868" "" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";
110110
esac
111111
fi
112112
}
@@ -121,7 +121,7 @@ do_setup_pislora() {
121121
do_main_menu
122122
elif [ $RET -eq 0 ]; then
123123
case "$FUN" in
124-
1) do_copy_concentratord_config "sx1301" "generic_eu868" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
124+
1) do_copy_concentratord_config "sx1301" "generic_eu868" "" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
125125
2) do_select_us915_block "sx1301" "generic_us915";;
126126
esac
127127
fi
@@ -138,7 +138,7 @@ do_setup_rak831() {
138138
do_main_menu
139139
elif [ $RET -eq 0 ]; then
140140
case "$FUN" in
141-
1) do_copy_concentratord_config "sx1301" "generic_eu868_gps" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
141+
1) do_copy_concentratord_config "sx1301" "generic_eu868" "GNSS" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
142142
2) do_select_au915_block "sx1301" "generic_au915_gps";;
143143
3) do_select_us915_block "sx1301" "generic_us915_gps";;
144144
esac
@@ -155,7 +155,7 @@ do_setup_rhf0m301() {
155155
do_main_menu
156156
elif [ $RET -eq 0 ]; then
157157
case "$FUN" in
158-
1) do_copy_concentratord_config "sx1301" "generic_eu868" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
158+
1) do_copy_concentratord_config "sx1301" "generic_eu868" "" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
159159
2) do_select_us915_block "sx1301" "generic_us915";;
160160
esac
161161
fi
@@ -171,7 +171,7 @@ do_setup_lorago_port() {
171171
do_main_menu
172172
elif [ $RET -eq 0 ]; then
173173
case "$FUN" in
174-
1) do_copy_concentratord_config "sx1301" "generic_eu868_gps" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
174+
1) do_copy_concentratord_config "sx1301" "generic_eu868" "" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
175175
2) do_select_us915_block "sx1301" "generic_us915_gps";;
176176
esac
177177
fi
@@ -187,7 +187,7 @@ do_setup_semtech_corecell() {
187187
do_main_menu
188188
elif [ $RET -eq 0 ]; then
189189
case "$FUN" in
190-
1) do_copy_concentratord_config "sx1302" "generic_sx1250_eu868" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
190+
1) do_copy_concentratord_config "sx1302" "generic_sx1250_eu868" "" "eu868" "0" && do_copy_chirpstack_ns_config "eu868";;
191191
2) do_select_us915_block "sx1302" "generic_sx1250_us915";;
192192
esac
193193
fi
@@ -196,6 +196,7 @@ do_setup_semtech_corecell() {
196196
do_select_us915_block() {
197197
# $1: concentratord version
198198
# $2: model
199+
# $3: model flags
199200
FUN=$(dialog --title "Channel-plan configuration" --menu "Select the US915 channel-block:" 15 60 8 \
200201
1 "Channels 0 - 7 + 64" \
201202
2 "Channels 8 - 15 + 65" \
@@ -211,21 +212,22 @@ do_select_us915_block() {
211212
do_main_menu
212213
elif [ $RET -eq 0 ]; then
213214
case "$FUN" in
214-
1) do_copy_concentratord_config $1 $2 "us915" "0" && do_copy_chirpstack_ns_config "us915_0";;
215-
2) do_copy_concentratord_config $1 $2 "us915" "1" && do_copy_chirpstack_ns_config "us915_1";;
216-
3) do_copy_concentratord_config $1 $2 "us915" "2" && do_copy_chirpstack_ns_config "us915_2";;
217-
4) do_copy_concentratord_config $1 $2 "us915" "3" && do_copy_chirpstack_ns_config "us915_3";;
218-
5) do_copy_concentratord_config $1 $2 "us915" "4" && do_copy_chirpstack_ns_config "us915_4";;
219-
6) do_copy_concentratord_config $1 $2 "us915" "5" && do_copy_chirpstack_ns_config "us915_5";;
220-
7) do_copy_concentratord_config $1 $2 "us915" "6" && do_copy_chirpstack_ns_config "us915_6";;
221-
8) do_copy_concentratord_config $1 $2 "us915" "7" && do_copy_chirpstack_ns_config "us915_7";;
215+
1) do_copy_concentratord_config $1 $2 $3 "us915" "0" && do_copy_chirpstack_ns_config "us915_0";;
216+
2) do_copy_concentratord_config $1 $2 $3 "us915" "1" && do_copy_chirpstack_ns_config "us915_1";;
217+
3) do_copy_concentratord_config $1 $2 $3 "us915" "2" && do_copy_chirpstack_ns_config "us915_2";;
218+
4) do_copy_concentratord_config $1 $2 $3 "us915" "3" && do_copy_chirpstack_ns_config "us915_3";;
219+
5) do_copy_concentratord_config $1 $2 $3 "us915" "4" && do_copy_chirpstack_ns_config "us915_4";;
220+
6) do_copy_concentratord_config $1 $2 $3 "us915" "5" && do_copy_chirpstack_ns_config "us915_5";;
221+
7) do_copy_concentratord_config $1 $2 $3 "us915" "6" && do_copy_chirpstack_ns_config "us915_6";;
222+
8) do_copy_concentratord_config $1 $2 $3 "us915" "7" && do_copy_chirpstack_ns_config "us915_7";;
222223
esac
223224
fi
224225
}
225226

226227
do_select_au915_block() {
227228
# $1: concentratord version
228229
# $2: model
230+
# $3: model flags
229231
FUN=$(dialog --title "Channel-plan configuration" --menu "Select the AU915 channel-block:" 15 60 8 \
230232
1 "Channels 0 - 7 + 64" \
231233
2 "Channels 8 - 15 + 65" \
@@ -241,14 +243,14 @@ do_select_au915_block() {
241243
do_main_menu
242244
elif [ $RET -eq 0 ]; then
243245
case "$FUN" in
244-
1) do_copy_concentratord_config $1 $2 "au915" "0" && do_copy_chirpstack_ns_config "au915_0";;
245-
2) do_copy_concentratord_config $1 $2 "au915" "1" && do_copy_chirpstack_ns_config "au915_1";;
246-
3) do_copy_concentratord_config $1 $2 "au915" "2" && do_copy_chirpstack_ns_config "au915_2";;
247-
4) do_copy_concentratord_config $1 $2 "au915" "3" && do_copy_chirpstack_ns_config "au915_3";;
248-
5) do_copy_concentratord_config $1 $2 "au915" "4" && do_copy_chirpstack_ns_config "au915_4";;
249-
6) do_copy_concentratord_config $1 $2 "au915" "5" && do_copy_chirpstack_ns_config "au915_5";;
250-
7) do_copy_concentratord_config $1 $2 "au915" "6" && do_copy_chirpstack_ns_config "au915_6";;
251-
8) do_copy_concentratord_config $1 $2 "au915" "7" && do_copy_chirpstack_ns_config "au915_7";;
246+
1) do_copy_concentratord_config $1 $2 $3 "au915" "0" && do_copy_chirpstack_ns_config "au915_0";;
247+
2) do_copy_concentratord_config $1 $2 $3 "au915" "1" && do_copy_chirpstack_ns_config "au915_1";;
248+
3) do_copy_concentratord_config $1 $2 $3 "au915" "2" && do_copy_chirpstack_ns_config "au915_2";;
249+
4) do_copy_concentratord_config $1 $2 $3 "au915" "3" && do_copy_chirpstack_ns_config "au915_3";;
250+
5) do_copy_concentratord_config $1 $2 $3 "au915" "4" && do_copy_chirpstack_ns_config "au915_4";;
251+
6) do_copy_concentratord_config $1 $2 $3 "au915" "5" && do_copy_chirpstack_ns_config "au915_5";;
252+
7) do_copy_concentratord_config $1 $2 $3 "au915" "6" && do_copy_chirpstack_ns_config "au915_6";;
253+
8) do_copy_concentratord_config $1 $2 $3 "au915" "7" && do_copy_chirpstack_ns_config "au915_7";;
252254
esac
253255
fi
254256
}
@@ -282,8 +284,9 @@ do_set_concentratord_power_en_pin() {
282284
do_copy_concentratord_config() {
283285
# $1 concentratord version
284286
# $2 model
285-
# $3 region
286-
# $4 sub-band
287+
# $3 model flags
288+
# $4 region
289+
# $5 sub-band
287290
RET=0
288291
if [ -f "/etc/chirpstack-concentratord/$1/global.toml" ] || [ -f "/etc/chirpstack-concentratord/$1/band.toml"] || [ -f "/etc/chirpstack-concentratord/$1/channels.toml" ]; then
289292
dialog --yesno "A ChirpStack Concentratord configuration file already exists. Do you want to overwrite it?" 6 60
@@ -292,14 +295,20 @@ do_copy_concentratord_config() {
292295

293296
if [ $RET -eq 0 ]; then
294297
cp /etc/chirpstack-concentratord/$1/examples/global.toml /etc/chirpstack-concentratord/$1/global.toml
295-
cp /etc/chirpstack-concentratord/$1/examples/$3.toml /etc/chirpstack-concentratord/$1/band.toml
296-
cp /etc/chirpstack-concentratord/$1/examples/$3_$4.toml /etc/chirpstack-concentratord/$1/channels.toml
298+
cp /etc/chirpstack-concentratord/$1/examples/$4.toml /etc/chirpstack-concentratord/$1/band.toml
299+
cp /etc/chirpstack-concentratord/$1/examples/$4_$5.toml /etc/chirpstack-concentratord/$1/channels.toml
297300

298301
RET=$?
299302
if [ $RET -eq 0 ]; then
300303
# set model
301304
sed -i "s/model=.*/model=\"${2}\"/" /etc/chirpstack-concentratord/$1/global.toml
302305

306+
# set model flags
307+
IFS=' '; read -ra model_flags <<< $3
308+
model_flags_str=""
309+
for i in "${model_flags[@]}"; do model_flags_str="$model_flags_str\"$i\","; done
310+
sed -i "s/model_flags=.*/model_flags=[$model_flags_str]/" /etc/chirpstack-concentratord/$1/global.toml
311+
303312
# set gateway id
304313
GWID_MIDFIX="fffe"
305314
GWID_BEGIN=$(ip link show eth0 | awk '/ether/ {print $2}' | awk -F\: '{print $1$2$3}')

0 commit comments

Comments
 (0)