GNU Radio's CCSDS Package
ezcod.h
Go to the documentation of this file.
1 #ifndef _EZPWD_EZCOD_H
2 #define _EZPWD_EZCOD_H
3 
4 /*
5  * "C" API for ezcod w/3m accuracy in 9 symbols, with 1, 2 or 3 parity symbols.
6  *
7  * ..._encode -- Encode the lat/lon into an ezcod 3:10 string in buffer supplied, returning length
8  * ..._decode -- Decode the ezcode 3:10 string into lat, lon, returning confidence percentage
9  *
10  * All return -'ve value on failure, and as much of an error message as allowed by the 'siz' of
11  * the supplied char* buffer.
12  */
13 # if defined( __cplusplus )
14 // Standard C Javascript binding implementation
15 extern "C" {
16 # endif
17  /* ezcod 3:10 -- 9+1 Reed-Solomon parity symbol */
19  double lat,
20  double lon,
21  char *enc,
22  size_t siz,
23  size_t pre );
25  char *dec,
26  size_t siz,
27  double *lat,
28  double *lon,
29  double *acc );
30  /* ezcod 3:11 -- 9+2 Reed-Solomon parity symbols */
32  double lat,
33  double lon,
34  char *enc,
35  size_t siz,
36  size_t pre );
38  char *dec,
39  size_t siz,
40  double *lat,
41  double *lon,
42  double *acc );
43  /* ezcod 3:12 -- 9+3 Reed-Solomon parity symbols */
45  double lat,
46  double lon,
47  char *enc,
48  size_t siz,
49  size_t pre );
51  char *dec,
52  size_t siz,
53  double *lat,
54  double *lon,
55  double *acc );
56 # if defined( __cplusplus )
57 } // extern "C"
58 
59 # if defined( __cheerp )
60 // Cheerp C++ Javascript binding implementation
61 class [[jsexport]] ezcod_cheerp
62 {
63  public:
64  ezcod_cheerp()
65  {
66  ;
67  }
68 
69  /* ezcod 3:10 -- 9+1 Reed-Solomon parity symbol */
71  double lat,
72  double lon,
73  char *enc,
74  size_t siz,
75  size_t pre )
76  {
77  return ::ezcod_3_10_encode( lat, lon, enc, siz, pre );
78  }
80  char *dec,
81  size_t siz,
82  double *lat,
83  double *lon,
84  double *acc )
85  {
86  return ::ezcod_3_10_decode( dec, siz, lat, lon, acc );
87  }
88  /* ezcod 3:11 -- 9+2 Reed-Solomon parity symbols */
90  double lat,
91  double lon,
92  char *enc,
93  size_t siz,
94  size_t pre )
95  {
96  return ::ezcod_3_11_encode( lat, lon, enc, siz, pre );
97  }
99  char *dec,
100  size_t siz,
101  double *lat,
102  double *lon,
103  double *acc )
104  {
105  return ::ezcod_3_11_decode( dec, siz, lat, lon, acc );
106  }
107  /* ezcod 3:12 -- 9+3 Reed-Solomon parity symbols */
108  int ezcod_3_12_encode(
109  double lat,
110  double lon,
111  char *enc,
112  size_t siz,
113  size_t pre )
114  {
115  return ::ezcod_3_12_encode( lat, lon, enc, siz, pre );
116  }
117  int ezcod_3_12_decode(
118  char *dec,
119  size_t siz,
120  double *lat,
121  double *lon,
122  double *acc )
123  {
124  return ::ezcod_3_12_decode( dec, siz, lat, lon, acc );
125  }
126 };
127 # endif // __cheerp
128 # endif // __cplusplus
129 #endif // _EZPWD_EZCOD_H
int ezcod_3_10_decode(char *dec, size_t siz, double *lat, double *lon, double *acc)
int ezcod_3_11_encode(double lat, double lon, char *enc, size_t siz, size_t pre)
int ezcod_3_12_encode(double lat, double lon, char *enc, size_t siz, size_t pre)
int ezcod_3_12_decode(char *dec, size_t siz, double *lat, double *lon, double *acc)
int ezcod_3_11_decode(char *dec, size_t siz, double *lat, double *lon, double *acc)
int ezcod_3_10_encode(double lat, double lon, char *enc, size_t siz, size_t pre)