]> git.rkrishnan.org Git - dttsp.git/blob - jDttSP/metermon.c
Major changes. Added metering and power spectrum, other fixes. Rearranged headers...
[dttsp.git] / jDttSP / metermon.c
1 /* metermon.c */
2
3 #include <common.h>
4
5 #define SLEEP (500000)
6
7 char *cmdsink = "./IPC/SDR-1000-0-commands.fifo",
8      *mtrsrc = "./IPC/SDR-1000-0-meter.fifo";
9
10 FILE *cmdfp, *mtrfp;
11
12 int label;
13 REAL rxm[MAXRX][RXMETERPTS];
14 REAL txm[TXMETERPTS];
15
16 int
17 main(int argc, char **argv) {
18   int i = 0, j, k, lab = getpid();
19
20   if (!(cmdfp = fopen(cmdsink, "r+")))
21     perror(cmdsink), exit(1);
22   if (!(mtrfp = fopen(mtrsrc, "r+")))
23     perror(mtrsrc), exit(1);
24
25   fprintf(stderr, "metermon OK\n");
26
27   for (;;) {
28
29     usleep(SLEEP);
30
31     fprintf(cmdfp, "reqMeter %d\n", lab);
32     fflush(cmdfp);
33
34     if (fread((char *) &label, sizeof(int), 1, mtrfp) != 1)
35       perror("fread meter label"), exit(1);
36
37     if (fread((char *) rxm, sizeof(REAL), MAXRX * RXMETERPTS, mtrfp)
38         != MAXRX * RXMETERPTS)
39       perror("fread meter"), exit(1);
40
41     printf("%d <%d>", i++, label);
42     for (j = 0; j < MAXRX; j++) {
43       for (k = 0; k < RXMETERPTS; k++)
44         printf(" %8.3f", rxm[j][k]);
45       putchar('\n');
46     }
47
48     if (fread((char *) txm, sizeof(REAL), TXMETERPTS, mtrfp)
49         != TXMETERPTS)
50       perror("fread meter"), exit(1);
51
52     printf("%d\n", i++);
53     for (k = 0; k < TXMETERPTS; k++)
54       printf(" %8.3f", txm[k]);
55     putchar('\n');
56   }
57
58   fclose(cmdfp);
59   fclose(mtrfp);
60
61   exit(0);
62 }