diff options
Diffstat (limited to 'recipes-connectivity/lora/lora-network-server')
-rwxr-xr-x | recipes-connectivity/lora/lora-network-server/lora-network-server.init | 22 | ||||
-rwxr-xr-x | recipes-connectivity/lora/lora-network-server/lora-network-server.init~ | 105 |
2 files changed, 19 insertions, 108 deletions
diff --git a/recipes-connectivity/lora/lora-network-server/lora-network-server.init b/recipes-connectivity/lora/lora-network-server/lora-network-server.init index 70cc1f9..9dc8f7a 100755 --- a/recipes-connectivity/lora/lora-network-server/lora-network-server.init +++ b/recipes-connectivity/lora/lora-network-server/lora-network-server.init @@ -33,6 +33,8 @@ lora_1_0_hw="MTAC-LORA-1.0" lora_1_5_h_hw="MTAC-LORA-1.5" lora_mtcap_id="MTCAP-LORA" +lora_mtcap_id868="MTCAP-LORA-868" +lora_mtcap_id915="MTCAP-LORA-915" read_lora_hw_info() { # product-id of first lora card @@ -70,8 +72,21 @@ hardware_found() { return 0 elif [[ "$lora_id" =~ "$lora_mtcap_id" ]]; then - # currently only one valid global_conf.json + if [ "$lora_id" = "$lora_mtcap_id868" ]; then + GLOBAL_CONF=/opt/lora/global_conf.json.MTCAP_LORA_1_5.EU868 + elif [ "$lora_id" = "$lora_mtcap_id915" ]; then + GLOBAL_CONF=/opt/lora/global_conf.json.MTCAP_LORA_1_5.US915 + else + return 1 + fi + ln -sf /opt/lora/lora_pkt_fwd $pkt_fwd + + diff $GLOBAL_CONF /opt/lora/global_conf.json &> /dev/null + if [ $? -ne 0 ]; then + cp $GLOBAL_CONF /opt/lora/global_conf.json + fi + return 0 else echo Lora hardware not detected @@ -81,8 +96,10 @@ hardware_found() { do_start() { - + # create run directory mkdir -p $run_dir/1 + rm -rf $run_dir/1/* + read_lora_hw_info if ! [ -f $conf_file ]; then @@ -90,7 +107,6 @@ do_start() { exit 1 fi - if hardware_found; then echo "Found $lora_id with $lora_hw hardware" else diff --git a/recipes-connectivity/lora/lora-network-server/lora-network-server.init~ b/recipes-connectivity/lora/lora-network-server/lora-network-server.init~ deleted file mode 100755 index 4b80dc7..0000000 --- a/recipes-connectivity/lora/lora-network-server/lora-network-server.init~ +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/bash - -NAME="lora-network-server" -ENABLED="yes" - -[ -f /etc/default/$NAME ] && source /etc/default/$NAME - -run_dir=/var/run/lora -conf_dir=/var/config/lora -conf_file=$conf_dir/lora-network-server.conf -conf_db=$conf_dir/lora-network-server.db - -net_server=/opt/lora/lora-network-server -net_server_log=/var/log/lora-network-server.log -net_server_pidfile=$run_dir/$NAME.pid - -pkt_fwd=/opt/lora/basic_pkt_fwd -pkt_fwd_log=/var/log/lora-pkt-fwd-1.log -pkt_fwd_pidfile=$run_dir/lora-pkt-fwd-1.pid - -lora_us_id="MTAC-LORA-915" -lora_eu_id="MTAC-LORA-868" - -read_card_info() { - # product-id of first lora card - lora_id=$(mts-io-sysfs show lora/product-id 2> /dev/null) - lora_eui=$(mts-io-sysfs show lora/eui 2> /dev/null) - # remove all colons - lora_eui_raw=${lora_eui//:/} -} - -card_found() { - if [ "$lora_id" = "$lora_us_id" ] || [ "$lora_id" = "$lora_eu_id" ]; then - echo "Found lora card $lora_id" - return 0 - else - return 1 - fi -} - -do_start() { - read_card_info - - if ! [ -f $conf_file ]; then - echo "$0: $conf_file missing" - exit 1 - fi - - if ! card_found; then - echo "$0: MTAC-LORA not detected" - exit 1 - fi - - echo -n "Starting $NAME: " - mkdir -p $run_dir/1 - # start network server - start-stop-daemon --start --background --make-pidfile \ - --pidfile $net_server_pidfile --startas /bin/bash -- -c "exec $net_server \ - -c $conf_file --lora-eui $lora_eui --lora-path $run_dir --db $conf_db \ - --noconsole -l $net_server_log >> $net_server_log 2>&1" - sleep 2 - # start packet forwarder - start-stop-daemon --start --background --make-pidfile \ - --pidfile $pkt_fwd_pidfile --exec $pkt_fwd -- \ - -c $run_dir/1 - - renice -n -20 -p $(pgrep lora-network-se) - renice -n -20 -p $(pgrep $(basename $pkt_fwd)) - - echo "OK" -} - -do_stop() { - echo -n "Stopping $NAME: " - start-stop-daemon --stop --quiet --oknodo --pidfile $net_server_pidfile --retry 15 - start-stop-daemon --stop --quiet --oknodo --pidfile $pkt_fwd_pidfile --retry 5 - rm -f $net_server_pidfile $pkt_fwd_pidfile - echo "OK" -} - -if [ "$ENABLED" != "yes" ]; then - echo "$NAME: disabled in /etc/default" - exit -fi - -case "$1" in - "start") - do_start - ;; - "stop") - do_stop - ;; - "restart") - ## Stop the service and regardless of whether it was - ## running or not, start it again. - do_stop - do_start - ;; - *) - ## If no parameters are given, print which are avaiable. - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; -esac - |