@ -25,59 +25,6 @@
int main ( int argc , char * argv [ ] ) {
FILE * command_file = fopen ( " /home/pi/CubeSatSim/command_control " , " r " ) ;
if ( command_file = = NULL ) {
fprintf ( stderr , " Command and control is OFF \n " ) ;
c2cStatus = 0 ;
} else {
command_file = fopen ( " /home/pi/CubeSatSim/command_control_direwolf " , " r " ) ;
if ( command_file = = NULL ) {
fprintf ( stderr , " Command and control Carrier (squelch) is ON \n " ) ;
c2cStatus = 1 ;
} else
fprintf ( stderr , " Command and control DTMF or APRS is ON \n " ) ;
c2cStatus = 2 ;
}
char resbuffer [ 1000 ] ;
// const char testStr[] = "cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^1000//' | grep '9000'";
const char testStr [ ] = " cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^1000//' " ;
FILE * file_test = sopen ( testStr ) ; // see if Pi Zero 2
fgets ( resbuffer , 1000 , file_test ) ;
fprintf ( stderr , " Pi test result: %s \n " , resbuffer ) ;
fclose ( file_test ) ;
FILE * uptime_file = fopen ( " /proc/uptime " , " r " ) ;
fscanf ( uptime_file , " %f " , & uptime_sec ) ;
printf ( " Uptime sec: %f \n " , uptime_sec ) ;
fclose ( uptime_file ) ;
fprintf ( stderr , " %x " , resbuffer [ 0 ] ) ;
fprintf ( stderr , " %x \n " , resbuffer [ 1 ] ) ;
if ( ( resbuffer [ 0 ] ! = ' 9 ' ) | | ( resbuffer [ 1 ] ! = ' 0 ' ) | | ( resbuffer [ 2 ] ! = ' 0 ' ) | | ( resbuffer [ 3 ] ! = ' 0 ' ) )
{
// voltageThreshold = 3.7;
fprintf ( stderr , " Pi Zero not detected (could be Pi Zero 2) \n " ) ;
pi_zero_2_offset = 500 ;
if ( uptime_sec < 30.0 ) {
FILE * rpitx_stop = popen ( " sudo systemctl start rpitx " , " r " ) ;
pclose ( rpitx_stop ) ;
fprintf ( stderr , " Sleep 5 sec " ) ;
sleep ( 5 ) ; // try sleep at start to help boot
}
}
else {
fprintf ( stderr , " Pi Zero detected \n " ) ;
if ( ( c2cStatus = = 0 ) | | ( c2cStatus = = 1 ) ) {
pi_zero_2_offset = 500 ;
}
if ( uptime_sec < 30.0 ) {
FILE * rpitx_stop = popen ( " sudo systemctl start rpitx " , " r " ) ;
pclose ( rpitx_stop ) ;
fprintf ( stderr , " Sleep 10 sec " ) ;
sleep ( 10 ) ;
}
}
printf ( " \n \n CubeSatSim v1.3.2 starting... \n \n " ) ;
wiringPiSetup ( ) ;
@ -133,6 +80,62 @@ int main(int argc, char * argv[]) {
fprintf ( stderr , " HAB mode is ON \n " ) ;
}
FILE * command_file = fopen ( " /home/pi/CubeSatSim/command_control " , " r " ) ;
if ( command_file = = NULL ) {
fprintf ( stderr , " Command and control is OFF \n " ) ;
c2cStatus = 0 ;
} else {
command_file = fopen ( " /home/pi/CubeSatSim/command_control_direwolf " , " r " ) ;
if ( command_file = = NULL ) {
fprintf ( stderr , " Command and control Carrier (squelch) is ON \n " ) ;
c2cStatus = 1 ;
} else {
fprintf ( stderr , " Command and control DTMF or APRS is ON \n " ) ;
c2cStatus = 2 ;
}
}
printf ( " c2cStatus: %d \n " , c2cStatus ) ;
char resbuffer [ 1000 ] ;
// const char testStr[] = "cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^1000//' | grep '9000'";
const char testStr [ ] = " cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^1000//' " ;
FILE * file_test = sopen ( testStr ) ; // see if Pi Zero 2
fgets ( resbuffer , 1000 , file_test ) ;
fprintf ( stderr , " Pi test result: %s \n " , resbuffer ) ;
fclose ( file_test ) ;
FILE * uptime_file = fopen ( " /proc/uptime " , " r " ) ;
fscanf ( uptime_file , " %f " , & uptime_sec ) ;
printf ( " Uptime sec: %f \n " , uptime_sec ) ;
fclose ( uptime_file ) ;
fprintf ( stderr , " %x " , resbuffer [ 0 ] ) ;
fprintf ( stderr , " %x \n " , resbuffer [ 1 ] ) ;
if ( ( resbuffer [ 0 ] ! = ' 9 ' ) | | ( resbuffer [ 1 ] ! = ' 0 ' ) | | ( resbuffer [ 2 ] ! = ' 0 ' ) | | ( resbuffer [ 3 ] ! = ' 0 ' ) )
{
// voltageThreshold = 3.7;
fprintf ( stderr , " Pi Zero not detected (could be Pi Zero 2) \n " ) ;
pi_zero_2_offset = 500 ;
if ( uptime_sec < 30.0 ) {
FILE * rpitx_stop = popen ( " sudo systemctl start rpitx " , " r " ) ;
pclose ( rpitx_stop ) ;
fprintf ( stderr , " Sleep 5 sec " ) ;
sleep ( 5 ) ; // try sleep at start to help boot
}
}
else {
fprintf ( stderr , " Pi Zero detected \n " ) ;
if ( ( c2cStatus = = 0 ) | | ( c2cStatus = = 1 ) ) {
pi_zero_2_offset = 500 ;
}
if ( uptime_sec < 30.0 ) {
FILE * rpitx_stop = popen ( " sudo systemctl start rpitx " , " r " ) ;
pclose ( rpitx_stop ) ;
fprintf ( stderr , " Sleep 10 sec " ) ;
sleep ( 10 ) ;
}
}
// FILE * rpitx_stop = popen("sudo systemctl stop rpitx", "r");
// FILE * rpitx_stop = popen("sudo systemctl restart rpitx", "r");
@ -1565,6 +1568,28 @@ void get_tlm_fox() {
( i2c_bus0 = = OFF ) * 16 + ( i2c_bus1 = = OFF ) * 32 + ( i2c_bus3 = = OFF ) * 64 + ( camera = = OFF ) * 128 + groundCommandCount * 256 ;
encodeA ( b , 51 + head_offset , status ) ;
FILE * command_file = fopen ( " /home/pi/CubeSatSim/command_control " , " r " ) ;
if ( command_file = = NULL ) {
if ( c2cStatus ! = 0 ) {
fprintf ( stderr , " Command and control is OFF \n " ) ;
c2cStatus = 0 ;
}
} else {
command_file = fopen ( " /home/pi/CubeSatSim/command_control_direwolf " , " r " ) ;
if ( command_file = = NULL ) {
if ( c2cStatus ! = 1 ) {
fprintf ( stderr , " Command and control Carrier (squelch) is ON \n " ) ;
c2cStatus = 1 ;
}
} else {
if ( c2cStatus ! = 2 ) {
fprintf ( stderr , " Command and control DTMF or APRS is ON \n " ) ;
c2cStatus = 2 ;
}
}
}
// printf("c2cStatus: %d \n", c2cStatus);
encodeB ( b , 52 + head_offset , rxAntennaDeployed + txAntennaDeployed * 2 + c2cStatus * 4 ) ;
if ( txAntennaDeployed = = 0 ) {