fit4ruby 1.0.1 → 1.1.0
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.
- checksums.yaml +4 -4
- data/lib/fit4ruby/GlobalFitMessages.rb +9 -3
- data/lib/fit4ruby/Monitoring_B.rb +9 -0
- data/lib/fit4ruby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ff21e0bc29baae59a7611f60f21f03c764a39d7
|
4
|
+
data.tar.gz: 0591aa35d271c7f817ce6e51fbe5a49cfd8e7827
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7f3aba8f4af977f471802d237487120cf8481d87f9501f7f16b5ed40fbe5c0f9af8e6aa6f9fd754126de2abd227ce3d1a79c5ab555ff09448b88b553d65c838
|
7
|
+
data.tar.gz: d9aa3f31e00c80ffa963f6f4d83109ca61a460659b2611d353b3347b50059db6ead9f9478c38af4c48dc0aaa927d9fc3338b11b057e03bdee7c69d64b395b0b6
|
@@ -334,6 +334,12 @@ module Fit4Ruby
|
|
334
334
|
field 25, 'enum', 'source_type', :dict => 'source_type'
|
335
335
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
336
336
|
|
337
|
+
# This message was first seen on the Fenix3HR with firmware 3.0.
|
338
|
+
message 24, 'undocumented_24'
|
339
|
+
# The Array contains 16 bytes. Bytes 2(lsb) and 3(msb) seem to be a
|
340
|
+
# counter.
|
341
|
+
field 2, 'byte', 'undocumented_field_2', :array => true
|
342
|
+
|
337
343
|
# Message 29 is just a guess. It's not officially documented.
|
338
344
|
# Found in LCTNS.FIT on Fenix 3
|
339
345
|
message 29, 'location'
|
@@ -403,8 +409,8 @@ module Fit4Ruby
|
|
403
409
|
field 32, 'uint32', 'descent', :scale => 1000, :unit => 'm'
|
404
410
|
field 33, 'uint16', 'moderate_activity_minutes', :unit => 'minutes'
|
405
411
|
field 34, 'uint16', 'vigorous_activity_minutes', :unit => 'minutes'
|
406
|
-
field 35, 'uint32', '
|
407
|
-
field 36, 'uint32', '
|
412
|
+
field 35, 'uint32', 'floors_climbed', :scale => 1000, :unit => 'm' # just a guess, around 3.048m (10ft) per floor
|
413
|
+
field 36, 'uint32', 'floors_descended', :scale => 1000, :unit => 'm' # just a guess
|
408
414
|
field 37, 'uint16', 'weekly_moderate_activity_minutes', :unit => 'minutes' # just a guess
|
409
415
|
field 38, 'uint16', 'weekly_vigorous_activity_minutes', :unit => 'minutes' # just a guess
|
410
416
|
field 253, 'uint32', 'timestamp', :type => 'date_time'
|
@@ -464,7 +470,7 @@ module Fit4Ruby
|
|
464
470
|
field 0, 'uint32', 'local_time', :type => 'date_time'
|
465
471
|
field 1, 'enum', 'activity_type', :array => true, :dict => 'activity_type'
|
466
472
|
field 3, 'uint16', 'cycles_to_distance', :array => true, :scale => 5000, :unit => 'm/cycle'
|
467
|
-
field 4, 'uint16', '
|
473
|
+
field 4, 'uint16', 'cycles_to_calories', :array => true, :scale => 5000, :unit => 'kcal/cycle'
|
468
474
|
field 5, 'uint16', 'resting_metabolic_rate', :unit => 'kcal/day'
|
469
475
|
# Just a guess, not officially documented
|
470
476
|
field 7, 'uint32', 'goal_cycles', :array => true
|
@@ -46,6 +46,7 @@ module Fit4Ruby
|
|
46
46
|
# objects. Any errors will be reported via the Log object.
|
47
47
|
def check
|
48
48
|
last_timestamp = ts_16_offset = nil
|
49
|
+
last_ts_16 = nil
|
49
50
|
|
50
51
|
# The timestamp_16 is a 2 byte time stamp value that is used instead of
|
51
52
|
# the 4 byte timestamp field for monitoring records that have
|
@@ -54,11 +55,18 @@ module Fit4Ruby
|
|
54
55
|
# to be included in the file. However, it can be approximated using the
|
55
56
|
# surrounding timestamp values.
|
56
57
|
@monitorings.each do |record|
|
58
|
+
if last_ts_16 && ts_16_offset && record.timestamp_16 &&
|
59
|
+
record.timestamp_16 < last_ts_16
|
60
|
+
# Detect timestamp_16 wrap-arounds. timestamp_16 is a 16 bit value.
|
61
|
+
# In case of a wrap-around we adjust the ts_16_offset accordingly.
|
62
|
+
ts_16_offset += 2 ** 16
|
63
|
+
end
|
57
64
|
if ts_16_offset
|
58
65
|
# We have already found the offset. Adjust all timestamps according
|
59
66
|
# to 'offset + timestamp_16'
|
60
67
|
if record.timestamp_16
|
61
68
|
record.timestamp = ts_16_offset + record.timestamp_16
|
69
|
+
last_ts_16 = record.timestamp_16
|
62
70
|
end
|
63
71
|
else
|
64
72
|
# We are still looking for the offset.
|
@@ -70,6 +78,7 @@ module Fit4Ruby
|
|
70
78
|
# thinking here?
|
71
79
|
ts_16_offset = last_timestamp + 60 - record.timestamp_16
|
72
80
|
record.timestamp = ts_16_offset + record.timestamp_16
|
81
|
+
last_ts_16 = record.timestamp_16
|
73
82
|
else
|
74
83
|
# Just save the timestamp of the current record.
|
75
84
|
last_timestamp = record.timestamp
|
data/lib/fit4ruby/version.rb
CHANGED
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: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Schlaeger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bindata
|