]> git.rkrishnan.org Git - dttsp.git/blob - jDttSP/specmon.c
Major changes. Added metering and power spectrum, other fixes. Rearranged headers...
[dttsp.git] / jDttSP / specmon.c
1 /* specmon.c */
2
3 #include <common.h>
4
5 #define SLEEP (500000)
6
7 char *cmdsink = "./IPC/SDR-1000-0-commands.fifo",
8      *specsrc = "./IPC/SDR-1000-0-spec.fifo";
9
10 FILE *cmdfp, *spcfp;
11
12 int label;
13 float spec[DEFSPEC];
14
15 int
16 main(int argc, char **argv) {
17   int i = 0, j, k, lab = getpid();
18
19   if (!(cmdfp = fopen(cmdsink, "r+")))
20     perror(cmdsink), exit(1);
21   if (!(spcfp = fopen(specsrc, "r+")))
22     perror(specsrc), exit(1);
23
24   printf("spec OK\n");
25
26   for (;;) {
27
28     usleep(SLEEP);
29
30     fprintf(cmdfp, "reqSpectrum %d\n", lab);
31     fflush(cmdfp);
32
33     if (fread((char *) &label, sizeof(int), 1, spcfp) != 1)
34       perror("fread spectrum label"), exit(1);
35
36     if (fread((char *) spec, sizeof(float), DEFSPEC, spcfp) != DEFSPEC)
37       perror("fread spec"), exit(1);
38
39     printf("%d <%d>", i++, label);
40
41     j = 0;
42     for (k = 1; k < DEFSPEC; k++)
43       if (spec[k] > spec[j]) j = k;
44     printf(" [%d %g]\n", j, spec[j]);
45   }
46
47   fclose(cmdfp);
48   fclose(spcfp);
49
50   exit(0);
51 }