You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
2.3 KiB

  1. #!/bin/sh /etc/rc.common
  2. START=90
  3. STOP=10
  4. USE_PROCD=1
  5. append_bool() {
  6. config_get_bool tbool "$1" "$2"
  7. v=$(echo "$2" | sed 's/_/-/g')
  8. [ -z "$tbool" ] && tbool="$3"
  9. [ "$tbool" -eq 1 ] && procd_append_param command "--${v}"
  10. }
  11. append_bool_no() {
  12. config_get_bool tbool "$1" "$2"
  13. v=$(echo "$2" | sed 's/_/-/g')
  14. [ -z "$tbool" ] && tbool="$3"
  15. [ "$tbool" -eq 0 ] && procd_append_param command "--no-${v}"
  16. [ "$tbool" -eq 1 ] && procd_append_param command "--${v}"
  17. }
  18. append_param() {
  19. config_get tparam "$1" "$2"
  20. name=$(echo "$2" | sed 's/_/-/g')
  21. [ -n "$tparam" ] && procd_append_param command "--${name}=${tparam}"
  22. }
  23. start_instance() {
  24. cfg=$1
  25. config_get_bool enabled "$cfg" "enabled" 0
  26. [ "$enabled" -eq 1 ] || return 0
  27. procd_open_instance "$cfg"
  28. procd_set_param command /usr/bin/readsb
  29. procd_append_param command "--quiet"
  30. procd_set_param respawn
  31. procd_set_param stderr "1"
  32. procd_set_param stdout "1"
  33. append_bool "$cfg" beast_crc_off 0
  34. append_bool "$cfg" beast_df045_on 0
  35. append_bool "$cfg" beast_df1117_on 0
  36. append_bool "$cfg" beast_fec_off 0
  37. append_bool "$cfg" beast_mlat_off 0
  38. append_bool "$cfg" beast_modeac 0
  39. append_bool "$cfg" dcfilter 0
  40. append_bool "$cfg" enable_agc 0
  41. append_bool "$cfg" enable_biastee 0
  42. append_bool "$cfg" forward_mlat 0
  43. append_bool "$cfg" gnss 0
  44. append_bool "$cfg" metric 0
  45. append_bool "$cfg" mlat 0
  46. append_bool "$cfg" modeac 0
  47. append_bool "$cfg" net 1
  48. append_bool "$cfg" net_only 0
  49. append_bool "$cfg" net_verbatim 0
  50. append_bool "$cfg" no_crc_check 0
  51. append_bool "$cfg" no_modeac_auto 0
  52. append_bool "$cfg" onlyaddr 0
  53. append_bool "$cfg" stats 0
  54. append_bool "$cfg" stats_range 0
  55. append_bool_no "$cfg" fix 1
  56. for param in \
  57. beast_serial \
  58. debug \
  59. device \
  60. device_type \
  61. freq \
  62. gain \
  63. json_location_accuracy \
  64. lat \
  65. lon \
  66. max_range \
  67. net_beast_reduce_interval \
  68. net_beast_reduce_out_port \
  69. net_bi_port \
  70. net_bind_address \
  71. net_bo_port \
  72. net_buffer \
  73. ppm \
  74. stats_every \
  75. write_json \
  76. write_json_every
  77. do
  78. append_param "$cfg" "$param"
  79. done
  80. config_get net_connector "$cfg" "net_connector"
  81. [ -z "$net_connector" ] || {
  82. for conn in $net_connector; do
  83. procd_append_param command --net-connector="$conn"
  84. done
  85. }
  86. procd_close_instance
  87. }
  88. start_service() {
  89. config_load readsb
  90. config_foreach start_instance readsb
  91. }