From aa20bb82151322088af074fc37086de1f7af97f7 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Thu, 20 Feb 2020 15:33:14 -0500 Subject: [PATCH] added ax5043 transmit --- afsk/main.c | 69 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 24 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 1d9134f5..abd1b0d8 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -623,21 +623,25 @@ for (int j = 0; j < frameCnt; j++) printf("\n"); } #endif - + + char str[1000]; + char tlm_str[1000]; + if (ax5043) + { + char header_str[] = "\x03\xf0hi hi "; + strcpy(str, header_str); + } + else + { char header_str3[] = "echo '"; char header_str2[] = ">CQ:hi hi "; char footer_str1[] = "\' > t.txt && echo \'"; char footer_str[] = ">CQ:hi hi ' >> t.txt && gen_packets -o telem.wav t.txt -r 48000 > /dev/null 2>&1 && cat telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.897e3 > /dev/null 2>&1"; - -// printf("%s-1>%s-1:", (uint8_t *)src_addr, (uint8_t *)dest_addr); - - char str[1000]; - char tlm_str[1000]; - - strcpy(str, header_str3); - strcat(str, call); - strcat(str, header_str2); -// printf("%s-1>%s-1:hi hi ", (uint8_t *)src_addr, (uint8_t *)dest_addr); + strcpy(str, header_str3); + strcat(str, call); + strcat(str, header_str2); + } + int channel; for (channel = 1; channel < 7; channel++) { sprintf(tlm_str, "%d%d%d %d%d%d %d%d%d %d%d%d ", @@ -649,26 +653,43 @@ for (int j = 0; j < frameCnt; j++) strcat(str, tlm_str); } -// char cmdbuffer[1000]; + if (ax5043) + { + digitalWrite (0, LOW); + fprintf(stderr,"INFO: Transmitting X.25 packet\n"); + memcpy(data, str, strnlen(str, 256)); + ret = ax25_tx_frame(&hax25, &hax5043, data, strnlen(str, 256)); + if (ret) { + fprintf(stderr, + "ERROR: Failed to transmit AX.25 frame with error code %d\n", + ret); + exit(EXIT_FAILURE); + } + ax5043_wait_for_transmit(); + digitalWrite (0, HIGH); + + if (ret) { + fprintf(stderr, + "ERROR: Failed to transmit entire AX.25 frame with error code %d\n", + ret); + exit(EXIT_FAILURE); + } + } + else + { strcat(str, footer_str1); strcat(str, call); strcat(str,footer_str); fprintf(stderr, "String to execute: %s\n", str); FILE* file2 = popen(str, "r"); -// fgets(cmdbuffer, 999, file2); pclose(file2); -// printf("Response: %s\n", cmdbuffer); -// fprintf(stderr, "Response\n"); - -// if (j != frameCnt) // Don't sleep if the last packet - go straight to next mode -// { - digitalWrite (txLed, txLedOff); + digitalWrite (txLed, txLedOff); sleep(3); - digitalWrite (txLed, txLedOn); - // } else - // { - // digitalWrite (txLed, txLedOff); - // } + digitalWrite (txLed, txLedOn); + } + + digitalWrite (txLed, txLedOff); + } printf("End of get_tlm and rpitx =========================================================\n");