gps_pvt 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/CHANGELOG.md +5 -0
  4. data/CODE_OF_CONDUCT.md +84 -0
  5. data/Gemfile +10 -0
  6. data/README.md +86 -0
  7. data/Rakefile +86 -0
  8. data/bin/console +15 -0
  9. data/bin/setup +8 -0
  10. data/ext/gps_pvt/Coordinate/Coordinate_wrap.cxx +6613 -0
  11. data/ext/gps_pvt/GPS/GPS_wrap.cxx +16019 -0
  12. data/ext/gps_pvt/SylphideMath/SylphideMath_wrap.cxx +21050 -0
  13. data/ext/gps_pvt/extconf.rb +70 -0
  14. data/ext/ninja-scan-light/tool/navigation/EGM.h +2971 -0
  15. data/ext/ninja-scan-light/tool/navigation/GPS.h +2432 -0
  16. data/ext/ninja-scan-light/tool/navigation/GPS_Solver.h +479 -0
  17. data/ext/ninja-scan-light/tool/navigation/GPS_Solver_Base.h +1081 -0
  18. data/ext/ninja-scan-light/tool/navigation/GPS_Solver_MultiFrequency.h +199 -0
  19. data/ext/ninja-scan-light/tool/navigation/GPS_Solver_RAIM.h +210 -0
  20. data/ext/ninja-scan-light/tool/navigation/MagneticField.h +928 -0
  21. data/ext/ninja-scan-light/tool/navigation/NTCM.h +211 -0
  22. data/ext/ninja-scan-light/tool/navigation/RINEX.h +1781 -0
  23. data/ext/ninja-scan-light/tool/navigation/WGS84.h +186 -0
  24. data/ext/ninja-scan-light/tool/navigation/coordinate.h +406 -0
  25. data/ext/ninja-scan-light/tool/param/bit_array.h +145 -0
  26. data/ext/ninja-scan-light/tool/param/complex.h +558 -0
  27. data/ext/ninja-scan-light/tool/param/matrix.h +4049 -0
  28. data/ext/ninja-scan-light/tool/param/matrix_fixed.h +665 -0
  29. data/ext/ninja-scan-light/tool/param/matrix_special.h +562 -0
  30. data/ext/ninja-scan-light/tool/param/quaternion.h +765 -0
  31. data/ext/ninja-scan-light/tool/param/vector3.h +651 -0
  32. data/ext/ninja-scan-light/tool/swig/Coordinate.i +177 -0
  33. data/ext/ninja-scan-light/tool/swig/GPS.i +1102 -0
  34. data/ext/ninja-scan-light/tool/swig/SylphideMath.i +1234 -0
  35. data/ext/ninja-scan-light/tool/swig/extconf.rb +5 -0
  36. data/ext/ninja-scan-light/tool/swig/makefile +53 -0
  37. data/ext/ninja-scan-light/tool/swig/spec/GPS_spec.rb +417 -0
  38. data/ext/ninja-scan-light/tool/swig/spec/SylphideMath_spec.rb +489 -0
  39. data/gps_pvt.gemspec +57 -0
  40. data/lib/gps_pvt/receiver.rb +375 -0
  41. data/lib/gps_pvt/ubx.rb +148 -0
  42. data/lib/gps_pvt/version.rb +5 -0
  43. data/lib/gps_pvt.rb +9 -0
  44. data/sig/gps_pvt.rbs +4 -0
  45. metadata +117 -0
@@ -0,0 +1,70 @@
1
+ ninja_tool_dir = File::absolute_path(File::join(
2
+ File::dirname(__FILE__), '..', 'ninja-scan-light', 'tool'))
3
+
4
+ require "mkmf"
5
+ cflags = " -Wall -I#{ninja_tool_dir}"
6
+ $CFLAGS += cflags
7
+ $CPPFLAGS += cflags if RUBY_VERSION >= "2.0.0"
8
+ $LOCAL_LIBS += " -lstdc++ "
9
+
10
+ IO_TARGETS = [
11
+ [Kernel, :instance_eval],
12
+ [(class << File; self; end), :class_eval], # https://github.com/ruby/ruby/commit/19beb028
13
+ ]
14
+ def IO_TARGETS.mod(&b)
15
+ self.each{|class_, func| class_.send(func, &b)}
16
+ end
17
+
18
+ IO_TARGETS.mod{
19
+ alias_method(:open_orig, :open)
20
+ }
21
+
22
+ Dir::glob(File::join(File::dirname(__FILE__), "*/")).each{|dir|
23
+ mod_name = File::basename(dir)
24
+
25
+ dst = File::join(Dir.getwd, mod_name)
26
+ FileUtils::mkdir_p(dst) if dir != dst
27
+
28
+ $stderr.puts "For #{mod_name} ..."
29
+
30
+ # @see https://stackoverflow.com/a/35842162/15992898
31
+ $srcs = Dir::glob(File::join(dir, '*.cxx')).collect{|path|
32
+ File::join(mod_name, File::basename(path))
33
+ }
34
+ $objs = $srcs.collect{|path|
35
+ path.sub(/\.[^\.]+$/, '.o')
36
+ }
37
+
38
+ IO_TARGETS.mod{
39
+ # rename Makefile to Makefile.#{mod_name}
40
+ define_method(:open){|*args, &b|
41
+ args[0] += ".#{mod_name}" if (args[0] && (args[0] == "Makefile"))
42
+ open_orig(*args, &b)
43
+ }
44
+ }
45
+ create_makefile("gps_pvt/#{mod_name}")
46
+ }
47
+
48
+ IO_TARGETS.mod{
49
+ alias_method(:open, :open_orig)
50
+ }
51
+
52
+ # manual generation of top-level Makefile
53
+ # @see https://yorickpeterse.com/articles/hacking-extconf-rb/
54
+ open("Makefile", 'w'){|io|
55
+ # @see https://stackoverflow.com/a/17845120/15992898
56
+ io.write(<<-__TOPLEVEL_MAKEFILE__)
57
+ TOPTARGETS := all clean distclean realclean install site-install
58
+
59
+ SUBMFS := $(wildcard Makefile.*)
60
+
61
+ $(TOPTARGETS): $(SUBMFS)
62
+ $(SUBMFS):
63
+ #{"\t"}$(MAKE) -f $@ $(MAKECMDGOALS)
64
+
65
+ .PHONY: $(TOPTARGETS) $(SUBMFS)
66
+ __TOPLEVEL_MAKEFILE__
67
+ }
68
+
69
+ require 'fileutils'
70
+ FileUtils::touch("gps_pvt.so") # dummy