spektrum-log 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/spektrum/log/flight.rb +25 -25
- data/lib/spektrum/log/records.rb +12 -0
- data/lib/spektrum/log/version.rb +1 -1
- data/spec/flight_spec.rb +16 -2
- metadata +31 -6
- checksums.yaml +0 -7
data/lib/spektrum/log/flight.rb
CHANGED
@@ -142,28 +142,28 @@ module Spektrum
|
|
142
142
|
|
143
143
|
kml = KMLFile.new
|
144
144
|
kml.objects << KML::Document.new(
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
145
|
+
:name => 'NAME HERE',
|
146
|
+
:description => 'DESCRIPTION HERE',
|
147
|
+
:styles => [
|
148
|
+
KML::Style.new(
|
149
|
+
:id => 'yellowLineGreenPoly',
|
150
|
+
:line_style => KML::LineStyle.new(:color => '7f00ffff', :width => 4),
|
151
|
+
:poly_style => KML::PolyStyle.new(:color => '7f00ff00')
|
152
|
+
)
|
153
|
+
],
|
154
|
+
:features => [
|
155
|
+
KML::Placemark.new(
|
156
|
+
:name => 'Absolute Extruded',
|
157
|
+
:description => 'Transparent green wall with yellow outlines',
|
158
|
+
:style_url => '#yellowLineGreenPoly',
|
159
|
+
:geometry => KML::LineString.new(
|
160
|
+
:extrude => true,
|
161
|
+
:tessellate => true,
|
162
|
+
:altitude_mode => 'absolute',
|
163
|
+
:coordinates => gps1_records.map(&:coordinate).map { |c| c.join(',') }.join(' ')
|
164
|
+
)
|
165
|
+
)
|
166
|
+
]
|
167
167
|
)
|
168
168
|
kml.render
|
169
169
|
end
|
@@ -173,13 +173,13 @@ module Spektrum
|
|
173
173
|
# Determines if there are any records in this flight of the given type.
|
174
174
|
#
|
175
175
|
# @param type [Class] type of record to check for
|
176
|
-
# @return [Boolean] true if there are records, false otherwise
|
176
|
+
# @return [Boolean] true if there are valid records, false otherwise
|
177
177
|
def any_records?(type)
|
178
|
-
@records.any? { |rec| rec.is_a?
|
178
|
+
@records.any? { |rec| rec.is_a?(type) && rec.valid? }
|
179
179
|
end
|
180
180
|
|
181
181
|
def select_records(type)
|
182
|
-
@records.select { |rec| rec.is_a?
|
182
|
+
@records.select { |rec| rec.is_a?(type) && rec.valid? }
|
183
183
|
end
|
184
184
|
|
185
185
|
end
|
data/lib/spektrum/log/records.rb
CHANGED
@@ -14,6 +14,14 @@ module Spektrum
|
|
14
14
|
@raw_data = raw_data
|
15
15
|
end
|
16
16
|
|
17
|
+
# Determines if this record should be considered valid. Definitions of valid
|
18
|
+
# will vary by the type of record.
|
19
|
+
#
|
20
|
+
# @return [Boolean] true if the record is valid, false otherwise
|
21
|
+
def valid?
|
22
|
+
true
|
23
|
+
end
|
24
|
+
|
17
25
|
protected
|
18
26
|
|
19
27
|
def byte_field range
|
@@ -201,6 +209,10 @@ module Spektrum
|
|
201
209
|
@heading ||= (hex_byte_field(12) * 10) + (hex_byte_field(11) / 10.0)
|
202
210
|
end
|
203
211
|
|
212
|
+
def valid?
|
213
|
+
!(latitude == 0.0 && longitude == 0.0 && altitude == 0.0)
|
214
|
+
end
|
215
|
+
|
204
216
|
private
|
205
217
|
|
206
218
|
def convert_latlon elts
|
data/lib/spektrum/log/version.rb
CHANGED
data/spec/flight_spec.rb
CHANGED
@@ -24,7 +24,7 @@ describe Spektrum::Log::Flight do
|
|
24
24
|
|
25
25
|
its(:model_type) { should eql('Fixed Wing') }
|
26
26
|
|
27
|
-
its(:gps1_records?) { should
|
27
|
+
its(:gps1_records?) { should be_false }
|
28
28
|
|
29
29
|
its(:gps2_records?) { should be_true }
|
30
30
|
|
@@ -320,8 +320,12 @@ describe Spektrum::Log::Flight do
|
|
320
320
|
|
321
321
|
its(:gps1_records?) { should be_true }
|
322
322
|
|
323
|
+
it { should have(6419).gps1_records }
|
324
|
+
|
323
325
|
its(:gps2_records?) { should be_true }
|
324
326
|
|
327
|
+
it { should have(7096).gps2_records }
|
328
|
+
|
325
329
|
its(:to_kml?) { should be_true }
|
326
330
|
|
327
331
|
end
|
@@ -334,8 +338,12 @@ describe Spektrum::Log::Flight do
|
|
334
338
|
|
335
339
|
its(:gps1_records?) { should be_true }
|
336
340
|
|
341
|
+
it { should have(7718).gps1_records }
|
342
|
+
|
337
343
|
its(:gps2_records?) { should be_true }
|
338
344
|
|
345
|
+
it { should have(7710).gps2_records }
|
346
|
+
|
339
347
|
its(:to_kml?) { should be_true }
|
340
348
|
|
341
349
|
end
|
@@ -354,8 +362,12 @@ describe Spektrum::Log::Flight do
|
|
354
362
|
|
355
363
|
its(:gps1_records?) { should be_true }
|
356
364
|
|
365
|
+
it { should have(10647).gps1_records }
|
366
|
+
|
357
367
|
its(:gps2_records?) { should be_true }
|
358
368
|
|
369
|
+
it { should have(10645).gps2_records }
|
370
|
+
|
359
371
|
its(:to_kml?) { should be_true }
|
360
372
|
|
361
373
|
end
|
@@ -366,10 +378,12 @@ describe Spektrum::Log::Flight do
|
|
366
378
|
|
367
379
|
its(:duration) { should be_within(1).of(89) }
|
368
380
|
|
369
|
-
|
381
|
+
it { should have(4792).gps1_records }
|
370
382
|
|
371
383
|
its(:gps2_records?) { should be_true }
|
372
384
|
|
385
|
+
it { should have(4795).gps2_records }
|
386
|
+
|
373
387
|
its(:to_kml?) { should be_true }
|
374
388
|
|
375
389
|
end
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spektrum-log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Nick Veys
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-27 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: awesome_print
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: bundler
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: ci_reporter
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - '='
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - '='
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: rake
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -69,6 +78,7 @@ dependencies:
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: rspec
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
83
|
- - ~>
|
74
84
|
- !ruby/object:Gem::Version
|
@@ -76,6 +86,7 @@ dependencies:
|
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
91
|
- - ~>
|
81
92
|
- !ruby/object:Gem::Version
|
@@ -83,6 +94,7 @@ dependencies:
|
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: simplecov
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
99
|
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
@@ -90,6 +102,7 @@ dependencies:
|
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
107
|
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
@@ -97,6 +110,7 @@ dependencies:
|
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
111
|
name: simplecov-gem-adapter
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
100
114
|
requirements:
|
101
115
|
- - ! '>='
|
102
116
|
- !ruby/object:Gem::Version
|
@@ -104,6 +118,7 @@ dependencies:
|
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
107
122
|
requirements:
|
108
123
|
- - ! '>='
|
109
124
|
- !ruby/object:Gem::Version
|
@@ -111,6 +126,7 @@ dependencies:
|
|
111
126
|
- !ruby/object:Gem::Dependency
|
112
127
|
name: simplecov-rcov
|
113
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
114
130
|
requirements:
|
115
131
|
- - ! '>='
|
116
132
|
- !ruby/object:Gem::Version
|
@@ -118,6 +134,7 @@ dependencies:
|
|
118
134
|
type: :development
|
119
135
|
prerelease: false
|
120
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
121
138
|
requirements:
|
122
139
|
- - ! '>='
|
123
140
|
- !ruby/object:Gem::Version
|
@@ -125,6 +142,7 @@ dependencies:
|
|
125
142
|
- !ruby/object:Gem::Dependency
|
126
143
|
name: ruby_kml
|
127
144
|
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
128
146
|
requirements:
|
129
147
|
- - ~>
|
130
148
|
- !ruby/object:Gem::Version
|
@@ -132,6 +150,7 @@ dependencies:
|
|
132
150
|
type: :runtime
|
133
151
|
prerelease: false
|
134
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
135
154
|
requirements:
|
136
155
|
- - ~>
|
137
156
|
- !ruby/object:Gem::Version
|
@@ -173,26 +192,33 @@ files:
|
|
173
192
|
homepage: ''
|
174
193
|
licenses:
|
175
194
|
- MIT
|
176
|
-
metadata: {}
|
177
195
|
post_install_message:
|
178
196
|
rdoc_options: []
|
179
197
|
require_paths:
|
180
198
|
- lib
|
181
199
|
required_ruby_version: !ruby/object:Gem::Requirement
|
200
|
+
none: false
|
182
201
|
requirements:
|
183
202
|
- - ! '>='
|
184
203
|
- !ruby/object:Gem::Version
|
185
204
|
version: '0'
|
205
|
+
segments:
|
206
|
+
- 0
|
207
|
+
hash: 1818794528585278686
|
186
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
187
210
|
requirements:
|
188
211
|
- - ! '>='
|
189
212
|
- !ruby/object:Gem::Version
|
190
213
|
version: '0'
|
214
|
+
segments:
|
215
|
+
- 0
|
216
|
+
hash: 1818794528585278686
|
191
217
|
requirements: []
|
192
218
|
rubyforge_project:
|
193
|
-
rubygems_version:
|
219
|
+
rubygems_version: 1.8.25
|
194
220
|
signing_key:
|
195
|
-
specification_version:
|
221
|
+
specification_version: 3
|
196
222
|
summary: Spektrum TLM log file reader
|
197
223
|
test_files:
|
198
224
|
- spec/basic_data_record_spec.rb
|
@@ -202,4 +228,3 @@ test_files:
|
|
202
228
|
- spec/gps_record2_spec.rb
|
203
229
|
- spec/reader_spec.rb
|
204
230
|
- spec/spec_helper.rb
|
205
|
-
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 29e09913bbcf8a10fdf8ca401cdd3d8560eb76e5
|
4
|
-
data.tar.gz: 996e2b67693ebbf1a22dc68bafb074647c592cc9
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 01a4d6d4f016ce368b756cee96afcfe45df6dce84fdd49dd9a0a0ada5ecbc1452f3af1fb74db5bab44d0f419eee8e0c676d1376a6cddb61290586a46abc3f099
|
7
|
-
data.tar.gz: f2d43b65a285a547c89cbf4c2f60cfe4047f499b65144afc5f1fe25c96e7f8d40f223f83d747bf1a66ffedaa09fea2789993c8ee43517451024e172207e986ff
|