0beb1cc44ea34981c1b23f64608c54af856f1103
[olsrd.git] / lib / pud / src / posFile.h
1 #ifndef _PUD_POSFILE_H_
2 #define _PUD_POSFILE_H_
3
4 /* Plugin includes */
5
6 /* OLSR includes */
7
8 /* System includes */
9 #include <stdbool.h>
10 #include <nmea/info.h>
11 #include <nmea/sentence.h>
12
13 /**
14  <pre>
15  field/sentence GPGGA   GPRMC
16  utc:           x       x
17  sig:           x       x
18  fix:                   x
19  PDOP:                          =sqrt(2)*HDOP  (GPGSA)
20  HDOP:          x
21  VDOP:                          =HDOP          (GPGSA)
22  lat:           x       x
23  lon:           x       x
24  elv:           x
25  speed:                 x
26  direction:             x
27  </pre>
28  */
29 #define POSFILE_DEFAULT_SMASK           (GPGGA | GPRMC)
30 #define POSFILE_SANITISE_SMASK          (GPGGA | GPRMC | GPGSA)
31
32 /* no default utc: current time is always used */
33 #define POSFILE_DEFAULT_SIG             (NMEA_SIG_HIGH)
34 #define POSFILE_DEFAULT_FIX             (NMEA_FIX_BAD)
35 #define POSFILE_DEFAULT_HDOP            (0.0)
36 #define POSFILE_DEFAULT_LAT             (0.0)
37 #define POSFILE_DEFAULT_LON             (0.0)
38 #define POSFILE_DEFAULT_ELV             (0.0)
39 #define POSFILE_DEFAULT_SPEED           (0.0)
40 #define POSFILE_DEFAULT_DIRECTION       (0.0)
41
42 #define POSFILE_CALCULATED_VDOP(hdop)   (hdop)
43 #define POSFILE_CALCULATED_PDOP(hdop)   (hdop * 1.414213562)
44
45 #define POSFILE_NAME_SIG                "sig"
46 #define POSFILE_NAME_FIX                "fix"
47 #define POSFILE_NAME_HDOP               "hdop"
48 #define POSFILE_NAME_LAT                "lat"
49 #define POSFILE_NAME_LON                "lon"
50 #define POSFILE_NAME_ELV                "elv"
51 #define POSFILE_NAME_SPEED              "speed"
52 #define POSFILE_NAME_DIRECTION          "direction"
53
54 #define POSFILE_VALUE_SIG_BAD           "bad"
55 #define POSFILE_VALUE_SIG_LOW           "low"
56 #define POSFILE_VALUE_SIG_MID           "mid"
57 #define POSFILE_VALUE_SIG_HIGH          "high"
58
59 #define POSFILE_VALUE_FIX_BAD           "bad"
60 #define POSFILE_VALUE_FIX_2D            "2d"
61 #define POSFILE_VALUE_FIX_3D            "3d"
62
63 bool startPositionFile(void);
64 void stopPositionFile(void);
65 bool readPositionFile(char * fileName, nmeaINFO * nmeaInfo);
66
67 #endif /* _PUD_POSFILE_H_ */