#!/bin/sh /etc/rc.common # Copyright (C) 2014-2016 OpenWrt.org START=90 STOP=10 USE_PROCD=1 append_arg() { local cfg="$1" local var="$2" local opt="$3" local def="$4" local val config_get val "$cfg" "$var" if [ -n "$val" ] || [ -n "$def" ]; then procd_append_param command "$opt" "${val:-$def}" fi } append_bool() { local cfg="$1" local var="$2" local opt="$3" local def="$4" local val config_get_bool val "$cfg" "$var" "$def" [ "$val" = 1 ] && procd_append_param command "$opt" } start_instance() { local cfg="$1" local aux config_get_bool aux "$cfg" 'disabled' '0' [ "$aux" = 1 ] && return 1 procd_open_instance procd_set_param command /usr/bin/dump1090 procd_append_param command "--quiet" append_arg "$cfg" device_index "--device-index" append_arg "$cfg" gain "--gain" append_bool "$cfg" enable_agc "--enable-agc" append_arg "$cfg" freq "--freq" append_arg "$cfg" ifile "--ifile" append_arg "$cfg" iformat "--iformat" append_bool "$cfg" throttle "--throttle" append_bool "$cfg" raw "--raw" append_bool "$cfg" net "--net" append_bool "$cfg" modeac "--modeac" append_bool "$cfg" net_only "--net-only" append_arg "$cfg" net_bind_address "--net-bind-address" append_arg "$cfg" net_ri_port "--net-ri-port" append_arg "$cfg" net_ro_port "--net-ro-port" append_arg "$cfg" net_sbs_port "--net-sbs-port" append_arg "$cfg" net_bi_port "--net-bi-port" append_arg "$cfg" net_bo_port "--net-bo-port" append_arg "$cfg" net_ro_size "--net-ro-size" append_arg "$cfg" net_ro_interval "--net-ro-interval" append_arg "$cfg" net_heartbeat "--net-heartbeat" append_arg "$cfg" net_buffer "--net-buffer" append_bool "$cfg" net_verbatim "--net-verbatim" append_bool "$cfg" forward_mlat "--forward-mlat" append_arg "$cfg" lat "--lat" append_arg "$cfg" lon "--lon" append_arg "$cfg" max_range "--max-range" append_bool "$cfg" fix "--fix" append_bool "$cfg" no_fix "--no-fix" append_bool "$cfg" no_crc_check "--no-crc-check" append_bool "$cfg" phase_enhance "--phase-enhance" append_bool "$cfg" mlat "--mlat" append_bool "$cfg" stats "--stats" append_bool "$cfg" stats_range "--stats-range" append_arg "$cfg" stats_every "--stats-every" append_bool "$cfg" onlyaddr "--onlyaddr" append_bool "$cfg" metric "--metric" append_bool "$cfg" gnss "--gnss" append_arg "$cfg" snip "--snip" append_arg "$cfg" debug "--debug" append_arg "$cfg" ppm "--ppm" append_arg "$cfg" html_dir "--html-dir" append_arg "$cfg" write_json "--write-json" config_get aux "$cfg" "write_json" [ -n "$aux" ] && mkdir -p "$aux" append_arg "$cfg" write_json_every "--write-json-every" append_arg "$cfg" json_location_accuracy "--json-location-accuracy" append_bool "$cfg" oversample "--oversample" append_bool "$cfg" dcfilter "--dcfilter" append_bool "$cfg" measure_noise "--measure-noise" config_get_bool aux "$cfg" 'respawn' '0' [ "$aux" = 1 ] && procd_set_param respawn procd_close_instance } service_triggers() { procd_add_reload_trigger "dump1090" } start_service() { config_load dump1090 config_foreach start_instance dump1090 }