eagletree-log 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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