#!/bin/sh /etc/rc.common START=90 STOP=10 USE_PROCD=1 append_bool() { config_get_bool tbool "$1" "$2" v=$(echo "$2" | sed 's/_/-/g') [ -z "$tbool" ] && tbool="$3" [ "$tbool" -eq 1 ] && procd_append_param command "--${v}" } append_bool_no() { config_get_bool tbool "$1" "$2" v=$(echo "$2" | sed 's/_/-/g') [ -z "$tbool" ] && tbool="$3" [ "$tbool" -eq 0 ] && procd_append_param command "--no-${v}" [ "$tbool" -eq 1 ] && procd_append_param command "--${v}" } append_param() { config_get tparam "$1" "$2" name=$(echo "$2" | sed 's/_/-/g') [ -n "$tparam" ] && procd_append_param command "--${name}=${tparam}" } start_instance() { cfg=$1 config_get_bool enabled "$cfg" "enabled" 0 [ "$enabled" -eq 1 ] || return 0 procd_open_instance "$cfg" procd_set_param command /usr/bin/readsb procd_append_param command "--quiet" procd_set_param respawn procd_set_param stderr "1" procd_set_param stdout "1" append_bool "$cfg" beast_crc_off 0 append_bool "$cfg" beast_df045_on 0 append_bool "$cfg" beast_df1117_on 0 append_bool "$cfg" beast_fec_off 0 append_bool "$cfg" beast_mlat_off 0 append_bool "$cfg" beast_modeac 0 append_bool "$cfg" dcfilter 0 append_bool "$cfg" enable_agc 0 append_bool "$cfg" enable_biastee 0 append_bool "$cfg" forward_mlat 0 append_bool "$cfg" gnss 0 append_bool "$cfg" metric 0 append_bool "$cfg" mlat 0 append_bool "$cfg" modeac 0 append_bool "$cfg" net 1 append_bool "$cfg" net_only 0 append_bool "$cfg" net_verbatim 0 append_bool "$cfg" no_crc_check 0 append_bool "$cfg" no_modeac_auto 0 append_bool "$cfg" onlyaddr 0 append_bool "$cfg" stats 0 append_bool "$cfg" stats_range 0 append_bool_no "$cfg" fix 1 for param in \ beast_serial \ debug \ device \ device_type \ freq \ gain \ json_location_accuracy \ lat \ lon \ max_range \ net_beast_reduce_interval \ net_beast_reduce_out_port \ net_bi_port \ net_bind_address \ net_bo_port \ net_buffer \ ppm \ stats_every \ write_json \ write_json_every do append_param "$cfg" "$param" done config_get net_connector "$cfg" "net_connector" [ -z "$net_connector" ] || { for conn in $net_connector; do procd_append_param command --net-connector="$conn" done } procd_close_instance } start_service() { config_load readsb config_foreach start_instance readsb }