fit4ruby 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b2445f82a3a5c423df2e01cf21fdddd2c77322e
4
- data.tar.gz: 5e51fe986b7b3fa1435a5b6f0dd8b475d6091c47
3
+ metadata.gz: 2cf519ee70f6b6337d1954ae6073ffa16e268953
4
+ data.tar.gz: e823bcb9ea3857f7900e4e3e08a4bb97a057145a
5
5
  SHA512:
6
- metadata.gz: f11797d8a21e49791b04b5299d76e5ae7a14f110f38a7841aaffd5fc0b4e5d3471143c75b1b4f8d8f7e03051759e97bf96b8b370bedcfecee168f7240bad2cd0
7
- data.tar.gz: 695da88503d5a491f5a4b50d6ed0334f18cf53fbdeaeba0a6a6c7f4ed1de501dea491745ffb8e86415fd858691f2cd02612f1abd778765657dbde47632d69fae
6
+ metadata.gz: a92c584b15630e0cdd8c0d18ceed90214f84413df8246776c15a69f3ed685768015e2f9be70f9dd62cda5f12fb459022203fe8d55f3d34d117f07914e4530272
7
+ data.tar.gz: 3b11fec1a502086756ff02a3d206aa64350ce0be86245bc71bbaf816d402c20b0dd0917635996368331de0ddda211786042b93e6ead52e762a1005727ddd39f7
@@ -95,6 +95,20 @@ module Fit4Ruby
95
95
  speed / @sessions.length
96
96
  end
97
97
 
98
+ # Return the heart rate when the activity recording was last stopped.
99
+ def ending_hr
100
+ @records.empty? ? nil : @records[-1].heart_rate
101
+ end
102
+
103
+ # Return the measured recovery heart rate.
104
+ def recovery_hr
105
+ @events.each do |e|
106
+ return e.recovery_hr if e.event == 'recovery_hr'
107
+ end
108
+
109
+ nil
110
+ end
111
+
98
112
  # Returns the predicted recovery time needed after this activity.
99
113
  # @return recovery time in seconds.
100
114
  def recovery_time
@@ -11,6 +11,7 @@
11
11
  #
12
12
 
13
13
  require 'fit4ruby/Activity'
14
+ require 'fit4ruby/Monitoring_B'
14
15
 
15
16
  module Fit4Ruby
16
17
 
@@ -43,6 +44,9 @@ module Fit4Ruby
43
44
  when 4, 'activity'
44
45
  @top_level_record = Activity.new
45
46
  @type = 'activity'
47
+ when 32, 'monitoring_b'
48
+ @top_level_record = Monitoring_B.new
49
+ @type = 'monitoring_b'
46
50
  else
47
51
  Log.error "Unsupported FIT file type #{type}"
48
52
  return nil
@@ -72,7 +72,7 @@ module Fit4Ruby
72
72
  end
73
73
 
74
74
  field_name, field_def = get_field_name_and_global_def(field, obj)
75
- obj.set(field_name, field.to_machine(value)) if obj
75
+ obj.set(field_name, v = (field_def || field).to_machine(value)) if obj
76
76
 
77
77
  if filter && fields_dump &&
78
78
  (filter.field_names.nil? ||
@@ -26,6 +26,33 @@ module Fit4Ruby
26
26
  entry 6, 'walking'
27
27
  entry 254, 'all'
28
28
 
29
+ dict 'activity_level'
30
+ entry 0, 'low'
31
+ entry 1, 'medium'
32
+ entry 2, 'high'
33
+
34
+ dict 'activity_subtype'
35
+ entry 0, 'generic'
36
+ entry 1, 'treadmill'
37
+ entry 2, 'street'
38
+ entry 3, 'trail'
39
+ entry 4, 'track'
40
+ entry 5, 'spin'
41
+ entry 6, 'indoor_cycling'
42
+ entry 7, 'road'
43
+ entry 8, 'mountain'
44
+ entry 9, 'downhill'
45
+ entry 10, 'recumbent'
46
+ entry 11, 'cyclocross'
47
+ entry 12, 'hand_cycling'
48
+ entry 13, 'track_cycling'
49
+ entry 14, 'indoor_rowing'
50
+ entry 15, 'elliptical'
51
+ entry 16, 'stair_climbing'
52
+ entry 17, 'lap_swimming'
53
+ entry 18, 'open_water'
54
+ entry 254, 'all'
55
+
29
56
  dict 'ant_network'
30
57
  entry 0, 'public'
31
58
  entry 1, 'antplus'
@@ -141,6 +168,16 @@ module Fit4Ruby
141
168
  entry 1930, 'fr220_japan'
142
169
  entry 1931, 'fr220_china'
143
170
  entry 1967, 'fenix2'
171
+ entry 1988, 'epix'
172
+ entry 2050, 'fenix3'
173
+ entry 2072, 'fr620_russia'
174
+ entry 2073, 'fr220_russia'
175
+ entry 2130, 'fr920xt_taiwan'
176
+ entry 2131, 'fr920xt_china'
177
+ entry 2132, 'fr920xt_japan'
178
+ entry 2173, 'fr620_taiwan'
179
+ entry 2188, 'fenix3_china'
180
+ entry 2189, 'fenix3_twn'
144
181
  entry 10007, 'sdm4'
145
182
  entry 20119, 'training_center'
146
183
  entry 65532, 'android_antplus_plugin'
@@ -258,6 +295,11 @@ module Fit4Ruby
258
295
  entry 255, 'development'
259
296
  entry 5759, 'actigraphcorp'
260
297
 
298
+ dict 'message_index'
299
+ entry 0x0FFF, 'mask'
300
+ entry 0x7000, 'reserved'
301
+ entry 0x8000, 'selected'
302
+
261
303
  dict 'session_trigger'
262
304
  entry 0, 'activity_end'
263
305
  entry 1, 'manual'
@@ -75,6 +75,12 @@ module Fit4Ruby
75
75
  value = fit_time_to_time(value).strftime("%Y-%m-%d %H:%M:%S")
76
76
  when 'duration'
77
77
  value = secsToDHMS(value)
78
+ when 'activity_intensity'
79
+ # Activity monitoring data contains a byte value that consists of 5
80
+ # bit for the activity type and 3 bit for the intensity. Activty 0x8
81
+ # is resting. Instead if value + unit we return activity type +
82
+ # intensity here.
83
+ return [ value & 0x1F, (value >> 5) & 0x7 ]
78
84
  end
79
85
  [ value, @opts[:unit] ]
80
86
  end
@@ -25,6 +25,7 @@ module Fit4Ruby
25
25
  field 3, 'uint32z', 'serial_number'
26
26
  field 4, 'uint32', 'time_created', :type => 'date_time'
27
27
  field 5, 'uint16', 'number'
28
+ field 6, 'uint16', 'undocumented_field_6'
28
29
 
29
30
  message 12, 'sport'
30
31
  field 0, 'enum', 'sport', :dict => 'sport'
@@ -34,6 +35,7 @@ module Fit4Ruby
34
35
  field 5, 'enum', 'undocumented_field_5'
35
36
  field 6, 'enum', 'undocumented_field_6'
36
37
  field 10, 'uint8', 'undocumented_field_10', :array => true
38
+ field 11, 'enum', 'undocumented_field_11'
37
39
 
38
40
  message 18, 'session'
39
41
  field 0, 'enum', 'event', :dict => 'event'
@@ -116,6 +118,18 @@ module Fit4Ruby
116
118
  field 108, 'uint16', 'undefined_value_108'
117
119
  field 109, 'uint8', 'undefined_value_109'
118
120
  field 110, 'string', 'undefined_value_110'
121
+ field 112, 'uint32', 'time_standing', :scale => 1000, :unit => 's'
122
+ field 113, 'uint16', 'stand_count'
123
+ field 114, 'sint8', 'avg_left_pco', :unit => 'mm'
124
+ field 115, 'sint8', 'avg_right_pco', :unit => 'mm'
125
+ field 116, 'uint8', 'avg_left_power_phase', :array => true, :unit => 'degrees'
126
+ field 117, 'uint8', 'avg_left_power_phase_peak', :array => true, :unit => 'degrees'
127
+ field 118, 'uint8', 'avg_right_power_phase', :array => true, :unit => 'degrees'
128
+ field 119, 'uint8', 'avg_right_power_phase_peak', :array => true, :unit => 'degrees'
129
+ field 120, 'uint16', 'avg_power_position', :array => true, :unit => 'watts'
130
+ field 121, 'uint16', 'max_power_position', :array => true, :unit => 'watts'
131
+ field 122, 'uint8', 'avg_cadence_position', :array => true, :unit => 'rpm'
132
+ field 123, 'uint8', 'max_cadence_position', :array => true, :unit => 'rpm'
119
133
  field 253, 'uint32', 'timestamp', :type => 'date_time'
120
134
  field 254, 'uint16', 'message_index'
121
135
 
@@ -189,6 +203,18 @@ module Fit4Ruby
189
203
  field 95, 'uint8', 'avg_combined_pedal_smoothness', :scale => 2, :unit => 'percent'
190
204
  field 96, 'uint16', 'undefined_value_96'
191
205
  field 97, 'uint16', 'undefined_value_97'
206
+ field 98, 'uint32', 'time_standing', :scale => 1000, :unit => 's'
207
+ field 99, 'uint16', 'stand_count'
208
+ field 100, 'sint8', 'avg_left_pco', :unit => 'mm'
209
+ field 101, 'sint8', 'avg_right_pco', :unit => 'mm'
210
+ field 102, 'uint8', 'avg_left_power_phase', :array => true, :unit => 'degrees'
211
+ field 103, 'uint8', 'avg_left_power_phase_peak', :array => true, :unit => 'degrees'
212
+ field 104, 'uint8', 'avg_right_power_phase', :array => true, :unit => 'degrees'
213
+ field 105, 'uint8', 'avg_right_power_phase_peak', :array => true, :unit => 'degrees'
214
+ field 106, 'uint16', 'avg_power_position', :array => true, :unit => 'watts'
215
+ field 107, 'uint16', 'max_power_position', :array => true, :unit => 'watts'
216
+ field 108, 'uint8', 'avg_cadence_position', :array => true, :unit => 'rpm'
217
+ field 109, 'uint8', 'max_cadence_position', :array => true, :unit => 'rpm'
192
218
  field 253, 'uint32', 'timestamp', :type => 'date_time'
193
219
  field 254, 'uint16', 'message_index'
194
220
 
@@ -200,6 +226,8 @@ module Fit4Ruby
200
226
  field 4, 'uint8', 'cadence', :unit => 'rpm'
201
227
  field 5, 'uint32', 'distance', :scale => 100, :unit => 'm'
202
228
  field 6, 'uint16', 'speed', :scale => 1000, :unit => 'm/s'
229
+ field 7, 'uint16', 'power', :unit => 'watts'
230
+ field 13, 'sint8', 'temperature', :unit => 'C'
203
231
  field 39, 'uint16', 'vertical_oscillation', :scale => 10, :unit => 'mm'
204
232
  field 40, 'uint16', 'stance_time_percent', :scale => 100, :unit => 'percent'
205
233
  field 41, 'uint16', 'stance_time', :scale => 10, :unit => 'ms'
@@ -225,15 +253,14 @@ module Fit4Ruby
225
253
  field 4, 'uint8', 'event_group'
226
254
  field 253, 'uint32', 'timestamp', :type => 'date_time'
227
255
 
228
- # Possibly the signal quality of the best 6 satellites; Not documented in
229
- # FIT SDK
230
- message 22, 'gps_signals'
231
- field 0, 'uint8', 'Satellite 1'
232
- field 1, 'uint8', 'Satellite 2'
233
- field 2, 'uint8', 'Satellite 3'
234
- field 3, 'uint8', 'Satellite 4'
235
- field 4, 'uint8', 'Satellite 5'
236
- field 5, 'enum', 'lock_status'
256
+ # Possibly the status of the sensors; Not documented in FIT SDK
257
+ message 22, 'sensor_status'
258
+ field 0, 'uint8', 'undocumented_field_0' # 1 - 5 or no value seen
259
+ field 1, 'uint8', 'undocumented_field_1' # Always identical to field 0
260
+ field 2, 'uint8', 'undocumented_field_2' # 1 - 5 or no value seen
261
+ field 3, 'uint8', 'undocumented_field_3' # 1, 3, 5 or no value seen
262
+ field 4, 'uint8', 'undocumented_field_4' # 1 - 3 or no value seen
263
+ field 5, 'enum', 'undocumented_field_5' # 0 or 3 seen
237
264
  field 6, 'uint8', 'undocumented_field_6' # First found in FR920XT
238
265
  field 14, 'uint8', 'undocumented_field_14' # First found in FR920XT
239
266
  field 253, 'uint32', 'timestamp', :type => 'date_time'
@@ -245,7 +272,7 @@ module Fit4Ruby
245
272
  field 3, 'uint32z', 'serial_number'
246
273
  alt_field 4, 'manufacturer' do
247
274
  field :default, 'uint16', 'product'
248
- field 'garmin', 'uint16', 'garmin_product', :dict => 'garmin_product'
275
+ field [ 'garmin', 'dynastream', 'dynastream_oem' ], 'uint16', 'garmin_product', :dict => 'garmin_product'
249
276
  end
250
277
  field 5, 'uint16', 'software_version', :scale => 100
251
278
  field 6, 'uint8', 'hardware_version'
@@ -263,6 +290,18 @@ module Fit4Ruby
263
290
  field 25, 'enum', 'source_type', :dict => 'source_type'
264
291
  field 253, 'uint32', 'timestamp', :type => 'date_time'
265
292
 
293
+ # Message 29 is just a guess. It's not officially documented.
294
+ # Found in LCTNS.FIT on Fenix 3
295
+ message 29, 'location'
296
+ field 0, 'string', 'name'
297
+ field 1, 'sint32', 'position_lat', :type => 'coordinate'
298
+ field 2, 'sint32', 'position_long', :type => 'coordinate'
299
+ field 3, 'uint16', 'undocumented_field_3'
300
+ field 4, 'uint16', 'altitude', :scale => 5, :offset => 500, :unit => 'm'
301
+ field 5, 'uint16', 'undocumented_field_5'
302
+ field 253, 'uint32', 'undocumented_field_253'
303
+ field 254, 'uint16', 'location_index'
304
+
266
305
  message 33, 'totals'
267
306
  field 0, 'uint32', 'timer_time', :unit => 's'
268
307
  field 1, 'uint32', 'distance', :unit => 'm'
@@ -284,9 +323,37 @@ module Fit4Ruby
284
323
  field 6, 'uint8', 'event_group'
285
324
  field 253, 'uint32', 'timestamp', :type => 'date_time'
286
325
 
326
+ message 35, 'software'
327
+ field 3, 'uint16', 'version', :scale => 100
328
+ field 5, 'string', 'part_number'
329
+
287
330
  message 49, 'file_creator'
288
331
  field 0, 'uint16', 'software_version'
289
332
  field 1, 'uint8', 'hardware_version'
333
+ field 254, 'uint16', 'message_index', :dict => 'message_index'
334
+
335
+ message 55, 'monitoring'
336
+ field 0, 'enum', 'device_index'
337
+ field 1, 'uint16', 'calories', :unit => 'kcal'
338
+ field 2, 'uint32', 'distance', :scale => 100, :unit => 'm'
339
+ field 5, 'enum', 'activity_type'
340
+ alt_field 3, 'activity_type' do
341
+ field :default, 'uint32', 'cycles', :scale => 2, :unit => 'cycles'
342
+ field [ 'walking', 'running' ], 'uint32', 'steps', :unit => 'steps'
343
+ field [ 'cycling', 'swimming' ], 'uint32', 'strokes', :scale => 2, :unit => 'strokes'
344
+ end
345
+ field 4, 'uint32', 'active_time', :scale => 1000, :unit => 's'
346
+ field 6, 'enum', 'activity_sub_type'
347
+ field 7, 'enum', 'activity_level'
348
+ field 8, 'uint16', 'distance_16', :scale => 0.1, :unit => 'km'
349
+ field 9, 'uint16', 'cycles_16', :scale => 0.5, :unit => 'cycles'
350
+ field 10, 'uint16', 'active_time_16', :unit => 's'
351
+ field 11, 'uint16', 'local_timestamp'
352
+ field 19, 'uint16', 'active_calories', :unit => 'kcal'
353
+ field 24, 'byte', 'current_activity_type_intensity', :type => 'activity_intensity'
354
+ field 26, 'uint16', 'timestamp16', :unit => 's'
355
+ field 29, 'uint16', 'duration_min', :unit => 'min'
356
+ field 253, 'uint32', 'timestamp', :type => 'date_time'
290
357
 
291
358
  message 72, 'training_file'
292
359
  field 0, 'enum', 'type'
@@ -316,10 +383,20 @@ module Fit4Ruby
316
383
  field 9, 'uint16', 'undocumented_field_9' # maybe activity measurement
317
384
  field 253, 'uint32', 'timestamp', :type => 'date_time'
318
385
 
386
+ message 103, 'monitoring_info'
387
+ field 0, 'uint32', 'local_time', :type => 'date_time'
388
+ field 1, 'enum', 'activity_type', :array => true, :dict => 'activity_type'
389
+ field 3, 'uint16', 'cycles_to_distance', :array => true, :scale => 5000, :unit => 'm/cycle'
390
+ field 4, 'uint16', 'cycle_to_calories', :array => true, :scale => 5000, :unit => 'kcal/cycle'
391
+ field 5, 'uint16', 'resting_metabolic_rate', :unit => 'kcal/day'
392
+ # Just a guess, not officially documented
393
+ field 7, 'uint32', 'goal_cycles', :array => true
394
+ field 253, 'uint32', 'timestamp', :type => 'date_time'
395
+
319
396
  # Not part of the official ANT SDK doc
320
397
  message 113, 'personal_records'
321
398
  field 0, 'uint16', 'longest_distance'
322
- field 1, 'enum', 'undocumented_field_1' # Seems to be always 1
399
+ field 1, 'enum', 'sport', :dict => 'sport'
323
400
  field 2, 'uint32', 'distance', :scale => 100, :unit => 'm'
324
401
  # If longest_distance is 1, field 3 is the distance, not a duration!
325
402
  field 3, 'uint32', 'duration', :scale => 1000, :type => 'duration'
@@ -63,7 +63,7 @@ module Fit4Ruby
63
63
 
64
64
  # Compute the average stride length for this Session.
65
65
  def avg_stride_length
66
- return nil unless @total_strides
66
+ return nil unless @total_distance && @total_strides
67
67
 
68
68
  @total_distance / (@total_strides * 2.0)
69
69
  end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby -w
2
+ # encoding: UTF-8
3
+ #
4
+ # = Monitoring.rb -- Fit4Ruby - FIT file processing library for Ruby
5
+ #
6
+ # Copyright (c) 2015 by Chris Schlaeger <cs@taskjuggler.org>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of version 2 of the GNU General Public License as
10
+ # published by the Free Software Foundation.
11
+ #
12
+
13
+ require 'fit4ruby/FitDataRecord'
14
+
15
+ module Fit4Ruby
16
+
17
+ class Monitoring < FitDataRecord
18
+
19
+ def initialize(field_values = {})
20
+ super('monitoring')
21
+ set_field_values(field_values)
22
+ end
23
+
24
+ end
25
+
26
+ end
27
+
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby -w
2
+ # encoding: UTF-8
3
+ #
4
+ # = MonitoringInfo.rb -- Fit4Ruby - FIT file processing library for Ruby
5
+ #
6
+ # Copyright (c) 2015 by Chris Schlaeger <cs@taskjuggler.org>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of version 2 of the GNU General Public License as
10
+ # published by the Free Software Foundation.
11
+ #
12
+
13
+ require 'fit4ruby/FitDataRecord'
14
+
15
+ module Fit4Ruby
16
+
17
+ class MonitoringInfo < FitDataRecord
18
+
19
+ def initialize(field_values = {})
20
+ super('monitoring_info')
21
+ set_field_values(field_values)
22
+ end
23
+
24
+ end
25
+
26
+ end
27
+
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env ruby -w
2
+ # encoding: UTF-8
3
+ #
4
+ # = Monitoring_B.rb -- Fit4Ruby - FIT file processing library for Ruby
5
+ #
6
+ # Copyright (c) 2015 by Chris Schlaeger <cs@taskjuggler.org>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of version 2 of the GNU General Public License as
10
+ # published by the Free Software Foundation.
11
+ #
12
+
13
+ require 'fit4ruby/FitDataRecord'
14
+ require 'fit4ruby/FileId'
15
+ require 'fit4ruby/DeviceInfo'
16
+ require 'fit4ruby/Software'
17
+ require 'fit4ruby/MonitoringInfo'
18
+ require 'fit4ruby/Monitoring'
19
+
20
+ module Fit4Ruby
21
+
22
+ # The Monitoring_B object is a FIT file class. It's a top-level object that
23
+ # holds all references to other FIT records that are part of the FIT file.
24
+ # Each of the objects it references are direct equivalents of the message
25
+ # record structures used in the FIT file.
26
+ class Monitoring_B < FitDataRecord
27
+
28
+ attr_accessor :file_id, :device_infos, :software, :monitoring_infos,
29
+ :monitorings
30
+
31
+ # Create a new Monitoring_B object.
32
+ # @param field_values [Hash] A Hash that provides initial values for
33
+ # certain fields of the FitDataRecord.
34
+ def initialize(field_values = {})
35
+ super('activity')
36
+ @num_sessions = 0
37
+
38
+ @file_id = FileId.new
39
+ @device_infos = []
40
+ @softwares = nil
41
+ @monitoring_infos = []
42
+ @monitorings = []
43
+ end
44
+
45
+ # Perform some basic logical checks on the object and all references sub
46
+ # objects. Any errors will be reported via the Log object.
47
+ def check
48
+ end
49
+
50
+ # Create a new FitDataRecord.
51
+ # @param record_type [String] Type that identifies the FitDataRecord
52
+ # derived class to create.
53
+ # @param field_values [Hash] A Hash that provides initial values for
54
+ # certain fields of the FitDataRecord.
55
+ # @return FitDataRecord
56
+ def new_fit_data_record(record_type, field_values = {})
57
+ case record_type
58
+ when 'file_id'
59
+ @file_id = (record = FileId.new(field_values))
60
+ when 'software'
61
+ @software = (record = Software.new(field_values))
62
+ when 'device_info'
63
+ @device_infos << (record = DeviceInfo.new(field_values))
64
+ when 'monitoring_info'
65
+ @monitoring_infos << (record = MonitoringInfo.new(field_values))
66
+ when 'monitoring'
67
+ @monitorings << (record = Monitoring.new(field_values))
68
+ else
69
+ record = nil
70
+ end
71
+
72
+ record
73
+ end
74
+
75
+ end
76
+
77
+ end
78
+
@@ -40,7 +40,11 @@ module Fit4Ruby
40
40
 
41
41
  # Convert the 'speed' field into a running pace. The pace is measured in
42
42
  # minutes per Kilometer.
43
+ # @return [Float or nil] pace for this Record in m/s or nil if not
44
+ # available.
43
45
  def pace
46
+ return nil unless @speed
47
+
44
48
  1000.0 / (@speed * 60.0)
45
49
  end
46
50
 
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby -w
2
+ # encoding: UTF-8
3
+ #
4
+ # = Software.rb -- Fit4Ruby - FIT file processing library for Ruby
5
+ #
6
+ # Copyright (c) 2015 by Chris Schlaeger <cs@taskjuggler.org>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of version 2 of the GNU General Public License as
10
+ # published by the Free Software Foundation.
11
+ #
12
+
13
+ require 'fit4ruby/FitDataRecord'
14
+
15
+ module Fit4Ruby
16
+
17
+ class Software < FitDataRecord
18
+
19
+ def initialize(field_values = {})
20
+ super('software')
21
+ set_field_values(field_values)
22
+ end
23
+
24
+ end
25
+
26
+ end
27
+
@@ -1,4 +1,4 @@
1
1
  module Fit4Ruby
2
2
  # The version number of the library.
3
- VERSION = '0.0.5'
3
+ VERSION = '0.0.6'
4
4
  end
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = FitFile_spec.rb -- Fit4Ruby - FIT file processing library for Ruby
5
5
  #
6
- # Copyright (c) 2014 by Chris Schlaeger <cs@taskjuggler.org>
6
+ # Copyright (c) 2014, 2015 by Chris Schlaeger <cs@taskjuggler.org>
7
7
  #
8
8
  # This program is free software; you can redistribute it and/or modify
9
9
  # it under the terms of version 2 of the GNU General Public License as
@@ -22,8 +22,8 @@ describe Fit4Ruby do
22
22
  :max_hr => 178 })
23
23
 
24
24
  a.new_event({ :event => 'timer', :event_type => 'start_time' })
25
- a.new_device_info({ :device_index => 0, :manufacturer => 'garmin' })
26
- a.new_device_info({ :device_index => 1, :manufacturer => 'garmin',
25
+ a.new_device_info({ :device_index => 0, :manufacturer => 'development' })
26
+ a.new_device_info({ :device_index => 1, :manufacturer => 'development',
27
27
  :battery_status => 'ok' })
28
28
  ts = Time.now
29
29
  0.upto(a.total_timer_time / 60) do |mins|
@@ -58,9 +58,9 @@ describe Fit4Ruby do
58
58
  a.new_event({ :timestamp => ts, :event => 'timer',
59
59
  :event_type => 'stop_all' })
60
60
  a.new_device_info({ :timestamp => ts, :device_index => 0,
61
- :manufacturer => 'garmin' })
61
+ :manufacturer => 'development' })
62
62
  ts += 1
63
- a.new_device_info({ :timestamp => ts, :manufacturer => 'garmin',
63
+ a.new_device_info({ :timestamp => ts, :manufacturer => 'development',
64
64
  :device_index => 1, :battery_status => 'low' })
65
65
  ts += 120
66
66
  a.new_event({ :timestamp => ts, :event => 'recovery_hr',
@@ -71,7 +71,7 @@ describe Fit4Ruby do
71
71
  @activity = a
72
72
  end
73
73
 
74
- it 'should write a simple FIT file and read it back' do
74
+ it 'should write an Activity FIT file and read it back' do
75
75
  fit_file = 'test.fit'
76
76
 
77
77
  File.delete(fit_file) if File.exists?(fit_file)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fit4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Schlaeger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-12 00:00:00.000000000 Z
11
+ date: 2015-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bindata
@@ -105,10 +105,14 @@ files:
105
105
  - lib/fit4ruby/GlobalFitMessages.rb
106
106
  - lib/fit4ruby/Lap.rb
107
107
  - lib/fit4ruby/Log.rb
108
+ - lib/fit4ruby/Monitoring.rb
109
+ - lib/fit4ruby/MonitoringInfo.rb
110
+ - lib/fit4ruby/Monitoring_B.rb
108
111
  - lib/fit4ruby/PersonalRecords.rb
109
112
  - lib/fit4ruby/Record.rb
110
113
  - lib/fit4ruby/RecordAggregator.rb
111
114
  - lib/fit4ruby/Session.rb
115
+ - lib/fit4ruby/Software.rb
112
116
  - lib/fit4ruby/UserProfile.rb
113
117
  - lib/fit4ruby/version.rb
114
118
  - spec/FitFile_spec.rb