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.

schedule_iss.sh 1.8 KiB

4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. ### Run as a normal user
  3. if [ $EUID -eq 0 ]; then
  4. echo "This script shouldn't be run as root."
  5. exit 1
  6. fi
  7. ## import common lib
  8. . "$HOME/.noaa.conf"
  9. . "$NOAA_HOME/common.sh"
  10. PREDICTION_START=$(predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" | head -1)
  11. PREDICTION_END=$(predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" | tail -1)
  12. var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1)
  13. MAXELEV=$(predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}')
  14. while [ "$(date --date="@${var2}" +%D)" = "$(date +%D)" ]; do
  15. START_TIME=$(echo "$PREDICTION_START" | cut -d " " -f 3-4)
  16. var1=$(echo "$PREDICTION_START" | cut -d " " -f 1)
  17. var3=$(echo "$START_TIME" | cut -d " " -f 2 | cut -d ":" -f 3)
  18. TIMER=$(expr "${var2}" - "${var1}" + "${var3}")
  19. OUTDATE=$(date --date="TZ=\"UTC\" ${START_TIME}" +%Y%m%d-%H%M%S)
  20. if [ "${MAXELEV}" -gt "${SAT_MIN_ELEV}" ]
  21. then
  22. SATNAME=$(echo "$1" | sed "s/ //g")
  23. echo ${SATNAME} "${OUTDATE}" "$MAXELEV"
  24. echo "${NOAA_HOME}/receive_iss.sh \"${1}\" $2 ISS${OUTDATE} "${NOAA_HOME}"/predict/amateur.tle \
  25. ${var1} ${TIMER} ${MAXELEV}" | at "$(date --date="TZ=\"UTC\" ${START_TIME}" +"%H:%M %D")"
  26. 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);"
  27. fi
  28. NEXTPREDICT=$(expr "${var2}" + 60)
  29. PREDICTION_START=$(predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" "${NEXTPREDICT}" | head -1)
  30. PREDICTION_END=$(predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" "${NEXTPREDICT}" | tail -1)
  31. MAXELEV=$(predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" "${NEXTPREDICT}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}')
  32. var2=$(echo "${PREDICTION_END}" | cut -d " " -f 1)
  33. done