#!/bin/bash LORA_FORWARDER_FOLDER=/var/lora_pkt_fwd LOGFOLDER=/var/log/ ACM=$1 CONSOLEOUT=$2 if [ "$ACM" == '' ]; then ACM=0 fi killLora() { echo -n "Start Killing..." killall -9 lora_pkt_fwd echo "done killing." sleep 1 sudo /sbin/modprobe -vr cdc_acm # After kernel 5.15.193 or? iPhone attached we need this. lsmod | grep cdc_acm if [ $? == 0 ]; then echo "Error, cdc_acm is present." exit 1 fi sleep 1 sudo /sbin/modprobe -v cdc_acm sleep 1 } killLora # check for existing lora PIDLORAPKTFWD=$(ps -eo pid,command | grep -E '[0-9] lora_pkt_fwd' | sed -e 's+ lora.*++' -e 's+ ++') startLoRa(){ echo starting LoRa checkforACM if [ $? == 0 ]; then echo "Waiting 25 seconds to make sure device is up" echo -n "Starting concentrator: " | tee -a $LOGFOLDER/lora.log date | tee -a $LOGFOLDER/lora.log for i in `seq 1 25` do echo -n "$i, " # echo some lines to get-rid of CRC zero data log. if [ $i -lt 10 ]; then echo $i >> $LOGFOLDER/lora.log fi sleep 1 done echo "LoRa starting.." cd $LORA_FORWARDER_FOLDER if [ $CONSOLEOUT -eq 1 ]; then # OLD ok #lora_pkt_fwd -d /dev/ttyACM$ACM | grep --line-buffered -E CRC\|JSON\|ERROR\|rxpk\|mote\|WARNING\|dwnb\|PUSH_DATA\|forwarded\|started\|REJECTED\|rejecte | tee -a $LOGFOLDER/lora.log & lora_pkt_fwd -d /dev/ttyACM$ACM | grep --line-buffered -E CRC\|JSON\|ERROR\|rxpk\|mote\|WARNING\|dwnb\|PUSH_DATA\|forwarded\|started\|REJECTED\|rejecte\|Selected | tee -a $LOGFOLDER/lora.log & # for my branch exit 0 else echo "No console out. Logging to $LOGFOLDER/lora.log" lora_pkt_fwd -d /dev/ttyACM$ACM | grep --line-buffered -E CRC\|JSON\|ERROR\|rxpk\|mote\|WARNING\|dwnb\|PUSH_DATA\|forwarded\|started\|REJECTED\|rejecte\|Selected >> $LOGFOLDER/lora.log & # for my branch exit 0 fi else echo "We expect LoRa concentrator on ACM$ACM" ls -l /dev/ttyACM* echo "You can try as root modprobe -r cdc_acm; modprobe cdc_acm if the only cdc_acm device is the LoRa concentrator" exit 1 fi } checkforACM(){ if [ -e /dev/ttyACM$ACM ]; then return 0 else return 1 fi } # we don't run lora, run it if [ "$PIDLORAPKTFWD" == "" ]; then echo "No lora_pkt_fwd running" startLoRa fi # we don't run lora, run it if [ -v $PIDLORAPKTFWD ]; then echo "No lora_pkt_fwd running #2" startLoRa fi # we run lora, close it if [ $PIDLORAPKTFWD -gt 0 ]; then echo "We kill lora_pkt_fwd" startLoRa fi exit