added to APRS telem

pull/101/head
alanbjohnston 5 years ago committed by GitHub
parent 3531bab3eb
commit 0fc7799748
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -494,13 +494,15 @@ int main(int argc, char * argv[]) {
} }
} }
if (payload == ON) { if (payload == ON) {
printf("\nPayload is present!\n"); printf("\nSTEM Payload is present!\n");
sleep(1.5); // delay to give payload time to get ready sleep(2); // delay to give payload time to get ready
}
else {
printf("\nSTEM Payload not present!\n -> Is STEM Payload programed and Serial1 set to 115200 baud?\n");
} }
else
printf("\nPayload not present!\n");
} else { } else {
fprintf(stderr, "Unable to open UART: %s\n", strerror(errno)); fprintf(stderr, "Unable to open UART: %s\n -> Did you configure /boot/config.txt and /boot/cmdline.txt?\n", strerror(errno));
} }
} }
@ -997,6 +999,41 @@ void get_tlm(void) {
if (payload == ON) { if (payload == ON) {
char c; char c;
unsigned int waitTime;
int i, end, trys = 0;
sensor_payload[0] = 0;
sensor_payload[1] = 0;
while (((sensor_payload[0] != 'O') || (sensor_payload[1] != 'K')) && (trys++ < 10)) {
i = 0;
serialPutchar(uart_fd, '?');
sleep(0.05); // added delay after ?
printf("%d Querying payload with ?\n", trys);
waitTime = millis() + 500;
end = FALSE;
// int retry = FALSE;
while ((millis() < waitTime) && !end) {
int chars = (char) serialDataAvail(uart_fd);
while ((chars > 0) && !end) {
// printf("Chars: %d\ ", chars);
chars--;
c = (char) serialGetchar(uart_fd);
// printf ("%c", c);
// fflush(stdout);
if (c != '\n') {
sensor_payload[i++] = c;
} else {
end = TRUE;
}
}
}
sensor_payload[i++] = ' ';
// sensor_payload[i++] = '\n';
sensor_payload[i] = '\0';
printf(" Response from STEM Payload board: %s\n", sensor_payload);
sleep(0.1); // added sleep between loops
}
/*
int charss = (char) serialDataAvail(uart_fd); int charss = (char) serialDataAvail(uart_fd);
if (charss != 0) if (charss != 0)
printf("Clearing buffer of %d chars \n", charss); printf("Clearing buffer of %d chars \n", charss);
@ -1025,8 +1062,8 @@ void get_tlm(void) {
} }
// sensor_payload[i++] = '\n'; // sensor_payload[i++] = '\n';
sensor_payload[i] = '\0'; sensor_payload[i] = '\0';
printf(" Payload string: %s\n", sensor_payload); printf(" Response from STEM Payload board: %s\n", sensor_payload);
*/
strcat(str, sensor_payload); // append to telemetry string for transmission strcat(str, sensor_payload); // append to telemetry string for transmission
} }
@ -1395,7 +1432,7 @@ void get_tlm_fox() {
sensor_payload[i++] = ' '; sensor_payload[i++] = ' ';
// sensor_payload[i++] = '\n'; // sensor_payload[i++] = '\n';
sensor_payload[i] = '\0'; sensor_payload[i] = '\0';
printf(" Payload string: %s\n", sensor_payload); printf(" Response from STEM Payload board: %s\n", sensor_payload);
sleep(0.1); // added sleep between loops sleep(0.1); // added sleep between loops
} }
if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) // only process if valid payload response if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) // only process if valid payload response
@ -1971,26 +2008,26 @@ void get_tlm_fox() {
// printf("Sending %d buffer bytes over socket after %d ms!\n", ctr, (long unsigned int)millis() - start); // printf("Sending %d buffer bytes over socket after %d ms!\n", ctr, (long unsigned int)millis() - start);
start = millis(); start = millis();
int sock_ret = send(sock, buffer, (unsigned int)(ctr * 2 + 2), 0); int sock_ret = send(sock, buffer, (unsigned int)(ctr * 2 + 2), 0);
printf("Millis6: %d Result of socket send: %d \n\n", (unsigned int)millis() - start, sock_ret); printf("socket send 1 %d ms bytes: %d \n\n", (unsigned int)millis() - start, sock_ret);
if (sock_ret < (ctr * 2 + 2)) { if (sock_ret < (ctr * 2 + 2)) {
// printf("Not resending\n"); // printf("Not resending\n");
sleep(0.5); sleep(0.5);
sock_ret = send(sock, &buffer[sock_ret], (unsigned int)(ctr * 2 + 2 - sock_ret), 0); sock_ret = send(sock, &buffer[sock_ret], (unsigned int)(ctr * 2 + 2 - sock_ret), 0);
printf("Millis7: %d Result of socket send: %d \n\n", millis() - start, sock_ret); printf("socket send 2 %d ms bytes: %d \n\n", millis() - start, sock_ret);
} }
if (mode == BPSK) if (mode == BPSK)
{ {
start = millis(); // send frame a second time start = millis(); // send frame a second time
sock_ret = send(sock, buffer, (unsigned int)(ctr * 2 + 2), 0); sock_ret = send(sock, buffer, (unsigned int)(ctr * 2 + 2), 0);
printf("Millis8: %d Result of socket send: %d \n\n", (unsigned int)millis() - start, sock_ret); printf("socket send 3 %d ms bytes: %d \n\n", (unsigned int)millis() - start, sock_ret);
if (sock_ret < (ctr * 2 + 2)) { if (sock_ret < (ctr * 2 + 2)) {
// printf("Not resending\n"); // printf("Not resending\n");
sleep(0.5); sleep(0.5);
sock_ret = send(sock, &buffer[sock_ret], (unsigned int)(ctr * 2 + 2 - sock_ret), 0); sock_ret = send(sock, &buffer[sock_ret], (unsigned int)(ctr * 2 + 2 - sock_ret), 0);
printf("Millis9: %d Result of socket send: %d \n\n", millis() - start, sock_ret); printf("socket send 4 %d ms bytes: %d \n\n", millis() - start, sock_ret);
} }
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.