summaryrefslogtreecommitdiff
path: root/recipes-connectivity/lora/lora-packet-forwarder
diff options
context:
space:
mode:
authorAndrii Pientsov <andrii.pientsov@globallogic.com>2020-05-27 15:01:52 +0300
committerAndrii Pientsov <andrii.pientsov@globallogic.com>2020-05-27 15:01:52 +0300
commit432af19f672a64228e1b70b0b25abb5a0ee7ee30 (patch)
treeae3b3b0c6748c55cee7b86fec5b12e38f1312d58 /recipes-connectivity/lora/lora-packet-forwarder
parent1cf08fc9f3c0d5be9318e8b09718b0b379678ca4 (diff)
downloadmeta-mlinux-432af19f672a64228e1b70b0b25abb5a0ee7ee30.tar.gz
meta-mlinux-432af19f672a64228e1b70b0b25abb5a0ee7ee30.tar.bz2
meta-mlinux-432af19f672a64228e1b70b0b25abb5a0ee7ee30.zip
Move lora-related changes from meta-mlinux (branch multiarch5-thud)
Diffstat (limited to 'recipes-connectivity/lora/lora-packet-forwarder')
-rwxr-xr-xrecipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init140
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/mtcdt3/lora-packet-forwarder.default2
2 files changed, 135 insertions, 7 deletions
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init
index bcb2a66..c514e18 100755
--- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init
+++ b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init
@@ -12,11 +12,17 @@ opt_conf_dir=/opt/lora
conf_dir=/var/config/lora
conf_file=$conf_dir/global_conf.json
conf_file_local=$conf_dir/local_conf.json
+conf_file_2=$conf_dir/global_conf_2.json
+conf_file_local_2=$conf_dir/local_conf_2.json
pkt_fwd=$run_dir/1/lora_pkt_fwd
pkt_fwd_log=/var/log/lora-pkt-fwd-1.log
pkt_fwd_pidfile=$run_dir/lora-pkt-fwd-1.pid
+pkt_fwd_2=$run_dir/2/lora_pkt_fwd
+pkt_fwd_2_log=/var/log/lora-pkt-fwd-2.log
+pkt_fwd_2_pidfile=$run_dir/lora-pkt-fwd-2.pid
+
port1=/sys/devices/platform/mts-io/ap1
port2=/sys/devices/platform/mts-io/ap2
@@ -30,11 +36,23 @@ lora_mtac_id915="MTAC-LORA-915"
lora_mtac_id868="MTAC-LORA-868"
lora_mtac_h_id915="MTAC-LORA-H-915"
lora_mtac_h_id868="MTAC-LORA-H-868"
+mtac_spi_device="/dev/spidev0.0"
+mtac_spi_device_2="spidev32765.2"
+
+# spidev32765.2 spidev32766.2
lora_mtcap_id="MTCAP-LORA"
lora_mtcap_id868="MTCAP-LORA-868"
lora_mtcap_id915="MTCAP-LORA-915"
+mtcdt3_id="MTCDT3"
+lora_mtcdt3_id="MTCDT3-LORA"
+lora_mtcdt3_id868="MTCDT3-LORA-868"
+lora_mtcdt3_id915="MTCDT3-LORA-915"
+mtcdt3_spi_device="/dev/spidev0.0"
+mtcdt3_spi_device_2="/dev/spidev1.0"
+
+
lora_mtac_g_id="MTAC-LORA-G"
lora_mtac_g16_id868="MTAC-LORA-G16-868"
lora_mtac_g16_id915="MTAC-LORA-G16-915"
@@ -46,14 +64,32 @@ pkt_fwd_options=""
gps_path="/dev/gps0"
read_lora_hw_info() {
+ hw_id=$(mts-io-sysfs show product-id 2> /dev/null)
+
+ # product-id of first lora card
lora_id=$(mts-io-sysfs show lora/product-id 2> /dev/null)
- lora_hw=$(mts-io-sysfs show lora/hw-version 2> /dev/null)
lora_eui=$(mts-io-sysfs show lora/eui 2> /dev/null)
- lora_eui_raw=${lora_eui//:/}
+ # remove all colons
+ lora_eui_raw=${lora_eui//:}
+ lora_hw=$(mts-io-sysfs show lora/hw-version 2> /dev/null)
+ if [ -d $port2 ] && [[ $(cat $port2/hw-version) =~ "LORA-1.5" ]]; then
+ # product-id of first lora card
+ lora_2_id=$(mts-io-sysfs show lora-2/product-id 2> /dev/null)
+ lora_2_hw=$(mts-io-sysfs show lora-2/hw-version 2> /dev/null)
+ lora_2_eui=$(mts-io-sysfs show lora-2/eui 2> /dev/null)
+ # remove all colons
+ lora_2_eui_raw=${lora_2_eui//:}
+ fi
+
+ if [ -d $port1 ] && [[ $(cat $port1/hw-version) =~ "LORA-1.5" ]] && [ -d $port2 ] && [[ $(cat $port2/hw-version) =~ "LORA-1.5" ]]; then
+ dual_cards_installed=true
+ fi
}
hardware_found() {
- if [[ "$lora_id" =~ "$lora_mtac_g_id" ]]; then
+ if [[ "$hw_id" =~ "$mtcdt3_id" ]]; then
+ setup_mtcdt3
+ elif [[ "$lora_id" =~ "$lora_mtac_g_id" ]]; then
setup_mtcdt_2_1
elif [[ "$lora_id" =~ "$lora_mtcap_id" ]]; then
setup_mtcap
@@ -65,6 +101,45 @@ hardware_found() {
return 0
}
+setup_mtcdt3() {
+ dual_cards_installed=true
+ ln -sf /opt/lora/lora_pkt_fwd $pkt_fwd
+ ln -sf /opt/lora/lora_pkt_fwd $pkt_fwd_2
+
+ lora_eui=$(mts-io-sysfs show lora/eui)
+ lora_2_eui=$(mts-io-sysfs show lora-2/eui)
+ lora_eui_raw=${lora_eui//:}
+ lora_2_eui_raw=${lora_2_eui//:}
+
+ lora_id=$(mts-io-sysfs show lora/product-id)
+ lora_2_id=$(mts-io-sysfs show lora-2/product-id)
+
+ lora_hw=$(mts-io-sysfs show lora/hw-version)
+ lora_2_hw=$(mts-io-sysfs show lora-2/hw-version)
+
+ GLOBAL_CONF=/opt/lora/global_conf.json.MTAC_LORA_1_5.US915
+
+ if [[ "$lora_id" =~ "868" ]]; then
+ GLOBAL_CONF=/opt/lora/global_conf.json.MTAC_LORA_1_5.EU868
+ fi
+
+ ln -sf /opt/lora/lora_pkt_fwd $pkt_fwd
+ ln -sf /opt/lora/lora_pkt_fwd $pkt_fwd_2
+
+ opt_conf_file=$opt_conf_dir/global_conf.json
+ opt_conf_file_local=$opt_conf_dir/local_conf.json
+
+ cp $GLOBAL_CONF $opt_conf_file
+
+ if ! [ -f $conf_file ]; then
+ mkdir -p /var/config/lora/
+ cp $opt_conf_file $conf_file
+ cp $opt_conf_file_local $conf_file_local
+ cp $opt_conf_file $conf_file_2
+ cp $opt_conf_file_local $conf_file_local_2
+ fi
+}
+
setup_mtcdt() {
if [ -d $port1 ] && [[ $(cat $port1/hw-version) = $lora_hw ]]; then
ln -sf /dev/spidev32766.2 /dev/spidev0.0
@@ -84,14 +159,15 @@ setup_mtcdt() {
ln -sf /opt/lora/basic_pkt_fwd-usb $pkt_fwd
else
if [ "$lora_id" = "$lora_mtac_h_id868" ]; then
- GLOBAL_CONF=/opt/lora/global_conf.json.MTCDT_LORA_1_5.EU868
+ GLOBAL_CONF=/opt/lora/global_conf.json.MTAC_LORA_1_5.EU868
elif [ "$lora_id" = "$lora_mtac_h_id915" ]; then
- GLOBAL_CONF=/opt/lora/global_conf.json.MTCDT_LORA_1_5.US915
+ GLOBAL_CONF=/opt/lora/global_conf.json.MTAC_LORA_1_5.US915
else
echo "No valid configuration found for mtcdt exiting."
exit 1
fi
ln -sf /opt/lora/lora_pkt_fwd $pkt_fwd
+ ln -sf /opt/lora/lora_pkt_fwd $pkt_fwd_2
fi
opt_conf_file=$opt_conf_dir/global_conf.json
@@ -103,6 +179,8 @@ setup_mtcdt() {
mkdir -p /var/config/lora/
cp $opt_conf_file $conf_file
cp $opt_conf_file_local $conf_file_local
+ cp $opt_conf_file $conf_file_2
+ cp $opt_conf_file_local $conf_file_local_2
fi
}
@@ -173,10 +251,38 @@ do_start() {
mkdir -p $run_dir/1
rm -rf $run_dir/1/*
+ mkdir -p $run_dir/2
+ rm -rf $run_dir/2/*
+
read_lora_hw_info
if hardware_found; then
echo "Found $lora_id with $lora_hw hardware. Configuring"
+
+ if [[ "$hw_id" =~ "$mtcdt3_id" ]]; then
+ mts-io-sysfs store lora/reset 0
+ mts-io-sysfs store lora-2/reset 0
+ sleep 0.25
+ mts-io-sysfs store lora/reset 1
+ mts-io-sysfs store lora-2/reset 1
+ sleep 0.25
+ elif [[ "$lora_id" =~ "$lora_mtac_g_id" ]]; then
+ echo Resetting 2.1 LoRa
+ /usr/sbin/mts-util-lora2-reset -g -f >/dev/null 2>&1
+ sleep 0.25
+ else
+ mts-io-sysfs store lora/reset 0
+ if [ "$dual_cards_installed" == true ]; then
+ mts-io-sysfs store lora-2/reset 0
+ fi
+ sleep 0.25
+ mts-io-sysfs store lora/reset 1
+ if [ "$dual_cards_installed" == true ]; then
+ mts-io-sysfs store lora-2/reset 1
+ fi
+ sleep 0.25
+ fi
+
else
echo "$0: LORA card not detected"
exit 1
@@ -198,15 +304,34 @@ do_start() {
sed -i.bak "s/\(.*gateway_ID\"\s*\:\s*\"\)<.*>[^\"]*\(.*\)/\1${lora_eui_raw}\2/g" /var/run/lora/1/global_conf.json
+ if [ "$dual_cards_installed" == "true" ]; then
+ cp $conf_file_2 $run_dir/2/global_conf.json
+ if [ -f $conf_file_local_2 ]; then
+ cp $conf_file_local_2 $run_dir/2/local_conf.json
+ sed -i.bak "s/\(.*gateway_ID\"\s*\:\s*\"\)<.*>[^\"]*\(.*\)/\1${lora_2_eui_raw}\2/g" /var/run/lora/2/local_conf.json
+ fi
+
+ sed -i.bak "s/\(.*gateway_ID\"\s*\:\s*\"\)<.*>[^\"]*\(.*\)/\1${lora_2_eui_raw}\2/g" /var/run/lora/2/global_conf.json
+ fi
+
#
# start packet forwarder
#
echo -n "Starting $NAME: "
/usr/sbin/start-stop-daemon --chdir $run_dir/1 --background --start --make-pidfile \
- --pidfile $pkt_fwd_pidfile --startas /bin/bash -- -c "exec $pkt_fwd $pkt_fwd_options"
+ --pidfile $pkt_fwd_pidfile --startas /bin/bash -- -c "exec $pkt_fwd $pkt_fwd_options -l $pkt_fwd_log"
+
- renice -n -20 -p $(pgrep $(basename $pkt_fwd))
+ if [ "$dual_cards_installed" == "true" ]; then
+ /usr/sbin/start-stop-daemon --chdir $run_dir/2 --start --background --make-pidfile \
+ --pidfile $pkt_fwd_2_pidfile --startas /bin/bash \
+ -- -c "exec $pkt_fwd_2 $pkt_fwd_options -l $pkt_fwd_2_log"
+ fi
+
+ if [[ ! "$hw_id" =~ "$mtcdt3_id" ]]; then
+ renice -n -20 -p $(pgrep $(basename $pkt_fwd))
+ fi
echo "OK"
}
@@ -215,6 +340,7 @@ do_start() {
do_stop() {
echo -n "Stopping $NAME: "
start-stop-daemon --stop --quiet --oknodo --pidfile $pkt_fwd_pidfile --retry 5
+ start-stop-daemon --stop --quiet --oknodo --pidfile $pkt_fwd_2_pidfile --retry 5
rm -f $pkt_fwd_pidfile
echo "OK"
}
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/mtcdt3/lora-packet-forwarder.default b/recipes-connectivity/lora/lora-packet-forwarder/mtcdt3/lora-packet-forwarder.default
new file mode 100644
index 0000000..0f92640
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/mtcdt3/lora-packet-forwarder.default
@@ -0,0 +1,2 @@
+# set to "yes" or "no" to control starting on boot
+ENABLED="no"