app_code.c

//----------------------------------------------------------------
// app_code.c
// b m ledvina
// Cornell University
// 3.21.2001
//-----------------------------------------------------------------

#include <stdio.h>
#include <errno.h>
#include <fcntl.h>

#include "lincludes.h"

int main()
{
int fd[6];
int n;

typedef struct
{
char name[3];
double value[3];
} command;
command commd;

F00Sentence cd1;
F03Sentence cd2;
F04Sentence cd3;
F05Sentence cd4;
F08Sentence cd5;

// open FIFOs
if ((fd[0] = open("/dev/rtf0", O_WRONLY)) < 0) {
fprintf(stderr, "Error opening /dev/rtf0\n");
exit(1);
}

if ((fd[1] = open("/dev/rtf1", O_RDONLY)) < 0) {
fprintf(stderr, "Error opening /dev/rtf1\n");
exit(1);
}

if ((fd[2] = open("/dev/rtf2", O_RDONLY)) < 0) {
fprintf(stderr, "Error opening /dev/rtf2\n");
exit(1);
}

if ((fd[3] = open("/dev/rtf3", O_RDONLY)) < 0) {
fprintf(stderr, "Error opening /dev/rtf3\n");
exit(1);
}

if ((fd[4] = open("/dev/rtf4", O_RDONLY)) < 0) {
fprintf(stderr, "Error opening /dev/rtf4\n");
exit(1);
}

if ((fd[5] = open("/dev/rtf5", O_RDONLY)) < 0) {
fprintf(stderr, "Error opening /dev/rtf5\n");
exit(1);
}

//tell the receiver to start sending data
commd.name[0] = 'Z';commd.name[1] = 'B';
n = write(fd[0],&commd,sizeof(commd));

while(1){
n = read(fd[1], &cd1, sizeof(cd1));
n = read(fd[2], &cd2, sizeof(cd2));
n = read(fd[3], &cd3, sizeof(cd3));
n = read(fd[4], &cd4, sizeof(cd4));
n = read(fd[5], &cd5, sizeof(cd5));

printf("latitude=%12.6f, longitude=%12.6f, altitude= %12.6f, nsats = %d, NavMod = %d, %d:%d:%d\n", cd1.Latitude,cd1.Longitude,cd1.Height,cd1.NoOfSVsTracked,cd1.NavMode, cd1.Hour,cd1.Minute,cd1.Second);
fflush(stdout);
}

return 0;
}