71 lines
1.3 KiB
Bash
Executable File
71 lines
1.3 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
START=99
|
|
STOP=10
|
|
|
|
USE_PROCD=1
|
|
|
|
PROG=/usr/sbin/lora_pkt_fwd
|
|
CONFIGFILE=/etc/global_conf.json
|
|
|
|
reset_sx1301_board ()
|
|
{
|
|
local pin=$1
|
|
|
|
logger "lora_pkt_fwd: Reset SX1301 with pin ${pin}"
|
|
|
|
if [ -d "/sys/class/gpio/gpio${pin}" ]
|
|
then
|
|
echo 1 > /dev/null
|
|
else
|
|
echo ${pin} > /sys/class/gpio/export
|
|
echo "out" > /sys/class/gpio/gpio${pin}/direction
|
|
fi
|
|
|
|
echo "1" > /sys/class/gpio/gpio${pin}/value
|
|
sleep 5
|
|
echo "0" > /sys/class/gpio/gpio${pin}/value
|
|
sleep 1
|
|
echo "0" > /sys/class/gpio/gpio${pin}/value
|
|
|
|
logger "lora_pkt_fwd: SX1301 reset completed"
|
|
}
|
|
|
|
generate_global_conf()
|
|
{
|
|
logger "lora_pkt_fwd: Generate ${CONFIGFILE}"
|
|
gen_lora_global_conf > ${CONFIGFILE}
|
|
}
|
|
|
|
start_service()
|
|
{
|
|
include /lib/functions
|
|
|
|
logger "lora_pkt_fwd: Start"
|
|
|
|
config_load lora_pkt_fwd
|
|
|
|
generate_global_conf
|
|
|
|
local reset_enable=$(uci get lora-global.SX1301_conf.enable_reset_pin)
|
|
|
|
if [ ${reset_enable} = 1 ]; then
|
|
reset_sx1301_board $(uci get lora-global.SX1301_conf.reset_pin)
|
|
fi
|
|
|
|
procd_open_instance
|
|
procd_set_param command $PROG
|
|
procd_set_param file ${CONFIGFILE}
|
|
procd_set_param file /etc/config/lora-global
|
|
procd_set_param respawn
|
|
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
stop_service() {
|
|
logger "lora_pkt_fwd: Stop"
|
|
killall lora_pkt_fwd
|
|
}
|