From fb7e87529d0cc95ad007fdee42e5dbb1e0f27116 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 1 Mar 2026 16:42:56 -0500 Subject: [PATCH] Create pacsat-run.sh --- groundstation/pacsat-run.sh | 147 ++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 groundstation/pacsat-run.sh diff --git a/groundstation/pacsat-run.sh b/groundstation/pacsat-run.sh new file mode 100644 index 00000000..1bbe7dcb --- /dev/null +++ b/groundstation/pacsat-run.sh @@ -0,0 +1,147 @@ +#!/bin/bash +# script to run FoxTelem + +echo "Startup script to run the PacSat Ground Station for FIAB v4" + +echo + +source /home/pi/venv/bin/activate + +sudo killall -9 java &>/dev/null + +sudo killall -9 zenity &>/dev/null + +FILE=/home/pi/.pacsatprofile +if [ ! -f "$FILE" ]; then + + profile=$(zenity --text="Choose your default Pacsat profile:" --list 2>/dev/null --width=410 --height=120 --title="Set FoxTelem Profile" --column="Profile" --column="Receive and decode telemetry from" "PacSat" "AMSAT Satellites" "CubeSatSim" "AMSAT CubeSat Simulator" "Loopback" "Locally Simulated PacSat") + + echo $profile + + if [ -z "$profile" ]; then + + echo "No choice made. Exiting." + + sleep 3 + + exit + + #echo "You need to choose your default FoxTelem profile." + #echo + #echo "The choices are:" + #echo + #echo "1. Fox-in-a-Box. Use this profile if you want to receive and decode telemetry from the AMSAT Fox satellites. If you enter a callsign and a grid square, you can upload to the AMSAT telemetry server." + #echo + #echo "2. CubeSatSim Ground Station. Use this profile if you want to receive and decode telemetry from an AMSAT CubeSatSim or CubeSatSim Lite." + #echo + #echo "Which profile do you choose? Enter 1 or 2" + + #read -r ANS + + fi + + if [ "$ANS" = "1" ] || [ "$profile" = "PacSat" ] ; then + + echo "You have chosen the PacSat profile." + echo "p" > /home/pi/.pacsatprofile + echo + + sudo killall -9 java &>/dev/null + + sudo killall -9 gpredict &>/dev/null + + FILE=/home/pi/FoxTelemetryData/FoxTelem.properties.0 + if [ ! -f "$FILE" ]; then + cp /home/pi/FoxTelemetryData/FoxTelem.properties /home/pi/FoxTelemetryData/FoxTelem.properties.0 + fi + + python3 /home/pi/CubeSatSim/groundstation/loc-foxtelem.py + + if [ $? -eq 1 ]; then + + echo "Enter your Groundstation Name. If you upload telemetry data to the AMSAT servers, this name will be displayed on the FoxTelem leader board at https://amsat.org/tlm" + read name + + if [ -n "$name" ]; then + sudo sed -i "s/callsign=.*/callsign=$name/g" /home/pi/FoxTelemetryData/FoxTelem.properties + fi + + echo + + sudo sed -i "s/uploadToServer=false/uploadToServer=true/g" /home/pi/FoxTelemetryData/FoxTelem.properties + + sudo sed -i "s/foxTelemCalcsDoppler=false/foxTelemCalcsDoppler=true/g" /home/pi/FoxTelemetryData/FoxTelem.properties + + sudo sed -i "s/foxTelemCalcsPosition=false/foxTelemCalcsPosition=true/g" /home/pi/FoxTelemetryData/FoxTelem.properties + + sudo sed -i "s/uploadToServer=false/uploadToServer=true/g" /home/pi/FoxTelemetryData/FoxTelem.properties + + sudo sed -i "s/whenAboveHorizon=false/whenAboveHorizon=true/g" /home/pi/FoxTelemetryData/FoxTelem.properties + + sudo sed -i "s/retuneCenterFrequency=false/retuneCenterFrequency=true/g" /home/pi/FoxTelemetryData/FoxTelem.properties + + sudo sed -i "s/stationDetails=.*/stationDetails=FoxInABox/g" /home/pi/FoxTelemetryData/FoxTelem.properties + + # sudo sed -i "s/soundCard=NONE/soundCard=RTL SDR/g" /home/pi/FoxTelemetryData/FoxTelem.properties # change to FunCube + sudo sed -i "s/soundCard=NONE/soundCard=Direct Audio Device\: FUNcube Dongle V2.0, USB Audi/g" /home/pi/FoxTelemetryData/FoxTelem.properties # change to FunCube + + + + # echo "Enter your Maidenhead grid square. It is two letters followed by two numbers followed by two letters with no spaces. If you don't know your gridsquare, you can look it up here https://dxcluster.ha8tks.hu/hamgeocoding/" + # read grid + # sudo sed -i "s/maidenhead=XX00xx/maidenhead=$grid/g" /home/pi/Documents/FITB/FoxTelem.properties + # echo + + fi + + elif [ "$ANS" = "2" ] || [ "$profile" = "CubeSatSim" ] ; then + + echo "You have chosen the CubeSatSim PacSat Ground Station profile." + echo "c" > /home/pi/.pacsatprofile + + cp /home/pi/FoxTelemetryData-CubeSatSim/FoxTelem.properties /home/pi/FoxTelemetryData-CubeSatSim/FoxTelem.properties.0 + + sudo sed -i "s/useCostas=false/useCostas=true/g" /home/pi/FoxTelemetryData-CubeSatSim/FoxTelem.properties + + sudo sed -i "s/findSignal=false/findSignal=true/g" /home/pi/FoxTelemetryData-CubeSatSim/FoxTelem.properties + + elif [ "$ANS" = "3" ] || [ "$profile" = "Loopback" ] ; then + + echo "You have chosen the Loopback Simulated PacSat Ground Station profile." + echo "l" > /home/pi/.pacsatprofile + + else + + echo "Please enter only 1 or 2 or 3" + + fi + +fi + +value=`cat /home/pi/FoxTelemetryData/.foxprofile` +echo "$value" > /dev/null +set -- $value + +sudo killall -9 java &>/dev/null + +if [ "$1" = "c" ]; then + echo "CubeSatSim Ground Station profile is set!" + echo + /home/pi/CubeSatSim/groundstation/pacsat.sh +elif [ "$1" = "l" ]; then + echo "Loopback Ground Station profile is set!" + echo + /home/pi/CubeSatSim/groundstation/pacsat.sh l +else + echo "AMSAT profile is set!" + echo +# /home/pi/FoxTelem/FoxTelem /home/pi/FoxTelemetryData + cd /home/pi/Desktop/PacsatGround/ + + setsid java -Xmx512M -jar PacSatGround.jar "/home/pi/PacSatGround" # removed & + +fi + +sleep 10 + +#$SHELL