From 20b8c4b6270aa17ff2f35dfeebc9f46ac3a218c1 Mon Sep 17 00:00:00 2001 From: Pascal Date: Tue, 2 Feb 2021 16:01:10 +0100 Subject: [PATCH] reduced redundancy --- receive.sh => receive_noaa.sh | 0 schedule.sh | 4 ++-- schedule_meteor.sh | 44 ----------------------------------- schedule_sat.sh | 17 +++++++++++--- 4 files changed, 16 insertions(+), 49 deletions(-) rename receive.sh => receive_noaa.sh (100%) delete mode 100755 schedule_meteor.sh diff --git a/receive.sh b/receive_noaa.sh similarity index 100% rename from receive.sh rename to receive_noaa.sh diff --git a/schedule.sh b/schedule.sh index 6291e2e..5b573ba 100755 --- a/schedule.sh +++ b/schedule.sh @@ -30,8 +30,8 @@ for i in $(atq | awk '{print $1}');do atrm "$i";done if [ "$SCHEDULE_ISS" == "true" ]; then "${NOAA_HOME}"/schedule_iss.sh "ISS (ZARYA)" 145.8000 fi -"${NOAA_HOME}"/schedule_meteor.sh "METEOR-M 2" 137.1000 -#"${NOAA_HOME}"/schedule_meteor.sh "METEOR-M2 2" 137.9000 #Meteor M2-2 will never send LRPT again :( +"${NOAA_HOME}"/schedule_sat.sh "METEOR-M 2" 137.1000 +#"${NOAA_HOME}"/schedule_sat.sh "METEOR-M2 2" 137.9000 #Meteor M2-2 will never send LRPT again :( "${NOAA_HOME}"/schedule_sat.sh "NOAA 19" 137.1000 "${NOAA_HOME}"/schedule_sat.sh "NOAA 18" 137.9125 "${NOAA_HOME}"/schedule_sat.sh "NOAA 15" 137.6200 diff --git a/schedule_meteor.sh b/schedule_meteor.sh deleted file mode 100755 index 31c8e22..0000000 --- a/schedule_meteor.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -### Run as a normal user -if [ $EUID -eq 0 ]; then - echo "This script shouldn't be run as root." - exit 1 -fi - -## import common lib -. "$HOME/.noaa.conf" -. "$NOAA_HOME/common.sh" - -PREDICTION_START=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | head -1) -PREDICTION_END=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | tail -1) - -var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1) - -MAXELEV=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}') - -log "Looking for passes of $1" INFO - -while [ "$(date --date="@${var2}" +%D)" = "$(date +%D)" ]; do - log "Pass prediction for $1 in progress" "INFO" - START_TIME=$(echo "$PREDICTION_START" | cut -d " " -f 3-4) - var1=$(echo "$PREDICTION_START" | cut -d " " -f 1) - var3=$(echo "$START_TIME" | cut -d " " -f 2 | cut -d ":" -f 3) - TIMER=$(expr "${var2}" - "${var1}" + "${var3}") - OUTDATE=$(date --date="TZ=\"UTC\" ${START_TIME}" +%Y%m%d-%H%M%S) - - if [ "${MAXELEV}" -gt "${METEOR_MIN_ELEV}" ]; then - log "Pass at ${MAXELEV} is above ${METEOR_MIN_ELEV}, that is OK for me" "INFO" - SATNAME=$(echo "$1" | sed "s/ //g") - echo "${SATNAME}" "${OUTDATE}" "$MAXELEV" - echo "${NOAA_HOME}/receive_meteor.sh \"${1}\" $2 ${SATNAME}${OUTDATE} "${NOAA_HOME}"/predict/weather.tle \ -${var1} ${TIMER} ${MAXELEV}" | at "$(date --date="TZ=\"UTC\" ${START_TIME}" +"%H:%M %D")" - sqlite3 $HOME/raspberry-noaa/panel.db "insert or replace into predict_passes (sat_name,pass_start,pass_end,max_elev,is_active) values (\"$SATNAME\",$var1,$var2,$MAXELEV,1);" - fi - NEXTPREDICT=$(expr "${var2}" + 60) - PREDICTION_START=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" "${NEXTPREDICT}" | head -1) - PREDICTION_END=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" "${NEXTPREDICT}" | tail -1) - MAXELEV=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" "${NEXTPREDICT}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}') - var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1) -done - diff --git a/schedule_sat.sh b/schedule_sat.sh index 4d32e37..07dc4d0 100755 --- a/schedule_sat.sh +++ b/schedule_sat.sh @@ -18,15 +18,26 @@ fi # $6 = Time to capture # $7 = Satellite max elevation +if [[ "$1" == *"NOAA"* ]]; then + receive_script="receive_noaa.sh" +elif [[ "$1" == *"METEOR"* ]]; then + receive_script="receive_meteor.sh" +else + log "No recognized receive skript for satellite $1!" ERROR + return -1 +fi + +log "Looking for passes of $1" INFO + PREDICTION_START=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | head -1) PREDICTION_END=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | tail -1) +[ -z "$PREDICTION_START" ] && log "predict did not return any values!" ERROR + var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1) MAXELEV=$(predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}') -log "Looking for passes of $1" INFO - while [ "$(date --date="@${var2}" +%D)" = "$(date +%D)" ]; do START_TIME=$(echo "$PREDICTION_START" | cut -d " " -f 3-4) var1=$(echo "$PREDICTION_START" | cut -d " " -f 1) @@ -37,7 +48,7 @@ while [ "$(date --date="@${var2}" +%D)" = "$(date +%D)" ]; do if [ "${MAXELEV}" -gt "${SAT_MIN_ELEV}" ]; then SATNAME=$(echo "$1" | sed "s/ //g") echo "${SATNAME}" "${OUTDATE}" "$MAXELEV" - echo "${NOAA_HOME}/receive.sh \"${1}\" $2 ${SATNAME}-${OUTDATE} "${NOAA_HOME}"/predict/weather.tle \ + echo "${NOAA_HOME}/${receive_script}.sh \"${1}\" $2 ${SATNAME}-${OUTDATE} "${NOAA_HOME}"/predict/weather.tle \ ${var1} ${TIMER} ${MAXELEV}" | at "$(date --date="TZ=\"UTC\" ${START_TIME}" +"%H:%M %D")" sqlite3 $HOME/raspberry-noaa/panel.db "insert or replace into predict_passes (sat_name,pass_start,pass_end,max_elev,is_active) values (\"$SATNAME\",$var1,$var2,$MAXELEV, 1);" else