Try start process

pull/78/head
alanbjohnston 5 years ago committed by GitHub
parent 444ba6992d
commit a3e34d9ea5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -126,6 +126,7 @@ int nrd;
void write_to_buffer(int i, int symbol, int val);
void write_wave(int i, short int * buffer);
int uart_fd;
start_subprocess(char *const command[], int *pid, int *infd, int *outfd);
int reset_count;
float uptime_sec;
@ -343,12 +344,15 @@ int main(int argc, char * argv[]) {
strcat(pythonConfigStr, " c");
// FILE* file1 = popen("python3 /home/pi/CubeSatSim/python/voltcurrent.py 1 11 c", "r");
FILE * file1 = popen(pythonConfigStr, "r+");
FILE * file1 = popen(pythonConfigStr, "r");
char cmdbuffer[1000];
fgets(cmdbuffer, 1000, file1);
printf("pythonStr result: %s\n", cmdbuffer);
// pclose(file1); Try new python
pclose(file1);
int pid, infd, outfd;
printf("Start Process Result: %d %d %d %d \n", start_subprocess(pythonConfigStr, int *pid, int *infd, int *outfd), pid, infd, outfd);
/*
sleep(5);
fputc('\n', file1);
fgets(cmdbuffer, 1000, file1);
@ -359,7 +363,7 @@ int main(int argc, char * argv[]) {
fputc('\n', file1);
fgets(cmdbuffer, 1000, file1);
printf("pythonStr result3: %s\n", cmdbuffer);
*/
// try connecting to Arduino payload using UART
@ -997,6 +1001,43 @@ void get_tlm(void) {
return;
}
// code by https://stackoverflow.com/users/2876370/pavel-%c5%a0imerda
static bool start_subprocess(char *const command[], int *pid, int *infd, int *outfd)
{
int p1[2], p2[2];
if (!pid || !infd || !outfd)
return false;
if (pipe(p1) == -1)
goto err_pipe1;
if (pipe(p2) == -1)
goto err_pipe2;
if ((*pid = fork()) == -1)
goto err_fork;
if (*pid) {
/* Parent process. */
*infd = p1[1];
*outfd = p2[0];
close(p1[0]);
close(p2[1]);
return true;
} else {
/* Child process. */
dup2(p1[0], 0);
dup2(p2[1], 1);
close(p1[0]);
close(p1[1]);
close(p2[0]);
close(p2[1]);
execvp(*command, command);
/* Error occured. */
fprintf(stderr, "error running %s: %s", *command, strerror(errno));
abort();
}
void get_tlm_fox() {
// Reading I2C voltage and current sensors

Loading…
Cancel
Save

Powered by TurnKey Linux.