eagletree-log 0.0.1 → 0.0.2

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.
@@ -0,0 +1,7 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 2.0.0
4
+ - jruby
5
+
6
+ notifications:
7
+ disabled: true
@@ -63,7 +63,7 @@ module EagleTree
63
63
 
64
64
  end
65
65
 
66
- @hardware = @meta[23]
66
+ @hardware = @meta[23] # TODO interpret correctly
67
67
  @version = @meta[25].to_f
68
68
 
69
69
  rescue
@@ -22,6 +22,119 @@ module EagleTree
22
22
  @rows = rows
23
23
  end
24
24
 
25
+ # Gets the duration of the flight, in seconds.
26
+ #
27
+ # @return [Float] duration of the flight, in seconds
28
+ def duration
29
+ @duration ||= (range[1] - range[0]) / 1000.0
30
+ end
31
+
32
+ def altitudes
33
+ @altitudes ||= int_fields('Altitude')
34
+ end
35
+
36
+ def altitudes?
37
+ nonzero?(self.altitudes)
38
+ end
39
+
40
+ def airspeeds
41
+ @airspeeds ||= int_fields('Airspeed')
42
+ end
43
+
44
+ def airspeeds?
45
+ nonzero?(self.airspeeds)
46
+ end
47
+
48
+ def servo_currents
49
+ @servo_currents ||= float_fields('ServoCurrent*100', 100.0)
50
+ end
51
+
52
+ def servo_currents?
53
+ nonzero?(self.servo_currents)
54
+ end
55
+
56
+ def throttles
57
+ @throttles ||= int_fields('Throttle')
58
+ end
59
+
60
+ def throttles?
61
+ nonzero?(self.throttles)
62
+ end
63
+
64
+ def pack_voltages
65
+ @pack_voltages ||= float_fields('PackVolt*100', 100.0)
66
+ end
67
+
68
+ def pack_voltages?
69
+ nonzero?(self.pack_voltages)
70
+ end
71
+
72
+ def amps
73
+ @amps ||= float_fields('Amps*100', 100.0)
74
+ end
75
+
76
+ def amps?
77
+ nonzero?(self.amps)
78
+ end
79
+
80
+ def temps1
81
+ @temps1 ||= float_fields('Temp1*10', 10.0)
82
+ end
83
+
84
+ def temps1?
85
+ nonzero?(self.temps1)
86
+ end
87
+
88
+ def temps2
89
+ @temps2 ||= float_fields('Temp2*10', 10.0)
90
+ end
91
+
92
+ def temps2?
93
+ nonzero?(self.temps2)
94
+ end
95
+
96
+ def temps3
97
+ @temps3 ||= float_fields('Temp3*10', 10.0)
98
+ end
99
+
100
+ def temps3?
101
+ nonzero?(self.temps3)
102
+ end
103
+
104
+ def rpms
105
+ @rpms ||= int_fields('RPM')
106
+ end
107
+
108
+ def rpms?
109
+ nonzero?(self.rpms)
110
+ end
111
+
112
+ def rpms2
113
+ @rpms2 ||= int_fields('RPM2')
114
+ end
115
+
116
+ def rpms2?
117
+ nonzero?(self.rpms2)
118
+ end
119
+
120
+ private
121
+
122
+ def nonzero? array
123
+ !array.all?(&:zero?)
124
+ end
125
+
126
+ def int_fields name
127
+ fields(name).map(&:to_i)
128
+ end
129
+
130
+ def float_fields name, divisor
131
+ fields(name).map(&:to_f).map { |val| val / divisor }
132
+ end
133
+
134
+ def fields name
135
+ @rows.each_with_object(name).map(&:[])
136
+ end
137
+
25
138
  end
26
139
 
27
140
  end
@@ -1,5 +1,5 @@
1
1
  module EagleTree
2
2
  module Log
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -8,6 +8,44 @@ describe EagleTree::Log::Session do
8
8
 
9
9
  it { should have(692).rows }
10
10
 
11
+ its(:duration) { should eql(69.2) }
12
+
13
+ its(:altitudes?) { should be_false }
14
+
15
+ its(:airspeeds?) { should be_false }
16
+
17
+ its(:servo_currents?) { should be_false }
18
+
19
+ its(:throttles?) { should be_false }
20
+
21
+ its(:pack_voltages?) { should be_true }
22
+
23
+ it 'should have a few select pack voltages' do
24
+ subject.pack_voltages[0].should be_within(0.1).of(46.5)
25
+ subject.pack_voltages[100].should be_within(0.1).of(46.5)
26
+ subject.pack_voltages[250].should be_within(0.1).of(42.8)
27
+ subject.pack_voltages[500].should be_within(0.1).of(45.2)
28
+ end
29
+
30
+ its(:amps?) { should be_true }
31
+
32
+ it 'should have a few select amps' do
33
+ subject.amps[0].should be_within(0.01).of(0.18)
34
+ subject.amps[100].should be_within(0.01).of(0.31)
35
+ subject.amps[250].should be_within(0.01).of(19.40)
36
+ subject.amps[500].should be_within(0.01).of(0.12)
37
+ end
38
+
39
+ its(:temps1?) { should be_false }
40
+
41
+ its(:temps2?) { should be_false }
42
+
43
+ its(:temps3?) { should be_false }
44
+
45
+ its(:rpms?) { should be_true }
46
+
47
+ its(:rpms2?) { should be_false }
48
+
11
49
  end
12
50
 
13
51
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eagletree-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
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-05-30 00:00:00.000000000 Z
12
+ date: 2013-05-31 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
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: ci_reporter
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: rake
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: rspec
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
@@ -74,6 +83,7 @@ extensions: []
74
83
  extra_rdoc_files: []
75
84
  files:
76
85
  - .gitignore
86
+ - .travis.yml
77
87
  - Gemfile
78
88
  - LICENSE.txt
79
89
  - README.md
@@ -90,29 +100,29 @@ files:
90
100
  homepage: ''
91
101
  licenses:
92
102
  - MIT
93
- metadata: {}
94
103
  post_install_message:
95
104
  rdoc_options: []
96
105
  require_paths:
97
106
  - lib
98
107
  required_ruby_version: !ruby/object:Gem::Requirement
108
+ none: false
99
109
  requirements:
100
110
  - - ! '>='
101
111
  - !ruby/object:Gem::Version
102
112
  version: '0'
103
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
+ none: false
104
115
  requirements:
105
116
  - - ! '>='
106
117
  - !ruby/object:Gem::Version
107
118
  version: '0'
108
119
  requirements: []
109
120
  rubyforge_project:
110
- rubygems_version: 2.0.3
121
+ rubygems_version: 1.8.22
111
122
  signing_key:
112
- specification_version: 4
123
+ specification_version: 3
113
124
  summary: Eagle Tree telemetry log file reader
114
125
  test_files:
115
126
  - spec/file_spec.rb
116
127
  - spec/session_spec.rb
117
128
  - spec/spec_helper.rb
118
- has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: fb747db05b4bda50935cbe895cdd77275d619f03
4
- data.tar.gz: c7aa45949ff00e2700f81bdb6fe97705e2d07362
5
- SHA512:
6
- metadata.gz: 6a1a7691157ddf505d936a2245758970e7a26626ad24f6c63a599d895d01496633118dbf55eb99a62bb54e944eba30aca0deaa22f5efeba1cd20d584e473ae4b
7
- data.tar.gz: 57f62343387632dc73b8c30bf906e24c173ccf47a1b4b2b321ae167060b9a8849bd4754f8fc43149721d3d6123d95aa1ab8e582e95227acedf2dff167b08c596