mirror of
https://github.com/sdr-enthusiasts/docker-adsb-ultrafeeder.git
synced 2024-11-22 05:40:10 +00:00
more tweaks to autogain
This commit is contained in:
parent
7c7ef67e0a
commit
2da3f57d5f
3 changed files with 10 additions and 8 deletions
|
@ -169,8 +169,8 @@ If you have set `READSB_GAIN=autogain`, then the system will take signal strengt
|
||||||
|
|
||||||
There are 2 distinct periods in which the container will attempt to figure out the gain:
|
There are 2 distinct periods in which the container will attempt to figure out the gain:
|
||||||
|
|
||||||
* The initial period of 90 minutes, in which a measurement is taken every 5 minutes
|
* The initial period of 2 hours, in which an adjustment is done every 5 minutes
|
||||||
* The subsequent period, in which a measurement is taken once every day
|
* The subsequent period, in which an adjustment is done once every day
|
||||||
|
|
||||||
Please note that in order for the initial period to complete, the container must run for 90 minutes without restarting.
|
Please note that in order for the initial period to complete, the container must run for 90 minutes without restarting.
|
||||||
|
|
||||||
|
@ -182,10 +182,11 @@ Although not recommended, you can change the measurement intervals and low/high
|
||||||
|
|
||||||
| Environment Variable | Purpose | Default |
|
| Environment Variable | Purpose | Default |
|
||||||
|----------------------|---------|---------|
|
|----------------------|---------|---------|
|
||||||
|
| `READSB_AUTOGAIN_INITIAL_TIMEPERIOD` | How long the Initial Time Period should last (in seconds) | `7200` |
|
||||||
| `READSB_AUTOGAIN_INITIAL_INTERVAL` | The measurement interval to optimize gain during the initial period of 90 minutes (in seconds) | `300` |
|
| `READSB_AUTOGAIN_INITIAL_INTERVAL` | The measurement interval to optimize gain during the initial period of 90 minutes (in seconds) | `300` |
|
||||||
| `READSB_AUTOGAIN_SUBSEQUENT_INTERVAL` | The measurement interval to optimize gain during the subsequent period (in seconds) | `86400` |
|
| `READSB_AUTOGAIN_SUBSEQUENT_INTERVAL` | The measurement interval to optimize gain during the subsequent period (in seconds) | `86400` |
|
||||||
| `READSB_AUTOGAIN_LOW_PCT` | If the percentage of "strong signals" (stronger than 3dBFS RSSI) is below this number, gain will be increased | `0.5` |
|
| `READSB_AUTOGAIN_LOW_PCT` | If the percentage of "strong signals" (stronger than 3dBFS RSSI) is below this number, gain will be increased | `2.5` |
|
||||||
| `READSB_AUTOGAIN_HIGH_PCT` | If the percentage of "strong signals" (stronger than 3dBFS RSSI) is above this number, gain will be decreased | `7.0` |
|
| `READSB_AUTOGAIN_HIGH_PCT` | If the percentage of "strong signals" (stronger than 3dBFS RSSI) is above this number, gain will be decreased | `6.0` |
|
||||||
|
|
||||||
If you need to reset AutoGain and start over determining the gain, you can do so with this command:
|
If you need to reset AutoGain and start over determining the gain, you can do so with this command:
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
READSB_AUTOGAIN_INITIAL_INTERVAL="${READSB_AUTOGAIN_INITIAL_INTERVAL:-300}"
|
READSB_AUTOGAIN_INITIAL_INTERVAL="${READSB_AUTOGAIN_INITIAL_INTERVAL:-300}"
|
||||||
READSB_AUTOGAIN_SUBSEQUENT_INTERVAL="${READSB_AUTOGAIN_SUBSEQUENT_INTERVAL:-86400}"
|
READSB_AUTOGAIN_SUBSEQUENT_INTERVAL="${READSB_AUTOGAIN_SUBSEQUENT_INTERVAL:-86400}"
|
||||||
|
READSB_AUTOGAIN_INITIAL_TIMEPERIOD="${READSB_AUTOGAIN_INITIAL_TIMEPERIOD:-7200}"
|
||||||
|
|
||||||
if [[ "${READSB_GAIN,,}" != "autogain" ]]; then
|
if [[ "${READSB_GAIN,,}" != "autogain" ]]; then
|
||||||
# Autogain is not enabled, so let's do nothing forever
|
# Autogain is not enabled, so let's do nothing forever
|
||||||
|
@ -26,8 +27,8 @@ mkdir -p /var/globe_history/autogain
|
||||||
|
|
||||||
# Do special things if it's the first time AUTOGAIN is running
|
# Do special things if it's the first time AUTOGAIN is running
|
||||||
if [[ ! -f /var/globe_history/autogain/autogain_initialized ]]; then
|
if [[ ! -f /var/globe_history/autogain/autogain_initialized ]]; then
|
||||||
# run autogain every $READSB_AUTOGAIN_INITIAL_INTERVAL minutes for 90 minutes
|
# run autogain every $READSB_AUTOGAIN_INITIAL_INTERVAL secs (default 5 mins) for $READSB_AUTOGAIN_INITIAL_TIMEPERIOD secs (default 2 hours)
|
||||||
for (( i=0; i<$((5400/READSB_AUTOGAIN_INITIAL_INTERVAL)); i++ ))
|
for (( i=0; i<$(( READSB_AUTOGAIN_INITIAL_TIMEPERIOD / READSB_AUTOGAIN_INITIAL_INTERVAL )); i++ ))
|
||||||
do
|
do
|
||||||
sleep "$READSB_AUTOGAIN_INITIAL_INTERVAL" # sleep first to give readsb the opportunity to collect some initial data
|
sleep "$READSB_AUTOGAIN_INITIAL_INTERVAL" # sleep first to give readsb the opportunity to collect some initial data
|
||||||
/usr/local/bin/autogain1090 2>&1 | mawk -W Interactive '{print "[autogain] " $0}'
|
/usr/local/bin/autogain1090 2>&1 | mawk -W Interactive '{print "[autogain] " $0}'
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/usr/bin/with-contenv bash
|
#!/usr/bin/with-contenv bash
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
low="${READSB_AUTOGAIN_LOW_PCT:-0.5}"
|
low="${READSB_AUTOGAIN_LOW_PCT:-2.5}"
|
||||||
high="${READSB_AUTOGAIN_HIGH_PCT:-7.0}"
|
high="${READSB_AUTOGAIN_HIGH_PCT:-6.0}"
|
||||||
ga=(0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 -10)
|
ga=(0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 -10)
|
||||||
tmp=/var/globe_history/autogain
|
tmp=/var/globe_history/autogain
|
||||||
mkdir -p $tmp
|
mkdir -p $tmp
|
||||||
|
|
Loading…
Reference in a new issue