diff options
author | Andrii Pientsov <andrii.pientsov@globallogic.com> | 2020-05-27 15:01:52 +0300 |
---|---|---|
committer | Andrii Pientsov <andrii.pientsov@globallogic.com> | 2020-05-27 15:01:52 +0300 |
commit | 432af19f672a64228e1b70b0b25abb5a0ee7ee30 (patch) | |
tree | ae3b3b0c6748c55cee7b86fec5b12e38f1312d58 /recipes-connectivity/lora/lora-packet-forwarder | |
parent | 1cf08fc9f3c0d5be9318e8b09718b0b379678ca4 (diff) | |
download | meta-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-x | recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init | 140 | ||||
-rw-r--r-- | recipes-connectivity/lora/lora-packet-forwarder/mtcdt3/lora-packet-forwarder.default | 2 |
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" |