gps_pvt 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +10 -0
- data/README.md +86 -0
- data/Rakefile +86 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/ext/gps_pvt/Coordinate/Coordinate_wrap.cxx +6613 -0
- data/ext/gps_pvt/GPS/GPS_wrap.cxx +16019 -0
- data/ext/gps_pvt/SylphideMath/SylphideMath_wrap.cxx +21050 -0
- data/ext/gps_pvt/extconf.rb +70 -0
- data/ext/ninja-scan-light/tool/navigation/EGM.h +2971 -0
- data/ext/ninja-scan-light/tool/navigation/GPS.h +2432 -0
- data/ext/ninja-scan-light/tool/navigation/GPS_Solver.h +479 -0
- data/ext/ninja-scan-light/tool/navigation/GPS_Solver_Base.h +1081 -0
- data/ext/ninja-scan-light/tool/navigation/GPS_Solver_MultiFrequency.h +199 -0
- data/ext/ninja-scan-light/tool/navigation/GPS_Solver_RAIM.h +210 -0
- data/ext/ninja-scan-light/tool/navigation/MagneticField.h +928 -0
- data/ext/ninja-scan-light/tool/navigation/NTCM.h +211 -0
- data/ext/ninja-scan-light/tool/navigation/RINEX.h +1781 -0
- data/ext/ninja-scan-light/tool/navigation/WGS84.h +186 -0
- data/ext/ninja-scan-light/tool/navigation/coordinate.h +406 -0
- data/ext/ninja-scan-light/tool/param/bit_array.h +145 -0
- data/ext/ninja-scan-light/tool/param/complex.h +558 -0
- data/ext/ninja-scan-light/tool/param/matrix.h +4049 -0
- data/ext/ninja-scan-light/tool/param/matrix_fixed.h +665 -0
- data/ext/ninja-scan-light/tool/param/matrix_special.h +562 -0
- data/ext/ninja-scan-light/tool/param/quaternion.h +765 -0
- data/ext/ninja-scan-light/tool/param/vector3.h +651 -0
- data/ext/ninja-scan-light/tool/swig/Coordinate.i +177 -0
- data/ext/ninja-scan-light/tool/swig/GPS.i +1102 -0
- data/ext/ninja-scan-light/tool/swig/SylphideMath.i +1234 -0
- data/ext/ninja-scan-light/tool/swig/extconf.rb +5 -0
- data/ext/ninja-scan-light/tool/swig/makefile +53 -0
- data/ext/ninja-scan-light/tool/swig/spec/GPS_spec.rb +417 -0
- data/ext/ninja-scan-light/tool/swig/spec/SylphideMath_spec.rb +489 -0
- data/gps_pvt.gemspec +57 -0
- data/lib/gps_pvt/receiver.rb +375 -0
- data/lib/gps_pvt/ubx.rb +148 -0
- data/lib/gps_pvt/version.rb +5 -0
- data/lib/gps_pvt.rb +9 -0
- data/sig/gps_pvt.rbs +4 -0
- metadata +117 -0
@@ -0,0 +1,177 @@
|
|
1
|
+
%module Coordinate
|
2
|
+
|
3
|
+
%{
|
4
|
+
#include <sstream>
|
5
|
+
#include <string>
|
6
|
+
#include <exception>
|
7
|
+
|
8
|
+
#if defined(SWIGRUBY) && defined(isfinite)
|
9
|
+
#undef isfinite_
|
10
|
+
#undef isfinite
|
11
|
+
#endif
|
12
|
+
|
13
|
+
#include "navigation/coordinate.h"
|
14
|
+
%}
|
15
|
+
|
16
|
+
%include std_common.i
|
17
|
+
%include std_string.i
|
18
|
+
%include exception.i
|
19
|
+
|
20
|
+
//%import "SylphideMath.i"
|
21
|
+
|
22
|
+
%feature("autodoc", "1");
|
23
|
+
|
24
|
+
%define MAKE_SETTER(name, type)
|
25
|
+
%rename(%str(name ## =)) set_ ## name;
|
26
|
+
type set_ ## name (const type &v) {
|
27
|
+
return self->name() = v;
|
28
|
+
}
|
29
|
+
%enddef
|
30
|
+
|
31
|
+
#if !defined(SWIGIMPORTED)
|
32
|
+
%header {
|
33
|
+
struct native_exception : public std::exception {
|
34
|
+
#if defined(SWIGRUBY)
|
35
|
+
int state;
|
36
|
+
native_exception(const int &state_) : std::exception(), state(state_) {}
|
37
|
+
void regenerate() const {rb_jump_tag(state);}
|
38
|
+
#else
|
39
|
+
void regenerate() const {}
|
40
|
+
#endif
|
41
|
+
};
|
42
|
+
}
|
43
|
+
#endif
|
44
|
+
|
45
|
+
%extend System_3D {
|
46
|
+
std::string __str__() const {
|
47
|
+
std::stringstream s;
|
48
|
+
s << (*self);
|
49
|
+
return s.str();
|
50
|
+
}
|
51
|
+
%fragment(SWIG_Traits_frag(FloatT));
|
52
|
+
%typemap(out) FloatT & {
|
53
|
+
$result = swig::from(*$1);
|
54
|
+
}
|
55
|
+
#if !defined(SWIGRUBY)
|
56
|
+
%typemap(in,numinputs=0) FloatT values[3] (FloatT temp[3]) %{
|
57
|
+
$1 = temp;
|
58
|
+
%}
|
59
|
+
%typemap(argout) FloatT values[3] {
|
60
|
+
for(int i(0); i < 3; ++i){
|
61
|
+
%append_output(swig::from($1[i]));
|
62
|
+
}
|
63
|
+
}
|
64
|
+
void to_a(FloatT values[3]) const {
|
65
|
+
for(int i(0); i < 3; ++i){
|
66
|
+
values[i] = (*self)[i];
|
67
|
+
}
|
68
|
+
}
|
69
|
+
#endif
|
70
|
+
%exception each {
|
71
|
+
#ifdef SWIGRUBY
|
72
|
+
if(!rb_block_given_p()){
|
73
|
+
return rb_enumeratorize(self, ID2SYM(rb_intern("each")), argc, argv);
|
74
|
+
}
|
75
|
+
#endif
|
76
|
+
try {
|
77
|
+
$action
|
78
|
+
} catch (const native_exception &e) {
|
79
|
+
e.regenerate();
|
80
|
+
SWIG_fail;
|
81
|
+
} catch (const std::exception& e) {
|
82
|
+
SWIG_exception(SWIG_RuntimeError, e.what());
|
83
|
+
}
|
84
|
+
}
|
85
|
+
void each() const {
|
86
|
+
for(int i(0); i < 3; ++i){
|
87
|
+
#ifdef SWIGRUBY
|
88
|
+
int state;
|
89
|
+
struct yield_t {
|
90
|
+
const VALUE v;
|
91
|
+
static VALUE run(VALUE v){
|
92
|
+
yield_t *arg(reinterpret_cast<yield_t *>(v));
|
93
|
+
return rb_yield_values(1, arg->v);
|
94
|
+
}
|
95
|
+
} arg = {swig::from((*self)[i])};
|
96
|
+
rb_protect(yield_t::run, reinterpret_cast<VALUE>(&arg), &state);
|
97
|
+
if(state != 0){throw native_exception(state);}
|
98
|
+
#endif
|
99
|
+
}
|
100
|
+
}
|
101
|
+
};
|
102
|
+
#ifdef SWIGRUBY
|
103
|
+
%mixin System_3D "Enumerable";
|
104
|
+
#endif
|
105
|
+
|
106
|
+
%extend System_XYZ {
|
107
|
+
#ifdef SWIGRUBY
|
108
|
+
MAKE_SETTER(x, FloatT);
|
109
|
+
MAKE_SETTER(y, FloatT);
|
110
|
+
MAKE_SETTER(z, FloatT);
|
111
|
+
#endif
|
112
|
+
};
|
113
|
+
|
114
|
+
%extend System_LLH {
|
115
|
+
%typemap(in,numinputs=0) (FloatT (&res)[3][3]) (FloatT temp[3][3]) {
|
116
|
+
$1 = &($1_type)(temp);
|
117
|
+
}
|
118
|
+
#ifdef SWIGRUBY
|
119
|
+
%typemap(argout, fragment=SWIG_Traits_frag(FloatT)) FloatT (&res)[3][3] {
|
120
|
+
$result = rb_ary_new_capa(3);
|
121
|
+
for(int i(0); i < 3; ++i){
|
122
|
+
rb_ary_store($result, i,
|
123
|
+
rb_ary_new_from_args(3,
|
124
|
+
swig::from((*$1)[i][0]),
|
125
|
+
swig::from((*$1)[i][1]),
|
126
|
+
swig::from((*$1)[i][2]) ));
|
127
|
+
}
|
128
|
+
}
|
129
|
+
%alias latitude "lat";
|
130
|
+
%alias longitude "lng";
|
131
|
+
%alias height "h,alt";
|
132
|
+
MAKE_SETTER(latitude, FloatT);
|
133
|
+
MAKE_SETTER(longitude, FloatT);
|
134
|
+
MAKE_SETTER(height, FloatT);
|
135
|
+
%alias set_latitude "lat=";
|
136
|
+
%alias set_longitude "lng=";
|
137
|
+
%alias set_height "h=,alt=";
|
138
|
+
#endif
|
139
|
+
}
|
140
|
+
|
141
|
+
%extend System_ENU {
|
142
|
+
FloatT down() const {
|
143
|
+
return self->up() * -1;
|
144
|
+
}
|
145
|
+
FloatT set_down(const FloatT &v) {
|
146
|
+
return (self->up() = (v * -1)) * -1;
|
147
|
+
}
|
148
|
+
#ifdef SWIGRUBY
|
149
|
+
%alias east "e";
|
150
|
+
%alias north "n";
|
151
|
+
%alias up "u";
|
152
|
+
MAKE_SETTER(east, FloatT);
|
153
|
+
MAKE_SETTER(north, FloatT);
|
154
|
+
MAKE_SETTER(up, FloatT);
|
155
|
+
%alias set_east "e=";
|
156
|
+
%alias set_north "n=";
|
157
|
+
%alias set_up "u=";
|
158
|
+
|
159
|
+
%alias down "d";
|
160
|
+
%alias set_down "d=";
|
161
|
+
#endif
|
162
|
+
}
|
163
|
+
|
164
|
+
#undef MAKE_SETTER
|
165
|
+
|
166
|
+
%include navigation/coordinate.h
|
167
|
+
|
168
|
+
%define CONCRETIZE(type)
|
169
|
+
%template(Base) System_3D<type>;
|
170
|
+
%template(XYZ) System_XYZ<type, WGS84>;
|
171
|
+
%template(LLH) System_LLH<type, WGS84>;
|
172
|
+
%template(ENU) System_ENU<type, WGS84>;
|
173
|
+
%enddef
|
174
|
+
|
175
|
+
CONCRETIZE(double);
|
176
|
+
|
177
|
+
#undef CONCRETIZE
|