From 7aa5e913df00d0a49212d71ec97f9ac3246c9693 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 24 Apr 2020 14:58:08 -0400 Subject: [PATCH 01/16] use pclose(popen()) for cw ID to prevent callsign cutoff --- afsk/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 24aead7e..9db7f7c1 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -509,9 +509,9 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 digitalWrite (txLed, txLedOn); //printf("Before 1st strcpy\n"); //printf("CW String: %s\n", cw_str); - popen(cw_str,"r"); + pclose(popen(cw_str,"r")); // execute command and wait for termination before continuing //printf("Before 1st strcpy\n"); - sleep(6); +// sleep(7); //printf("Before Write\n"); digitalWrite (txLed, txLedOn); //printf("After Write\n"); From 9e1e7212cb087c1861f453b1c8e7ed46b17872f5 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 11:15:56 -0400 Subject: [PATCH 02/16] Update main.c --- afsk/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 9db7f7c1..d4616a7c 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -508,10 +508,10 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 //printf("Before 1st strcpy\n"); digitalWrite (txLed, txLedOn); //printf("Before 1st strcpy\n"); -//printf("CW String: %s\n", cw_str); +printf("CW String: %s\n", cw_str); pclose(popen(cw_str,"r")); // execute command and wait for termination before continuing -//printf("Before 1st strcpy\n"); -// sleep(7); +printf("After command\n"); + sleep(7); //printf("Before Write\n"); digitalWrite (txLed, txLedOn); //printf("After Write\n"); From dd9be0c18db2adc01f43587cb9ba7da20e63654c Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 11:22:03 -0400 Subject: [PATCH 03/16] Update main.c --- afsk/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index d4616a7c..e25d9d42 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -509,7 +509,9 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 digitalWrite (txLed, txLedOn); //printf("Before 1st strcpy\n"); printf("CW String: %s\n", cw_str); - pclose(popen(cw_str,"r")); // execute command and wait for termination before continuing + *FILE f = popen(cw_str,"r"); + printf("File %d \n", f); + pclose(f); // execute command and wait for termination before continuing printf("After command\n"); sleep(7); //printf("Before Write\n"); From d740684bd7d3532f6878dbcc265ae6cda08e4105 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 11:25:13 -0400 Subject: [PATCH 04/16] Update main.c --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index e25d9d42..33839419 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -511,7 +511,7 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 printf("CW String: %s\n", cw_str); *FILE f = popen(cw_str,"r"); printf("File %d \n", f); - pclose(f); // execute command and wait for termination before continuing + printf("close: %d \n", pclose(f)); // execute command and wait for termination before continuing printf("After command\n"); sleep(7); //printf("Before Write\n"); From fc4b05672e352480e989854d05ac762ede9e137a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 11:27:11 -0400 Subject: [PATCH 05/16] Update main.c --- afsk/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 33839419..e2bcfed8 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -509,7 +509,8 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 digitalWrite (txLed, txLedOn); //printf("Before 1st strcpy\n"); printf("CW String: %s\n", cw_str); - *FILE f = popen(cw_str,"r"); + *FILE f; + f = popen(cw_str,"r"); printf("File %d \n", f); printf("close: %d \n", pclose(f)); // execute command and wait for termination before continuing printf("After command\n"); From 9bc1a25690f36c2e1349758c35e0831716ae0a03 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 11:28:24 -0400 Subject: [PATCH 06/16] Update main.c --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index e2bcfed8..975578e9 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -509,7 +509,7 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 digitalWrite (txLed, txLedOn); //printf("Before 1st strcpy\n"); printf("CW String: %s\n", cw_str); - *FILE f; + FILE* f; f = popen(cw_str,"r"); printf("File %d \n", f); printf("close: %d \n", pclose(f)); // execute command and wait for termination before continuing From d47c71411522aaa793544a3aad7b9fbe88c040f6 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 11:37:10 -0400 Subject: [PATCH 07/16] Update main.c --- afsk/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 975578e9..aa2f86ee 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -509,10 +509,10 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 digitalWrite (txLed, txLedOn); //printf("Before 1st strcpy\n"); printf("CW String: %s\n", cw_str); - FILE* f; - f = popen(cw_str,"r"); - printf("File %d \n", f); - printf("close: %d \n", pclose(f)); // execute command and wait for termination before continuing +// FILE* f; + system(cw_str); +// printf("File %d \n", f); +// printf("close: %d \n", pclose(f)); // execute command and wait for termination before continuing printf("After command\n"); sleep(7); //printf("Before Write\n"); From f10a583f5ec21bb176a4f92563197140f11f3e57 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 11:39:56 -0400 Subject: [PATCH 08/16] Update main.c --- afsk/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index aa2f86ee..e89c7ff6 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -507,14 +507,14 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 strcat(cw_str, cw_footer); //printf("Before 1st strcpy\n"); digitalWrite (txLed, txLedOn); -//printf("Before 1st strcpy\n"); -printf("CW String: %s\n", cw_str); +printf("Before cmd\n"); +//printf("CW String: %s\n", cw_str); // FILE* f; system(cw_str); // printf("File %d \n", f); // printf("close: %d \n", pclose(f)); // execute command and wait for termination before continuing printf("After command\n"); - sleep(7); +// sleep(7); //printf("Before Write\n"); digitalWrite (txLed, txLedOn); //printf("After Write\n"); From cb180699febe1388965c433ac6efcc59f38cae84 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 27 Apr 2020 14:13:23 -0400 Subject: [PATCH 09/16] Update main.c --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index e89c7ff6..f946eaae 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -498,7 +498,7 @@ if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3 { char cw_str[200]; char cw_header[] = "echo 'de "; - char cw_footer[] = "' > id.txt && gen_packets -M 20 id.txt -o morse.wav -r 48000 && cat morse.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.897e3"; + char cw_footer[] = "' > id.txt && gen_packets -M 20 id.txt -o morse.wav -r 48000 > /dev/null 2>&1 && cat morse.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.897e3"; strcpy(cw_str, cw_header); //printf("Before 1st strcpy\n"); From ef70bc262d9ab536db5fdbbb808f2aba9ba878a1 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Fri, 1 May 2020 13:49:15 -0400 Subject: [PATCH 10/16] added transmit variable only set if BPF is detected --- afsk/main.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index f946eaae..c2ae4664 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -122,7 +122,7 @@ int bitRate, mode, bufLen, rsFrames, payloads, rsFrameLen, dataLen, headerLen, s float sleepTime; int sampleTime = 0; int cycle = OFF, cw_id = ON; -int vB4 = FALSE, vB5 = FALSE, ax5043 = FALSE, onLed, onLedOn, onLedOff, txLed, txLedOn, txLedOff, payload = OFF; +int vB4 = FALSE, vB5 = FALSE, ax5043 = FALSE, transmit = FALSE, onLed, onLedOn, onLedOff, txLed, txLedOn, txLedOff, payload = OFF; float batteryThreshold = 0; struct SensorConfig { @@ -329,6 +329,7 @@ int main(int argc, char *argv[]) { mode = AFSK; cycle = OFF; printf("Mode AFSK with AX5043\n"); + transmit = TRUE; } else printf("AX5043 not present!\n"); @@ -356,6 +357,7 @@ int main(int argc, char *argv[]) { onLed = 0; onLedOn = LOW; onLedOff = HIGH; + transmit = TRUE; } else { pinMode (3, INPUT); @@ -372,6 +374,7 @@ int main(int argc, char *argv[]) { onLedOn = HIGH; onLedOff = LOW; batteryThreshold = 3.0; + transmit = TRUE; } else { @@ -389,7 +392,8 @@ int main(int argc, char *argv[]) { onLedOn = HIGH; onLedOff = LOW; batteryThreshold = 3.0; - } + transmit = TRUE; + } } } } @@ -492,6 +496,12 @@ else tx_freq_hz -= tx_channel * 50000; + if (transmit == FALSE) + { + fprintf(stderr,"No CubeSatSim Band Pass Filter detected. No transmissions after the CW ID.\n"); + fprintf(stderr, " See http://cubesatsim.org/wiki for info about building a CubeSatSim\n\n"); + } + // Send ID in CW (Morse Code) if (cw_id == ON) // Don't send CW if using AX5043 or in mode cycling or set by 3rd argument @@ -796,8 +806,11 @@ for (int j = 0; j < frameCnt; j++) strcat(str, call); strcat(str,footer_str); fprintf(stderr, "String to execute: %s\n", str); - FILE* file2 = popen(str, "r"); - pclose(file2); + if (transmit) + { + FILE* file2 = popen(str, "r"); + pclose(file2); + } digitalWrite (txLed, txLedOff); sleep(3); digitalWrite (txLed, txLedOn); @@ -1198,6 +1211,7 @@ if (firstTime != ON) char cmdbuffer[1000]; FILE* transmit; if ((rpitxStatus != mode)) // || (mode == BPSK)) + { // change rpitx mode rpitxStatus = mode; printf("Changing rpitx mode!\n"); @@ -1216,17 +1230,20 @@ if (firstTime != ON) // printf("3\n"); sleep(1); // digitalWrite (txLed, txLedOff); - - if (mode == FSK) { + + if (transmit) + { + if (mode == FSK) { // transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.896e3&", "r"); transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.897e3&", "r"); // printf("4\n"); - } else if (mode == BPSK) { + } else if (mode == BPSK) { // transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/CubeSatSim/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.8925e6 -t float 2>&1&", "r"); transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.8945e6 -t float 2>&1&", "r"); - } + } // fgets(cmdbuffer, 1000, transmit); - pclose(transmit); + pclose(transmit); + } sleep(2); // printf("Results of transmit command: %s\n", cmdbuffer); } From 9dbdfa6aa3f3d823ecfb00696088d21580c1e85f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 16:01:59 -0400 Subject: [PATCH 11/16] fixed transmit variable conflict --- afsk/main.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index c2ae4664..9e24ae02 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -621,9 +621,9 @@ while (loop-- != 0) printf("Done sleeping\n"); } // int transmit = popen("timeout 1 sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.897e3","r"); - int transmit = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); - transmit = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); - transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); + int txResult = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); + txResult = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); + txResult = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); if(cw_id == ON) // only turn off Power LED if CW ID is enabled (i.e. not demo.sh mode cycling) digitalWrite (onLed, onLedOff); @@ -672,7 +672,7 @@ static int init_rf() { int get_tlm(void) { - FILE* transmit; + FILE* txResult; for (int j = 0; j < frameCnt; j++) { @@ -1209,22 +1209,22 @@ if (firstTime != ON) // rpitx char cmdbuffer[1000]; - FILE* transmit; + FILE* txResult; if ((rpitxStatus != mode)) // || (mode == BPSK)) { // change rpitx mode rpitxStatus = mode; printf("Changing rpitx mode!\n"); -// transmit = popen("ps -ef | grep rpitx | grep -v grep | awk '{print $2}' | sudo xargs kill -9 > /dev/null 2>&1", "r"); - transmit = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); +// txResult = popen("ps -ef | grep rpitx | grep -v grep | awk '{print $2}' | sudo xargs kill -9 > /dev/null 2>&1", "r"); + txResult = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); // printf("1\n"); // sleep(1); -// transmit = popen("ps -ef | grep sendiq | grep -v grep | awk '{print $2}' | sudo xargs kill -9 > /dev/null 2>&1", "r"); - transmit = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); +// txResult = popen("ps -ef | grep sendiq | grep -v grep | awk '{print $2}' | sudo xargs kill -9 > /dev/null 2>&1", "r"); + txResult = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); // printf("2\n"); // digitalWrite (txLed, txLedOn); sleep(1); - transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); + txResult = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; // printf("3\n"); @@ -1234,15 +1234,15 @@ if (firstTime != ON) if (transmit) { if (mode == FSK) { - // transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.896e3&", "r"); - transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.897e3&", "r"); + // txResult = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.896e3&", "r"); + txResult = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.897e3&", "r"); // printf("4\n"); } else if (mode == BPSK) { -// transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/CubeSatSim/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.8925e6 -t float 2>&1&", "r"); - transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.8945e6 -t float 2>&1&", "r"); +// txResult = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/CubeSatSim/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.8925e6 -t float 2>&1&", "r"); + txResult = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.8945e6 -t float 2>&1&", "r"); } -// fgets(cmdbuffer, 1000, transmit); - pclose(transmit); +// fgets(cmdbuffer, 1000, txResult); + pclose(txResult); } sleep(2); // printf("Results of transmit command: %s\n", cmdbuffer); From 36776434789d7cfcf25b7790301fb97ca3cc0949 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 16:05:46 -0400 Subject: [PATCH 12/16] only open socket if transmitting --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 9e24ae02..95c96089 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1250,7 +1250,7 @@ if (firstTime != ON) // socket write - if (!socket_open) + if (!socket_open && transmit) { printf("Opening socket!\n"); struct sockaddr_in address; From 2fa06de1ce0e3b62a4884767db62af02e2bf8d7b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 16:12:43 -0400 Subject: [PATCH 13/16] only send over socket if transmitting --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 95c96089..6b87fb58 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1288,7 +1288,7 @@ if (firstTime != ON) socket_open = 1; } - if (!error) + if (!error && transmit) { // digitalWrite (0, LOW); printf("Sending %d buffer bytes over socket after %d ms!\n", ctr, millis()-start); From e294211eeea9af54d0faf9a351c6b46479d93418 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 16:24:12 -0400 Subject: [PATCH 14/16] added no transmit warning --- afsk/main.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 6b87fb58..70ee13b2 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -811,6 +811,11 @@ for (int j = 0; j < frameCnt; j++) FILE* file2 = popen(str, "r"); pclose(file2); } + else + { + fprintf(stderr,"\nNo CubeSatSim Band Pass Filter detected. No transmissions after the CW ID.\n"); + fprintf(stderr, " See http://cubesatsim.org/wiki for info about building a CubeSatSim\n\n"); + } digitalWrite (txLed, txLedOff); sleep(3); digitalWrite (txLed, txLedOn); @@ -1244,6 +1249,11 @@ if (firstTime != ON) // fgets(cmdbuffer, 1000, txResult); pclose(txResult); } + else + { + fprintf(stderr,"\nNo CubeSatSim Band Pass Filter detected. No transmissions after the CW ID.\n"); + fprintf(stderr, " See http://cubesatsim.org/wiki for info about building a CubeSatSim\n\n"); + } sleep(2); // printf("Results of transmit command: %s\n", cmdbuffer); } @@ -1384,7 +1394,7 @@ return 0; update_rs(parity,data[i]); transmit_word(encode_8b10b(&state,data[i]); } - // Transmit the RS parities + // get the RS parities for(i=0;i<32;i++) transmit_word(encode_8b10b(&state,parity[i]); From 6d304885fbdd07ab22977e5735123ada4567e337 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 16:31:29 -0400 Subject: [PATCH 15/16] displaying no transmit each time --- afsk/main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/afsk/main.c b/afsk/main.c index 70ee13b2..6b93ef9f 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1320,6 +1320,11 @@ if (firstTime != ON) //rpitxStatus = -1; } } + if (!transmit) + { + fprintf(stderr,"\nNo CubeSatSim Band Pass Filter detected. No transmissions after the CW ID.\n"); + fprintf(stderr, " See http://cubesatsim.org/wiki for info about building a CubeSatSim\n\n"); + } // digitalWrite (0, HIGH); firstTime = 0; From 5e170d6f64ba9ab559e262375324df4cfae05110 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 2 May 2020 16:36:07 -0400 Subject: [PATCH 16/16] Update main.c --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 6b93ef9f..351eecce 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -498,7 +498,7 @@ else if (transmit == FALSE) { - fprintf(stderr,"No CubeSatSim Band Pass Filter detected. No transmissions after the CW ID.\n"); + fprintf(stderr,"\nNo CubeSatSim Band Pass Filter detected. No transmissions after the CW ID.\n"); fprintf(stderr, " See http://cubesatsim.org/wiki for info about building a CubeSatSim\n\n"); }