From 262a08983c0b75515b2cd0582f7b69a9ab33c7ab Mon Sep 17 00:00:00 2001 From: Nico Rey Date: Wed, 10 Apr 2019 17:05:26 -0300 Subject: [PATCH] Add support for ISS SSTV channel --- receive_iss.sh | 3 +++ schedule.sh | 3 +++ schedule_iss.sh | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 receive_iss.sh create mode 100644 schedule_iss.sh diff --git a/receive_iss.sh b/receive_iss.sh new file mode 100644 index 0000000..98d138f --- /dev/null +++ b/receive_iss.sh @@ -0,0 +1,3 @@ +#!/bin/sh +datetime=$(date +"%Y%m%d-%H%M%S") +timeout 660 /usr/local/bin/rtl_fm -M fm -f 145.8M -s 48k -g 50 -p 55 -E wav -E deemp -F 9 - | /usr/bin/sox -t raw -e signed -c 1 -b 16 -r 48000 - /usr/share/html/audio/iss-$datetime.wav rate 11025 diff --git a/schedule.sh b/schedule.sh index db2ce09..999a52d 100644 --- a/schedule.sh +++ b/schedule.sh @@ -6,9 +6,11 @@ . ~/.noaa.conf wget -qr https://www.celestrak.com/NORAD/elements/weather.txt -O "${NOAA_HOME}"/predict/weather.txt +wget -qr http://www.celestrak.com/NORAD/elements/amateur.txt -O "${NOAA_HOME}"/predict/amateur.txt grep "NOAA 15" "${NOAA_HOME}"/predict/weather.txt -A 2 > "${NOAA_HOME}"/predict/weather.tle grep "NOAA 18" "${NOAA_HOME}"/predict/weather.txt -A 2 >> "${NOAA_HOME}"/predict/weather.tle grep "NOAA 19" "${NOAA_HOME}"/predict/weather.txt -A 2 >> "${NOAA_HOME}"/predict/weather.tle +grep "ZARYA" "${NOAA_HOME}"/predict/amateur.txt -A 2 > "${NOAA_HOME}"/predict/amateur.tle #Remove all AT jobs for i in $(atq | awk '{print $1}');do atrm "$i";done @@ -17,3 +19,4 @@ for i in $(atq | awk '{print $1}');do atrm "$i";done "${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 +"${NOAA_HOME}"/schedule_iss.sh "ISS (ZARYA)" 145.8000 diff --git a/schedule_iss.sh b/schedule_iss.sh new file mode 100644 index 0000000..42d5e59 --- /dev/null +++ b/schedule_iss.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +## debug +# set -x + +. ~/.noaa.conf +SAT_MIN_ELEV=10 + +PREDICTION_START=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" | head -1) +PREDICTION_END=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" | tail -1) + + +var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1) +var21=`echo $PREDICTION_END | cut -d " " -f 1` + +MAXELEV=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}') + +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) + 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 "${SAT_MIN_ELEV}" ] + then + SATNAME=$(echo "$1" | sed "s/ //g") + echo ${SATNAME} "${OUTDATE}" "$MAXELEV" + echo "${NOAA_HOME}/receive_iss.sh \"${1}\" $2 ISS-${OUTDATE} "${NOAA_HOME}"/predict/amateur.tle \ +${var1} ${TIMER} ${MAXELEV}" | at "$(date --date="TZ=\"UTC\" ${START_TIME}" +"%H:%M %D")" + fi + NEXTPREDICT=$(expr "${var2}" + 60) + PREDICTION_START=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" "${NEXTPREDICT}" | head -1) + PREDICTION_END=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" "${NEXTPREDICT}" | tail -1) + MAXELEV=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/amateur.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