f4r 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9e07ad83a240f3a15d0f288f65b266d97fe0cb7aeb1f80debd9dbf8af77f4c08
4
+ data.tar.gz: f343612555b00b7f98580724f800fb9ff543b12c95db1cbc4845c1e31dc879d1
5
+ SHA512:
6
+ metadata.gz: 6489163904617ea821c394aee20108433eedba399d80e5a57896e76b430382082a7bb9c51646deb99c40933e1b44c47d56a5127030dbeb3ec397037bc3f735af
7
+ data.tar.gz: 0f4c7e35ce92cd43912a166d859d94b1c241580f7d3afb4866e296231a1ac09098f6517692ab97112271ad989a74517c54a5f2a9f09beb7ee1e80fbe77c1841d
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /logs/
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.4.1
7
+ before_install: gem install bundler -v 2.0.2
@@ -0,0 +1,39 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file. This
4
+ project adheres to [Semantic Versioning 2.0.0][semver]. Any violations of this
5
+ scheme are considered to be bugs.
6
+
7
+ [semver]: http://semver.org/spec/v2.0.0.html
8
+
9
+ ## [Unreleased][unreleased]
10
+
11
+ [unreleased]: https://github.com/jpablobr/f4r/compare/v0.1.0...master
12
+
13
+ ### Added
14
+
15
+ * Your contribution here.
16
+
17
+ ### Changed
18
+
19
+ * Your contribution here.
20
+
21
+ ### Deprecated
22
+
23
+ * Your contribution here.
24
+
25
+ ### Removed
26
+
27
+ * Your contribution here.
28
+
29
+ ### Fixed
30
+
31
+ * Your contribution here.
32
+
33
+ ### Security
34
+
35
+ * Your contribution here.
36
+
37
+ ### Miscellaneous
38
+
39
+ * Your contribution here.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in f4r.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 jpablobr
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,178 @@
1
+ # F4R
2
+
3
+ Simple Ruby library for encoding/decoding and editing [FIT (ANT+)](https://www.thisisant.com/developer/resources/downloads) binary files.
4
+
5
+ [Library Documentation](https://rdoc.info/github/jpablobr/f4r)
6
+
7
+ ## Features
8
+
9
+ - Decoded data stored in plain Ruby objects.
10
+
11
+ - Decoded data stored with (as much as possible) meta-data from the FIT file and from the binary definitions (e.i., the data from the specific file's activity and the one from its associated FIT SDK profile data).
12
+
13
+ - Decoded data stored in its original state as much as possible. This means that the data will not get converted or scaled, also meaning that sub-fields will not get "expanded" or converted into the values they are supposed to represent (according to the FIT SDK), this needs to happen at the specific app level where F4R will be used.
14
+
15
+ - Encoder allows to build FIT binary files from scratch and also from a source/template FIT file to serve as a reference to help preserve/replicate a specific binary structure. This is important given that sometimes, even if the resulting FIT file is valid, it might not be for specific parsers such as Garmin/TrainingPeaks, etc... So preserving the structure, size or meta-data might be important in certain scenarios.
16
+
17
+ ## F4R-CLI (TODO)
18
+
19
+ F4R-CLI is a command line tool to help with the interpretation (conversion, scaling, editing, import/export) of the decoded/encoded FIT files. As F4R's main aim is to be (and stay) as simple and minimal as possible, it might not be enough for getting usable human readable (or interpretable) data, so F4R-CLI is meant to help with that and also as an example for other apps.
20
+
21
+ https://github.com/jpablobr/f4r-cli
22
+
23
+ ## Installation
24
+
25
+ Add this line to your application's Gemfile:
26
+
27
+ ```ruby
28
+ gem 'f4r'
29
+ ```
30
+
31
+ And then execute:
32
+
33
+ $ bundle
34
+
35
+ Or install it yourself as:
36
+
37
+ $ gem install f4r
38
+
39
+ ## Instant gratification
40
+
41
+ ```ruby
42
+ >> require 'f4r'
43
+ >> records = F4R::decode(path_to_fit_file).records
44
+ >> laps = records.select { |r| r[:message_name] == :lap }
45
+ >> laps.last[:fields][:max_heart_rate]
46
+ => {:value=>180,
47
+ :index => 21,
48
+ :base_type=>:uint8,
49
+ :message_name=>"lap",
50
+ :message_number=>19,
51
+ :source => "FIT SDK 2.1",
52
+ :properties=>
53
+ {:field_def=>16,
54
+ :field_name=>"max_heart_rate",
55
+ :field_type=>"uint8",
56
+ :array=>nil,
57
+ :components=>nil,
58
+ :scale=>nil,
59
+ :offset=>nil,
60
+ :units=>"bpm",
61
+ :bits=>nil,
62
+ :accumulate=>nil,
63
+ :ref_field_name=>nil,
64
+ :ref_field_value=>nil,
65
+ :comment=>nil,
66
+ :products=>nil,
67
+ :example=>"1"}}
68
+ ```
69
+
70
+ ## Usage
71
+
72
+ ### Logging
73
+
74
+ F4R has 3 built-in loggers that you can override. By default, the main logger logs to STDOUT and the other two (decode and encode loggers) log to `/tmp/` but can be replaced by any Logger class.
75
+
76
+ ```ruby
77
+ F4R::Log.logger = Logger.new('/tmp/f4r.log')
78
+ F4R::Log.encode_logger = F4R::Logger.new($stdout)
79
+ F4R::Log.decode_logger = F4R::Logger.new($stdout)
80
+ ```
81
+ #### Colour output
82
+
83
+ Colour output can be enabled or disabled.
84
+
85
+ ```ruby
86
+ F4R::Log.color = true
87
+ ```
88
+
89
+ #### Severity level
90
+
91
+ Severity level can be enabled or disabled.
92
+
93
+ ```ruby
94
+ F4R::Log.level = :info # :error, etc...
95
+
96
+ # Logger severity Level 8+ take precedence
97
+ # over all the rest silencing them.
98
+ # F4R::Log.level = 8
99
+ ```
100
+
101
+ ### Config Directory
102
+
103
+ By default F4R reads all FIT configuration files (FIT SDK Profile messages and types) from the `config` directory. This directory also provides **guessed** messages and types (`undocumented_messages.csv` and `undocumented_types.csv`) to help with the encoding/decoding process. If a `~/.f4r` directory exists F4R will read from this directory but the directory can be replaced via the `Config` class.
104
+
105
+ ```ruby
106
+ F4R::Config.directory = '~/my-f4r'
107
+ ```
108
+
109
+ This is mostly to allow for modification of the undocumented messages and types easier.
110
+
111
+ ### Encoding
112
+
113
+ ```ruby
114
+ require 'f4r'
115
+
116
+ # Records with minimum required data.
117
+ # (Similar to required data in the FitCSVTool.jar from the FIT SDK)
118
+ records = [
119
+ {
120
+ message_name: :file_id,
121
+ local_message_number: 0,
122
+ fields: {
123
+ serial_number: {value: 123456789},
124
+ type: {value: 4},
125
+ manufacturer: {value: 1}}},
126
+ {
127
+ message_name: :device_info,
128
+ local_message_number: 1,
129
+ fields: {
130
+ timestamp: {value: 939346537},
131
+ source_type: {value: 1},
132
+ device_index: {value: 0},
133
+ manufacturer: {value: 1},
134
+ serial_number: {value: 123456789},
135
+ undocumented_field_29: {value: [0, 1, 2, 3, 4, 5]}}
136
+ }
137
+ ...
138
+ ]
139
+
140
+ F4R::encode(file_name, records) #=> file_name
141
+
142
+ # Optionally, the third argument `source` file can be passed as well.
143
+ # It will be used as a binary structure reference.
144
+
145
+ F4R::encode(file_name, records, source_fit_file) #=> file_name
146
+ ```
147
+
148
+ ### Decoding
149
+
150
+ ```ruby
151
+ F4R::decode(path_to_fit_file).records #=> Array of record Hashes
152
+ ```
153
+
154
+ ## TODO
155
+
156
+ - Documentation.
157
+ - Support for FIT Developer Data fields.
158
+ - Support for FIT Compressed Timestamp headers.
159
+ - Move logging to separate gem.
160
+
161
+ (PRs welcome!)
162
+
163
+ ## Reporting Bugs and Requesting Features
164
+
165
+ Please use the issues section to report bugs and request features. This section is also used as the TODO area for the F4R gem.
166
+
167
+ ## Development
168
+
169
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
170
+
171
+ ## Contributing
172
+
173
+ Bug reports and pull requests are welcome on GitHub at https://github.com/jpablobr/f4r.
174
+
175
+ ## License
176
+
177
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
178
+
@@ -0,0 +1,11 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
+ t.warning = false
8
+ t.test_files = FileList['test/**/*_test.rb']
9
+ end
10
+
11
+ task default: :test
@@ -0,0 +1,19 @@
1
+ number,fit,bindata,bindata_en,endian,bytes,undef
2
+ 0,enum,uint8,uint8le,0,1,0xFF
3
+ 1,sint8,int8,int8le,0,1,0x7F
4
+ 2,uint8,uint8,uint8le,0,1,0xFF
5
+ 3,sint16,int16,int16be,1,2,0x7FFF
6
+ 4,uint16,uint16,uint16be,1,2,0xFFFF
7
+ 5,sint32,int32,int32be,1,4,0x7FFFFFFF
8
+ 6,uint32,uint32,uint32be,1,4,0xFFFFFFFF
9
+ 7,string,string,string,0,1,""
10
+ 8,float32,float,floatbe,1,4,0xFFFFFFFF
11
+ 9,float63,double,doublebe,1,4,0xFFFFFFFF
12
+ 10,uint8z,uint8,uint8le,0,1,0
13
+ 11,uint16z,uint16,uint16be,1,2,0
14
+ 12,uint32z,uint32,uint32be,1,4,0
15
+ 13,byte,uint8,uint8le,0,1,0xFF
16
+ 14,sint64,int64,int64be,1,8,0x7FFFFFFFFFFFFFFF
17
+ 15,uint64,uint64,uint64be,1,8,0xFFFFFFFFFFFFFFFF
18
+ 16,uint64z,uint64,uint64be,1,8,0
19
+ 17,bool,uint8,uint8le,0,1,0
@@ -0,0 +1,1364 @@
1
+ Message Name,Field Def #,Field Name,Field Type,Array,Components,Scale,Offset,Units,Bits,Accumulate,Ref Field Name,Ref Field Value,Comment,Products:,EXAMPLE
2
+ ,,,COMMON MESSAGES,,,,,,,,,,,,
3
+ file_id,,,,,,,,,,,,,Must be first message in file.,,
4
+ ,0,type,file,,,,,,,,,,,,1
5
+ ,1,manufacturer,manufacturer,,,,,,,,,,,,1
6
+ ,2,product,uint16,,,,,,,,,,,,1
7
+ ,,favero_product,favero_product,,,,,,,,manufacturer,favero_electronics,,,
8
+ ,,garmin_product,garmin_product,,,,,,,,"manufacturer,
9
+ manufacturer,
10
+ manufacturer","garmin,
11
+ dynastream,
12
+ dynastream_oem",,,1
13
+ ,3,serial_number,uint32z,,,,,,,,,,,,1
14
+ ,4,time_created,date_time,,,,,,,,,,Only set for files that are can be created/erased.,,1
15
+ ,5,number,uint16,,,,,,,,,,Only set for files that are not created/erased.,,1
16
+ ,8,product_name,string,,,,,,,,,,Optional free form string to indicate the devices name or model,,20
17
+ ,,,,,,,,,,,,,,,
18
+ file_creator,,,,,,,,,,,,,,,
19
+ ,0,software_version,uint16,,,,,,,,,,,,1
20
+ ,1,hardware_version,uint8,,,,,,,,,,,,1
21
+ ,,,,,,,,,,,,,,,
22
+ timestamp_correlation,,,,,,,,,,,,,,,
23
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of UTC timestamp at the time the system timestamp was recorded.,,
24
+ ,0,fractional_timestamp,uint16,,,32768,,s,,,,,Fractional part of the UTC timestamp at the time the system timestamp was recorded.,,
25
+ ,1,system_timestamp,date_time,,,,,s,,,,,Whole second part of the system timestamp,,
26
+ ,2,fractional_system_timestamp,uint16,,,32768,,s,,,,,Fractional part of the system timestamp,,
27
+ ,3,local_timestamp,local_date_time,,,,,s,,,,,timestamp epoch expressed in local time used to convert timestamps to local time,,
28
+ ,4,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the UTC timestamp at the time the system timestamp was recorded.,,
29
+ ,5,system_timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the system timestamp,,
30
+ ,,,,,,,,,,,,,,,
31
+ ,,,DEVICE FILE MESSAGES,,,,,,,,,,,,
32
+ software,,,,,,,,,,,,,,,
33
+ ,254,message_index,message_index,,,,,,,,,,,,1
34
+ ,3,version,uint16,,,100,,,,,,,,,1
35
+ ,5,part_number,string,,,,,,,,,,,,16
36
+ ,,,,,,,,,,,,,,,
37
+ slave_device,,,,,,,,,,,,,,,
38
+ ,0,manufacturer,manufacturer,,,,,,,,,,,,1
39
+ ,1,product,uint16,,,,,,,,,,,,1
40
+ ,,favero_product,favero_product,,,,,,,,manufacturer,favero_electronics,,,
41
+ ,,garmin_product,garmin_product,,,,,,,,"manufacturer,
42
+ manufacturer,
43
+ manufacturer","garmin,
44
+ dynastream,
45
+ dynastream_oem",,,1
46
+ ,,,,,,,,,,,,,,,
47
+ capabilities,,,,,,,,,,,,,,,
48
+ ,0,languages,uint8z,[N],,,,,,,,,Use language_bits_x types where x is index of array.,,4
49
+ ,1,sports,sport_bits_0,[N],,,,,,,,,Use sport_bits_x types where x is index of array.,,1
50
+ ,21,workouts_supported,workout_capabilities,,,,,,,,,,,,1
51
+ ,23,connectivity_supported,connectivity_capabilities,,,,,,,,,,,,1
52
+ ,,,,,,,,,,,,,,,
53
+ file_capabilities,,,,,,,,,,,,,,,
54
+ ,254,message_index,message_index,,,,,,,,,,,,1
55
+ ,0,type,file,,,,,,,,,,,,1
56
+ ,1,flags,file_flags,,,,,,,,,,,,1
57
+ ,2,directory,string,,,,,,,,,,,,16
58
+ ,3,max_count,uint16,,,,,,,,,,,,1
59
+ ,4,max_size,uint32,,,,,bytes,,,,,,,1
60
+ ,,,,,,,,,,,,,,,
61
+ mesg_capabilities,,,,,,,,,,,,,,,
62
+ ,254,message_index,message_index,,,,,,,,,,,,1
63
+ ,0,file,file,,,,,,,,,,,,1
64
+ ,1,mesg_num,mesg_num,,,,,,,,,,,,1
65
+ ,2,count_type,mesg_count,,,,,,,,,,,,1
66
+ ,3,count,uint16,,,,,,,,,,,,1
67
+ ,,num_per_file,uint16,,,,,,,,count_type,num_per_file,,,1
68
+ ,,max_per_file,uint16,,,,,,,,count_type,max_per_file,,,1
69
+ ,,max_per_file_type,uint16,,,,,,,,count_type,max_per_file_type,,,1
70
+ ,,,,,,,,,,,,,,,
71
+ field_capabilities,,,,,,,,,,,,,,,
72
+ ,254,message_index,message_index,,,,,,,,,,,,1
73
+ ,0,file,file,,,,,,,,,,,,1
74
+ ,1,mesg_num,mesg_num,,,,,,,,,,,,1
75
+ ,2,field_num,uint8,,,,,,,,,,,,1
76
+ ,3,count,uint16,,,,,,,,,,,,1
77
+ ,,,,,,,,,,,,,,,
78
+ ,,,SETTINGS FILE MESSAGES,,,,,,,,,,,,
79
+ device_settings,,,,,,,,,,,,,,,
80
+ ,0,active_time_zone,uint8,,,,,,,,,,Index into time zone arrays.,,1
81
+ ,1,utc_offset,uint32,,,,,,,,,,Offset from system time. Required to convert timestamp from system time to UTC.,,1
82
+ ,2,time_offset,uint32,[N],,,,s,,,,,Offset from system time.,,2
83
+ ,4,time_mode,time_mode,[N],,,,,,,,,Display mode for the time,,2
84
+ ,5,time_zone_offset,sint8,[N],,4,,hr,,,,,timezone offset in 1/4 hour increments,,2
85
+ ,12,backlight_mode,backlight_mode,,,,,,,,,,Mode for backlight,,1
86
+ ,36,activity_tracker_enabled,bool,,,,,,,,,,Enabled state of the activity tracker functionality,,1
87
+ ,39,clock_time,date_time,,,,,,,,,,UTC timestamp used to set the devices clock and date,,1
88
+ ,40,pages_enabled,uint16,[N],,,,,,,,,Bitfield to configure enabled screens for each supported loop,,1
89
+ ,46,move_alert_enabled,bool,,,,,,,,,,Enabled state of the move alert,,1
90
+ ,47,date_mode,date_mode,,,,,,,,,,Display mode for the date,,1
91
+ ,55,display_orientation,display_orientation,,,,,,,,,,,,1
92
+ ,56,mounting_side,side,,,,,,,,,,,,1
93
+ ,57,default_page,uint16,[N],,,,,,,,,Bitfield to indicate one page as default for each supported loop,,1
94
+ ,58,autosync_min_steps,uint16,,,,,steps,,,,,Minimum steps before an autosync can occur,,1
95
+ ,59,autosync_min_time,uint16,,,,,minutes,,,,,Minimum minutes before an autosync can occur,,1
96
+ ,80,lactate_threshold_autodetect_enabled,bool,,,,,,,,,,Enable auto-detect setting for the lactate threshold feature.,,
97
+ ,86,ble_auto_upload_enabled,bool,,,,,,,,,,Automatically upload using BLE,,
98
+ ,89,auto_sync_frequency,auto_sync_frequency,,,,,,,,,,Helps to conserve battery by changing modes,,
99
+ ,90,auto_activity_detect,auto_activity_detect,,,,,,,,,,Allows setting specific activities auto-activity detect enabled/disabled settings,,
100
+ ,94,number_of_screens,uint8,,,,,,,,,,Number of screens configured to display,,
101
+ ,95,smart_notification_display_orientation,display_orientation,,,,,,,,,,Smart Notification display orientation,,
102
+ ,134,tap_interface,switch,,,,,,,,,,,,
103
+ user_profile,,,,,,,,,,,,,,,
104
+ ,254,message_index,message_index,,,,,,,,,,,,1
105
+ ,0,friendly_name,string,,,,,,,,,,,,16
106
+ ,1,gender,gender,,,,,,,,,,,,1
107
+ ,2,age,uint8,,,,,years,,,,,,,1
108
+ ,3,height,uint8,,,100,,m,,,,,,,1
109
+ ,4,weight,uint16,,,10,,kg,,,,,,,1
110
+ ,5,language,language,,,,,,,,,,,,1
111
+ ,6,elev_setting,display_measure,,,,,,,,,,,,1
112
+ ,7,weight_setting,display_measure,,,,,,,,,,,,1
113
+ ,8,resting_heart_rate,uint8,,,,,bpm,,,,,,,1
114
+ ,9,default_max_running_heart_rate,uint8,,,,,bpm,,,,,,,1
115
+ ,10,default_max_biking_heart_rate,uint8,,,,,bpm,,,,,,,1
116
+ ,11,default_max_heart_rate,uint8,,,,,bpm,,,,,,,1
117
+ ,12,hr_setting,display_heart,,,,,,,,,,,,1
118
+ ,13,speed_setting,display_measure,,,,,,,,,,,,1
119
+ ,14,dist_setting,display_measure,,,,,,,,,,,,1
120
+ ,16,power_setting,display_power,,,,,,,,,,,,1
121
+ ,17,activity_class,activity_class,,,,,,,,,,,,1
122
+ ,18,position_setting,display_position,,,,,,,,,,,,1
123
+ ,21,temperature_setting,display_measure,,,,,,,,,,,,1
124
+ ,22,local_id,user_local_id,,,,,,,,,,,,1
125
+ ,23,global_id,byte,[6],,,,,,,,,,,1
126
+ ,28,wake_time,localtime_into_day,,,,,,,,,,Typical wake time,,
127
+ ,29,sleep_time,localtime_into_day,,,,,,,,,,Typical bed time,,
128
+ ,30,height_setting,display_measure,,,,,,,,,,,,1
129
+ ,31,user_running_step_length,uint16,,,1000,,m,,,,,User defined running step length set to 0 for auto length,,1
130
+ ,32,user_walking_step_length,uint16,,,1000,,m,,,,,User defined walking step length set to 0 for auto length,,1
131
+ ,47,depth_setting,display_measure,,,,,,,,,,,,
132
+ ,49,dive_count,uint32,,,,,,,,,,,,
133
+ ,,,,,,,,,,,,,,,
134
+ hrm_profile,,,,,,,,,,,,,,,
135
+ ,254,message_index,message_index,,,,,,,,,,,,1
136
+ ,0,enabled,bool,,,,,,,,,,,,1
137
+ ,1,hrm_ant_id,uint16z,,,,,,,,,,,,1
138
+ ,2,log_hrv,bool,,,,,,,,,,,,1
139
+ ,3,hrm_ant_id_trans_type,uint8z,,,,,,,,,,,,1
140
+ ,,,,,,,,,,,,,,,
141
+ sdm_profile,,,,,,,,,,,,,,,
142
+ ,254,message_index,message_index,,,,,,,,,,,,1
143
+ ,0,enabled,bool,,,,,,,,,,,,1
144
+ ,1,sdm_ant_id,uint16z,,,,,,,,,,,,1
145
+ ,2,sdm_cal_factor,uint16,,,10,,%,,,,,,,1
146
+ ,3,odometer,uint32,,,100,,m,,,,,,,1
147
+ ,4,speed_source,bool,,,,,,,,,,Use footpod for speed source instead of GPS,,1
148
+ ,5,sdm_ant_id_trans_type,uint8z,,,,,,,,,,,,1
149
+ ,7,odometer_rollover,uint8,,,,,,,,,,Rollover counter that can be used to extend the odometer,,1
150
+ ,,,,,,,,,,,,,,,
151
+ bike_profile,,,,,,,,,,,,,,,
152
+ ,254,message_index,message_index,,,,,,,,,,,,1
153
+ ,0,name,string,,,,,,,,,,,,16
154
+ ,1,sport,sport,,,,,,,,,,,,1
155
+ ,2,sub_sport,sub_sport,,,,,,,,,,,,1
156
+ ,3,odometer,uint32,,,100,,m,,,,,,,1
157
+ ,4,bike_spd_ant_id,uint16z,,,,,,,,,,,,1
158
+ ,5,bike_cad_ant_id,uint16z,,,,,,,,,,,,1
159
+ ,6,bike_spdcad_ant_id,uint16z,,,,,,,,,,,,1
160
+ ,7,bike_power_ant_id,uint16z,,,,,,,,,,,,1
161
+ ,8,custom_wheelsize,uint16,,,1000,,m,,,,,,,1
162
+ ,9,auto_wheelsize,uint16,,,1000,,m,,,,,,,1
163
+ ,10,bike_weight,uint16,,,10,,kg,,,,,,,1
164
+ ,11,power_cal_factor,uint16,,,10,,%,,,,,,,1
165
+ ,12,auto_wheel_cal,bool,,,,,,,,,,,,1
166
+ ,13,auto_power_zero,bool,,,,,,,,,,,,1
167
+ ,14,id,uint8,,,,,,,,,,,,1
168
+ ,15,spd_enabled,bool,,,,,,,,,,,,1
169
+ ,16,cad_enabled,bool,,,,,,,,,,,,1
170
+ ,17,spdcad_enabled,bool,,,,,,,,,,,,1
171
+ ,18,power_enabled,bool,,,,,,,,,,,,1
172
+ ,19,crank_length,uint8,,,2,-110,mm,,,,,,,1
173
+ ,20,enabled,bool,,,,,,,,,,,,1
174
+ ,21,bike_spd_ant_id_trans_type,uint8z,,,,,,,,,,,,1
175
+ ,22,bike_cad_ant_id_trans_type,uint8z,,,,,,,,,,,,1
176
+ ,23,bike_spdcad_ant_id_trans_type,uint8z,,,,,,,,,,,,1
177
+ ,24,bike_power_ant_id_trans_type,uint8z,,,,,,,,,,,,1
178
+ ,37,odometer_rollover,uint8,,,,,,,,,,Rollover counter that can be used to extend the odometer,,1
179
+ ,38,front_gear_num,uint8z,,,,,,,,,,Number of front gears,,1
180
+ ,39,front_gear,uint8z,[N],,,,,,,,,Number of teeth on each gear 0 is innermost,,1
181
+ ,40,rear_gear_num,uint8z,,,,,,,,,,Number of rear gears,,1
182
+ ,41,rear_gear,uint8z,[N],,,,,,,,,Number of teeth on each gear 0 is innermost,,1
183
+ ,44,shimano_di2_enabled,bool,,,,,,,,,,,,1
184
+ ,,,,,,,,,,,,,,,
185
+ connectivity,,,,,,,,,,,,,,,
186
+ ,0,bluetooth_enabled,bool,,,,,,,,,,Use Bluetooth for connectivity features,,1
187
+ ,1,bluetooth_le_enabled,bool,,,,,,,,,,Use Bluetooth Low Energy for connectivity features,,1
188
+ ,2,ant_enabled,bool,,,,,,,,,,Use ANT for connectivity features,,1
189
+ ,3,name,string,,,,,,,,,,,,24
190
+ ,4,live_tracking_enabled,bool,,,,,,,,,,,,1
191
+ ,5,weather_conditions_enabled,bool,,,,,,,,,,,,1
192
+ ,6,weather_alerts_enabled,bool,,,,,,,,,,,,1
193
+ ,7,auto_activity_upload_enabled,bool,,,,,,,,,,,,1
194
+ ,8,course_download_enabled,bool,,,,,,,,,,,,1
195
+ ,9,workout_download_enabled,bool,,,,,,,,,,,,1
196
+ ,10,gps_ephemeris_download_enabled,bool,,,,,,,,,,,,1
197
+ ,11,incident_detection_enabled,bool,,,,,,,,,,,,1
198
+ ,12,grouptrack_enabled,bool,,,,,,,,,,,,1
199
+ watchface_settings,,,,,,,,,,,,,,,
200
+ ,254,message_index,message_index,,,,,,,,,,,,
201
+ ,0,mode,watchface_mode,,,,,,,,,,,,
202
+ ,1,layout,byte,,,,,,,,,,,,
203
+ ,,digital_layout,digital_watchface_layout,,,,,,,,mode,digital,,,
204
+ ,,analog_layout,analog_watchface_layout,,,,,,,,mode,analog,,,
205
+ ohr_settings,,,,,,,,,,,,,,,
206
+ ,253,timestamp,date_time,,,,,s,,,,,,,
207
+ ,0,enabled,switch,,,,,,,,,,,,
208
+ ,,,SPORT SETTINGS FILE MESSAGES,,,,,,,,,,,,
209
+ zones_target,,,,,,,,,,,,,,,
210
+ ,1,max_heart_rate,uint8,,,,,,,,,,,,1
211
+ ,2,threshold_heart_rate,uint8,,,,,,,,,,,,1
212
+ ,3,functional_threshold_power,uint16,,,,,,,,,,,,1
213
+ ,5,hr_calc_type,hr_zone_calc,,,,,,,,,,,,1
214
+ ,7,pwr_calc_type,pwr_zone_calc,,,,,,,,,,,,1
215
+ ,,,,,,,,,,,,,,,
216
+ sport,,,,,,,,,,,,,,,
217
+ ,0,sport,sport,,,,,,,,,,,,1
218
+ ,1,sub_sport,sub_sport,,,,,,,,,,,,1
219
+ ,3,name,string,,,,,,,,,,,,16
220
+ ,,,,,,,,,,,,,,,
221
+ hr_zone,,,,,,,,,,,,,,,
222
+ ,254,message_index,message_index,,,,,,,,,,,,1
223
+ ,1,high_bpm,uint8,,,,,bpm,,,,,,,1
224
+ ,2,name,string,,,,,,,,,,,,16
225
+ ,,,,,,,,,,,,,,,
226
+ speed_zone,,,,,,,,,,,,,,,
227
+ ,254,message_index,message_index,,,,,,,,,,,,1
228
+ ,0,high_value,uint16,,,1000,,m/s,,,,,,,1
229
+ ,1,name,string,,,,,,,,,,,,16
230
+ ,,,,,,,,,,,,,,,
231
+ cadence_zone,,,,,,,,,,,,,,,
232
+ ,254,message_index,message_index,,,,,,,,,,,,1
233
+ ,0,high_value,uint8,,,,,rpm,,,,,,,1
234
+ ,1,name,string,,,,,,,,,,,,16
235
+ ,,,,,,,,,,,,,,,
236
+ power_zone,,,,,,,,,,,,,,,
237
+ ,254,message_index,message_index,,,,,,,,,,,,1
238
+ ,1,high_value,uint16,,,,,watts,,,,,,,1
239
+ ,2,name,string,,,,,,,,,,,,16
240
+ ,,,,,,,,,,,,,,,
241
+ met_zone,,,,,,,,,,,,,,,
242
+ ,254,message_index,message_index,,,,,,,,,,,,1
243
+ ,1,high_bpm,uint8,,,,,,,,,,,,1
244
+ ,2,calories,uint16,,,10,,kcal / min,,,,,,,1
245
+ ,3,fat_calories,uint8,,,10,,kcal / min,,,,,,,1
246
+ ,,,,,,,,,,,,,,,
247
+ dive_settings,,,,,,,,,,,,,,,
248
+ ,254,message_index,message_index,,,,,,,,,,,,
249
+ ,0,name,string,,,,,,,,,,,,16
250
+ ,1,model,tissue_model_type,,,,,,,,,,,,
251
+ ,2,gf_low,uint8,,,,,percent,,,,,,,
252
+ ,3,gf_high,uint8,,,,,percent,,,,,,,
253
+ ,4,water_type,water_type,,,,,,,,,,,,
254
+ ,5,water_density,float32,,,,,kg/m^3,,,,,Fresh water is usually 1000; salt water is usually 1025,,
255
+ ,6,po2_warn,uint8,,,100,,percent,,,,,Typically 1.40,,
256
+ ,7,po2_critical,uint8,,,100,,percent,,,,,Typically 1.60,,
257
+ ,8,po2_deco,uint8,,,100,,percent,,,,,,,
258
+ ,9,safety_stop_enabled,bool,,,,,,,,,,,,
259
+ ,10,bottom_depth,float32,,,,,,,,,,,,
260
+ ,11,bottom_time,uint32,,,,,,,,,,,,
261
+ ,12,apnea_countdown_enabled,bool,,,,,,,,,,,,
262
+ ,13,apnea_countdown_time,uint32,,,,,,,,,,,,
263
+ ,14,backlight_mode,dive_backlight_mode,,,,,,,,,,,,
264
+ ,15,backlight_brightness,uint8,,,,,,,,,,,,
265
+ ,16,backlight_timeout,backlight_timeout,,,,,,,,,,,,
266
+ ,17,repeat_dive_interval,uint16,,,1,,s,,,,,Time between surfacing and ending the activity,,
267
+ ,18,safety_stop_time,uint16,,,1,,s,,,,,Time at safety stop (if enabled),,
268
+ ,19,heart_rate_source_type,source_type,,,,,,,,,,,,
269
+ ,20,heart_rate_source,uint8,,,,,,,,,,,,1
270
+ ,,heart_rate_antplus_device_type,antplus_device_type,,,,,,,,heart_rate_source_type,antplus,,,1
271
+ ,,heart_rate_local_device_type,local_device_type,,,,,,,,heart_rate_source_type,local,,,1
272
+ dive_alarm,,,,,,,,,,,,,,,
273
+ ,254,message_index,message_index,,,,,,,,,,Index of the alarm,,
274
+ ,0,depth,uint32,,,1000,,m,,,,,,,
275
+ ,1,time,sint32,,,1,,s,,,,,,,
276
+ ,2,enabled,bool,,,,,,,,,,,,
277
+ ,3,alarm_type,dive_alarm_type,,,,,,,,,,,,
278
+ ,4,sound,tone,,,,,,,,,,,,
279
+ ,5,dive_types,sub_sport,[N],,,,,,,,,,,
280
+ dive_gas,,,,,,,,,,,,,,,
281
+ ,254,message_index,message_index,,,,,,,,,,,,
282
+ ,0,helium_content,uint8,,,,,percent,,,,,,,
283
+ ,1,oxygen_content,uint8,,,,,percent,,,,,,,
284
+ ,2,status,dive_gas_status,,,,,,,,,,,,
285
+ ,,,GOALS FILE MESSAGES,,,,,,,,,,,,
286
+ goal,,,,,,,,,,,,,,,
287
+ ,254,message_index,message_index,,,,,,,,,,,,1
288
+ ,0,sport,sport,,,,,,,,,,,,1
289
+ ,1,sub_sport,sub_sport,,,,,,,,,,,,1
290
+ ,2,start_date,date_time,,,,,,,,,,,,1
291
+ ,3,end_date,date_time,,,,,,,,,,,,1
292
+ ,4,type,goal,,,,,,,,,,,,1
293
+ ,5,value,uint32,,,,,,,,,,,,1
294
+ ,6,repeat,bool,,,,,,,,,,,,1
295
+ ,7,target_value,uint32,,,,,,,,,,,,1
296
+ ,8,recurrence,goal_recurrence,,,,,,,,,,,,1
297
+ ,9,recurrence_value,uint16,,,,,,,,,,,,1
298
+ ,10,enabled,bool,,,,,,,,,,,,1
299
+ ,11,source,goal_source,,,,,,,,,,,,1
300
+ ,,,,,,,,,,,,,,,
301
+ ,,,ACTIVITY FILE MESSAGES,,,,,,,,,,,,
302
+ activity,,,,,,,,,,,,,,,
303
+ ,253,timestamp,date_time,,,,,,,,,,,,1
304
+ ,0,total_timer_time,uint32,,,1000,,s,,,,,Exclude pauses,,1
305
+ ,1,num_sessions,uint16,,,,,,,,,,,,1
306
+ ,2,type,activity,,,,,,,,,,,,1
307
+ ,3,event,event,,,,,,,,,,,,1
308
+ ,4,event_type,event_type,,,,,,,,,,,,1
309
+ ,5,local_timestamp,local_date_time,,,,,,,,,,"timestamp epoch expressed in local time, used to convert activity timestamps to local time ",,1
310
+ ,6,event_group,uint8,,,,,,,,,,,,1
311
+ ,,,,,,,,,,,,,,,
312
+ session,,,,,,,,,,,,,,,
313
+ ,254,message_index,message_index,,,,,,,,,,Selected bit is set for the current session.,,1
314
+ ,253,timestamp,date_time,,,,,s,,,,,Sesson end time.,,1
315
+ ,0,event,event,,,,,,,,,,session,,1
316
+ ,1,event_type,event_type,,,,,,,,,,stop,,1
317
+ ,2,start_time,date_time,,,,,,,,,,,,1
318
+ ,3,start_position_lat,sint32,,,,,semicircles,,,,,,,1
319
+ ,4,start_position_long,sint32,,,,,semicircles,,,,,,,1
320
+ ,5,sport,sport,,,,,,,,,,,,1
321
+ ,6,sub_sport,sub_sport,,,,,,,,,,,,1
322
+ ,7,total_elapsed_time,uint32,,,1000,,s,,,,,Time (includes pauses),,1
323
+ ,8,total_timer_time,uint32,,,1000,,s,,,,,Timer Time (excludes pauses),,1
324
+ ,9,total_distance,uint32,,,100,,m,,,,,,,1
325
+ ,10,total_cycles,uint32,,,,,cycles,,,,,,,1
326
+ ,,total_strides,uint32,,,,,strides,,,"sport,
327
+ sport","running,
328
+ walking",,,1
329
+ ,11,total_calories,uint16,,,,,kcal,,,,,,,1
330
+ ,13,total_fat_calories,uint16,,,,,kcal,,,,,,,1
331
+ ,14,avg_speed,uint16,,enhanced_avg_speed,1000,,m/s,16,,,,total_distance / total_timer_time,,1
332
+ ,15,max_speed,uint16,,enhanced_max_speed,1000,,m/s,16,,,,,,1
333
+ ,16,avg_heart_rate,uint8,,,,,bpm,,,,,average heart rate (excludes pause time),,1
334
+ ,17,max_heart_rate,uint8,,,,,bpm,,,,,,,1
335
+ ,18,avg_cadence,uint8,,,,,rpm,,,,,total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time,,1
336
+ ,,avg_running_cadence,uint8,,,,,strides/min,,,sport,running,,,1
337
+ ,19,max_cadence,uint8,,,,,rpm,,,,,,,1
338
+ ,,max_running_cadence,uint8,,,,,strides/min,,,sport,running,,,1
339
+ ,20,avg_power,uint16,,,,,watts,,,,,total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time,,1
340
+ ,21,max_power,uint16,,,,,watts,,,,,,,1
341
+ ,22,total_ascent,uint16,,,,,m,,,,,,,1
342
+ ,23,total_descent,uint16,,,,,m,,,,,,,1
343
+ ,24,total_training_effect,uint8,,,10,,,,,,,,,1
344
+ ,25,first_lap_index,uint16,,,,,,,,,,,,1
345
+ ,26,num_laps,uint16,,,,,,,,,,,,1
346
+ ,27,event_group,uint8,,,,,,,,,,,,1
347
+ ,28,trigger,session_trigger,,,,,,,,,,,,1
348
+ ,29,nec_lat,sint32,,,,,semicircles,,,,,,,1
349
+ ,30,nec_long,sint32,,,,,semicircles,,,,,,,1
350
+ ,31,swc_lat,sint32,,,,,semicircles,,,,,,,1
351
+ ,32,swc_long,sint32,,,,,semicircles,,,,,,,1
352
+ ,34,normalized_power,uint16,,,,,watts,,,,,,,1
353
+ ,35,training_stress_score,uint16,,,10,,tss,,,,,,,1
354
+ ,36,intensity_factor,uint16,,,1000,,if,,,,,,,1
355
+ ,37,left_right_balance,left_right_balance_100,,,,,,,,,,,,1
356
+ ,41,avg_stroke_count,uint32,,,10,,strokes/lap,,,,,,,1
357
+ ,42,avg_stroke_distance,uint16,,,100,,m,,,,,,,1
358
+ ,43,swim_stroke,swim_stroke,,,,,swim_stroke,,,,,,,1
359
+ ,44,pool_length,uint16,,,100,,m,,,,,,,1
360
+ ,45,threshold_power,uint16,,,,,watts,,,,,,,1
361
+ ,46,pool_length_unit,display_measure,,,,,,,,,,,,1
362
+ ,47,num_active_lengths,uint16,,,,,lengths,,,,,# of active lengths of swim pool,,1
363
+ ,48,total_work,uint32,,,,,J,,,,,,,1
364
+ ,49,avg_altitude,uint16,,enhanced_avg_altitude,5,500,m,16,,,,,,1
365
+ ,50,max_altitude,uint16,,enhanced_max_altitude,5,500,m,16,,,,,,1
366
+ ,51,gps_accuracy,uint8,,,,,m,,,,,,,1
367
+ ,52,avg_grade,sint16,,,100,,%,,,,,,,1
368
+ ,53,avg_pos_grade,sint16,,,100,,%,,,,,,,1
369
+ ,54,avg_neg_grade,sint16,,,100,,%,,,,,,,1
370
+ ,55,max_pos_grade,sint16,,,100,,%,,,,,,,1
371
+ ,56,max_neg_grade,sint16,,,100,,%,,,,,,,1
372
+ ,57,avg_temperature,sint8,,,,,C,,,,,,,1
373
+ ,58,max_temperature,sint8,,,,,C,,,,,,,1
374
+ ,59,total_moving_time,uint32,,,1000,,s,,,,,,,1
375
+ ,60,avg_pos_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
376
+ ,61,avg_neg_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
377
+ ,62,max_pos_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
378
+ ,63,max_neg_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
379
+ ,64,min_heart_rate,uint8,,,,,bpm,,,,,,,1
380
+ ,65,time_in_hr_zone,uint32,[N],,1000,,s,,,,,,,1
381
+ ,66,time_in_speed_zone,uint32,[N],,1000,,s,,,,,,,1
382
+ ,67,time_in_cadence_zone,uint32,[N],,1000,,s,,,,,,,1
383
+ ,68,time_in_power_zone,uint32,[N],,1000,,s,,,,,,,1
384
+ ,69,avg_lap_time,uint32,,,1000,,s,,,,,,,1
385
+ ,70,best_lap_index,uint16,,,,,,,,,,,,1
386
+ ,71,min_altitude,uint16,,enhanced_min_altitude,5,500,m,16,,,,,,1
387
+ ,82,player_score,uint16,,,,,,,,,,,,1
388
+ ,83,opponent_score,uint16,,,,,,,,,,,,1
389
+ ,84,opponent_name,string,,,,,,,,,,,,1
390
+ ,85,stroke_count,uint16,[N],,,,counts,,,,,stroke_type enum used as the index,,1
391
+ ,86,zone_count,uint16,[N],,,,counts,,,,,zone number used as the index,,1
392
+ ,87,max_ball_speed,uint16,,,100,,m/s,,,,,,,1
393
+ ,88,avg_ball_speed,uint16,,,100,,m/s,,,,,,,1
394
+ ,89,avg_vertical_oscillation,uint16,,,10,,mm,,,,,,,1
395
+ ,90,avg_stance_time_percent,uint16,,,100,,percent,,,,,,,1
396
+ ,91,avg_stance_time,uint16,,,10,,ms,,,,,,,1
397
+ ,92,avg_fractional_cadence,uint8,,,128,,rpm,,,,,fractional part of the avg_cadence,,1
398
+ ,93,max_fractional_cadence,uint8,,,128,,rpm,,,,,fractional part of the max_cadence,,1
399
+ ,94,total_fractional_cycles,uint8,,,128,,cycles,,,,,fractional part of the total_cycles,,1
400
+ ,95,avg_total_hemoglobin_conc,uint16,[N],,100,,g/dL,,,,,Avg saturated and unsaturated hemoglobin,,
401
+ ,96,min_total_hemoglobin_conc,uint16,[N],,100,,g/dL,,,,,Min saturated and unsaturated hemoglobin,,
402
+ ,97,max_total_hemoglobin_conc,uint16,[N],,100,,g/dL,,,,,Max saturated and unsaturated hemoglobin,,
403
+ ,98,avg_saturated_hemoglobin_percent,uint16,[N],,10,,%,,,,,Avg percentage of hemoglobin saturated with oxygen,,
404
+ ,99,min_saturated_hemoglobin_percent,uint16,[N],,10,,%,,,,,Min percentage of hemoglobin saturated with oxygen,,
405
+ ,100,max_saturated_hemoglobin_percent,uint16,[N],,10,,%,,,,,Max percentage of hemoglobin saturated with oxygen,,
406
+ ,101,avg_left_torque_effectiveness,uint8,,,2,,percent,,,,,,,
407
+ ,102,avg_right_torque_effectiveness,uint8,,,2,,percent,,,,,,,
408
+ ,103,avg_left_pedal_smoothness,uint8,,,2,,percent,,,,,,,
409
+ ,104,avg_right_pedal_smoothness,uint8,,,2,,percent,,,,,,,
410
+ ,105,avg_combined_pedal_smoothness,uint8,,,2,,percent,,,,,,,
411
+ ,111,sport_index,uint8,,,,,,,,,,,,1
412
+ ,112,time_standing,uint32,,,1000,,s,,,,,Total time spend in the standing position,,
413
+ ,113,stand_count,uint16,,,,,,,,,,Number of transitions to the standing state,,
414
+ ,114,avg_left_pco,sint8,,,,,mm,,,,,Average platform center offset Left,,
415
+ ,115,avg_right_pco,sint8,,,,,mm,,,,,Average platform center offset Right,,
416
+ ,116,avg_left_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Average left power phase angles. Indexes defined by power_phase_type.,,
417
+ ,117,avg_left_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Average left power phase peak angles. Data value indexes defined by power_phase_type.,,
418
+ ,118,avg_right_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Average right power phase angles. Data value indexes defined by power_phase_type.,,
419
+ ,119,avg_right_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Average right power phase peak angles data value indexes defined by power_phase_type.,,
420
+ ,120,avg_power_position,uint16,[N],,,,watts,,,,,Average power by position. Data value indexes defined by rider_position_type.,,
421
+ ,121,max_power_position,uint16,[N],,,,watts,,,,,Maximum power by position. Data value indexes defined by rider_position_type.,,
422
+ ,122,avg_cadence_position,uint8,[N],,,,rpm,,,,,Average cadence by position. Data value indexes defined by rider_position_type.,,
423
+ ,123,max_cadence_position,uint8,[N],,,,rpm,,,,,Maximum cadence by position. Data value indexes defined by rider_position_type.,,
424
+ ,124,enhanced_avg_speed,uint32,,,1000,,m/s,,,,,total_distance / total_timer_time,,1
425
+ ,125,enhanced_max_speed,uint32,,,1000,,m/s,,,,,,,1
426
+ ,126,enhanced_avg_altitude,uint32,,,5,500,m,,,,,,,1
427
+ ,127,enhanced_min_altitude,uint32,,,5,500,m,,,,,,,1
428
+ ,128,enhanced_max_altitude,uint32,,,5,500,m,,,,,,,1
429
+ ,129,avg_lev_motor_power,uint16,,,,,watts,,,,,lev average motor power during session,,
430
+ ,130,max_lev_motor_power,uint16,,,,,watts,,,,,lev maximum motor power during session,,
431
+ ,131,lev_battery_consumption,uint8,,,2,,percent,,,,,lev battery consumption during session,,
432
+ ,132,avg_vertical_ratio,uint16,,,100,,percent,,,,,,,
433
+ ,133,avg_stance_time_balance,uint16,,,100,,percent,,,,,,,
434
+ ,134,avg_step_length,uint16,,,10,,mm,,,,,,,
435
+ ,137,total_anaerobic_training_effect,uint8,,,10,,,,,,,,,1
436
+ ,139,avg_vam,uint16,,,1000,,m/s,16,,,,,,1
437
+ lap,,,,,,,,,,,,,,,
438
+ ,254,message_index,message_index,,,,,,,,,,,,1
439
+ ,253,timestamp,date_time,,,,,s,,,,,Lap end time.,,1
440
+ ,0,event,event,,,,,,,,,,,,1
441
+ ,1,event_type,event_type,,,,,,,,,,,,1
442
+ ,2,start_time,date_time,,,,,,,,,,,,1
443
+ ,3,start_position_lat,sint32,,,,,semicircles,,,,,,,1
444
+ ,4,start_position_long,sint32,,,,,semicircles,,,,,,,1
445
+ ,5,end_position_lat,sint32,,,,,semicircles,,,,,,,1
446
+ ,6,end_position_long,sint32,,,,,semicircles,,,,,,,1
447
+ ,7,total_elapsed_time,uint32,,,1000,,s,,,,,Time (includes pauses),,1
448
+ ,8,total_timer_time,uint32,,,1000,,s,,,,,Timer Time (excludes pauses),,1
449
+ ,9,total_distance,uint32,,,100,,m,,,,,,,1
450
+ ,10,total_cycles,uint32,,,,,cycles,,,,,,,1
451
+ ,,total_strides,uint32,,,,,strides,,,"sport,
452
+ sport","running,
453
+ walking",,,1
454
+ ,11,total_calories,uint16,,,,,kcal,,,,,,,1
455
+ ,12,total_fat_calories,uint16,,,,,kcal,,,,,If New Leaf,,1
456
+ ,13,avg_speed,uint16,,enhanced_avg_speed,1000,,m/s,16,,,,,,1
457
+ ,14,max_speed,uint16,,enhanced_max_speed,1000,,m/s,16,,,,,,1
458
+ ,15,avg_heart_rate,uint8,,,,,bpm,,,,,,,1
459
+ ,16,max_heart_rate,uint8,,,,,bpm,,,,,,,1
460
+ ,17,avg_cadence,uint8,,,,,rpm,,,,,total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time,,1
461
+ ,,avg_running_cadence,uint8,,,,,strides/min,,,sport,running,,,1
462
+ ,18,max_cadence,uint8,,,,,rpm,,,,,,,1
463
+ ,,max_running_cadence,uint8,,,,,strides/min,,,sport,running,,,1
464
+ ,19,avg_power,uint16,,,,,watts,,,,,total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time,,1
465
+ ,20,max_power,uint16,,,,,watts,,,,,,,1
466
+ ,21,total_ascent,uint16,,,,,m,,,,,,,1
467
+ ,22,total_descent,uint16,,,,,m,,,,,,,1
468
+ ,23,intensity,intensity,,,,,,,,,,,,1
469
+ ,24,lap_trigger,lap_trigger,,,,,,,,,,,,1
470
+ ,25,sport,sport,,,,,,,,,,,,1
471
+ ,26,event_group,uint8,,,,,,,,,,,,1
472
+ ,32,num_lengths,uint16,,,,,lengths,,,,,# of lengths of swim pool,,1
473
+ ,33,normalized_power,uint16,,,,,watts,,,,,,,1
474
+ ,34,left_right_balance,left_right_balance_100,,,,,,,,,,,,1
475
+ ,35,first_length_index,uint16,,,,,,,,,,,,1
476
+ ,37,avg_stroke_distance,uint16,,,100,,m,,,,,,,1
477
+ ,38,swim_stroke,swim_stroke,,,,,,,,,,,,1
478
+ ,39,sub_sport,sub_sport,,,,,,,,,,,,1
479
+ ,40,num_active_lengths,uint16,,,,,lengths,,,,,# of active lengths of swim pool,,1
480
+ ,41,total_work,uint32,,,,,J,,,,,,,1
481
+ ,42,avg_altitude,uint16,,enhanced_avg_altitude,5,500,m,16,,,,,,1
482
+ ,43,max_altitude,uint16,,enhanced_max_altitude,5,500,m,16,,,,,,1
483
+ ,44,gps_accuracy,uint8,,,,,m,,,,,,,1
484
+ ,45,avg_grade,sint16,,,100,,%,,,,,,,1
485
+ ,46,avg_pos_grade,sint16,,,100,,%,,,,,,,1
486
+ ,47,avg_neg_grade,sint16,,,100,,%,,,,,,,1
487
+ ,48,max_pos_grade,sint16,,,100,,%,,,,,,,1
488
+ ,49,max_neg_grade,sint16,,,100,,%,,,,,,,1
489
+ ,50,avg_temperature,sint8,,,,,C,,,,,,,1
490
+ ,51,max_temperature,sint8,,,,,C,,,,,,,1
491
+ ,52,total_moving_time,uint32,,,1000,,s,,,,,,,1
492
+ ,53,avg_pos_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
493
+ ,54,avg_neg_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
494
+ ,55,max_pos_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
495
+ ,56,max_neg_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
496
+ ,57,time_in_hr_zone,uint32,[N],,1000,,s,,,,,,,1
497
+ ,58,time_in_speed_zone,uint32,[N],,1000,,s,,,,,,,1
498
+ ,59,time_in_cadence_zone,uint32,[N],,1000,,s,,,,,,,1
499
+ ,60,time_in_power_zone,uint32,[N],,1000,,s,,,,,,,1
500
+ ,61,repetition_num,uint16,,,,,,,,,,,,1
501
+ ,62,min_altitude,uint16,,enhanced_min_altitude,5,500,m,16,,,,,,1
502
+ ,63,min_heart_rate,uint8,,,,,bpm,,,,,,,1
503
+ ,71,wkt_step_index,message_index,,,,,,,,,,,,1
504
+ ,74,opponent_score,uint16,,,,,,,,,,,,1
505
+ ,75,stroke_count,uint16,[N],,,,counts,,,,,stroke_type enum used as the index,,1
506
+ ,76,zone_count,uint16,[N],,,,counts,,,,,zone number used as the index,,1
507
+ ,77,avg_vertical_oscillation,uint16,,,10,,mm,,,,,,,1
508
+ ,78,avg_stance_time_percent,uint16,,,100,,percent,,,,,,,1
509
+ ,79,avg_stance_time,uint16,,,10,,ms,,,,,,,1
510
+ ,80,avg_fractional_cadence,uint8,,,128,,rpm,,,,,fractional part of the avg_cadence,,1
511
+ ,81,max_fractional_cadence,uint8,,,128,,rpm,,,,,fractional part of the max_cadence,,1
512
+ ,82,total_fractional_cycles,uint8,,,128,,cycles,,,,,fractional part of the total_cycles,,1
513
+ ,83,player_score,uint16,,,,,,,,,,,,1
514
+ ,84,avg_total_hemoglobin_conc,uint16,[N],,100,,g/dL,,,,,Avg saturated and unsaturated hemoglobin,,1
515
+ ,85,min_total_hemoglobin_conc,uint16,[N],,100,,g/dL,,,,,Min saturated and unsaturated hemoglobin,,1
516
+ ,86,max_total_hemoglobin_conc,uint16,[N],,100,,g/dL,,,,,Max saturated and unsaturated hemoglobin,,1
517
+ ,87,avg_saturated_hemoglobin_percent,uint16,[N],,10,,%,,,,,Avg percentage of hemoglobin saturated with oxygen,,1
518
+ ,88,min_saturated_hemoglobin_percent,uint16,[N],,10,,%,,,,,Min percentage of hemoglobin saturated with oxygen,,1
519
+ ,89,max_saturated_hemoglobin_percent,uint16,[N],,10,,%,,,,,Max percentage of hemoglobin saturated with oxygen,,1
520
+ ,91,avg_left_torque_effectiveness,uint8,,,2,,percent,,,,,,,
521
+ ,92,avg_right_torque_effectiveness,uint8,,,2,,percent,,,,,,,
522
+ ,93,avg_left_pedal_smoothness,uint8,,,2,,percent,,,,,,,
523
+ ,94,avg_right_pedal_smoothness,uint8,,,2,,percent,,,,,,,
524
+ ,95,avg_combined_pedal_smoothness,uint8,,,2,,percent,,,,,,,
525
+ ,98,time_standing,uint32,,,1000,,s,,,,,Total time spent in the standing position,,
526
+ ,99,stand_count,uint16,,,,,,,,,,Number of transitions to the standing state,,
527
+ ,100,avg_left_pco,sint8,,,,,mm,,,,,Average left platform center offset,,
528
+ ,101,avg_right_pco,sint8,,,,,mm,,,,,Average right platform center offset,,
529
+ ,102,avg_left_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Average left power phase angles. Data value indexes defined by power_phase_type.,,
530
+ ,103,avg_left_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Average left power phase peak angles. Data value indexes defined by power_phase_type.,,
531
+ ,104,avg_right_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Average right power phase angles. Data value indexes defined by power_phase_type.,,
532
+ ,105,avg_right_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Average right power phase peak angles. Data value indexes defined by power_phase_type.,,
533
+ ,106,avg_power_position,uint16,[N],,,,watts,,,,,Average power by position. Data value indexes defined by rider_position_type.,,
534
+ ,107,max_power_position,uint16,[N],,,,watts,,,,,Maximum power by position. Data value indexes defined by rider_position_type.,,
535
+ ,108,avg_cadence_position,uint8,[N],,,,rpm,,,,,Average cadence by position. Data value indexes defined by rider_position_type.,,
536
+ ,109,max_cadence_position,uint8,[N],,,,rpm,,,,,Maximum cadence by position. Data value indexes defined by rider_position_type.,,
537
+ ,110,enhanced_avg_speed,uint32,,,1000,,m/s,,,,,,,1
538
+ ,111,enhanced_max_speed,uint32,,,1000,,m/s,,,,,,,1
539
+ ,112,enhanced_avg_altitude,uint32,,,5,500,m,,,,,,,1
540
+ ,113,enhanced_min_altitude,uint32,,,5,500,m,,,,,,,1
541
+ ,114,enhanced_max_altitude,uint32,,,5,500,m,,,,,,,1
542
+ ,115,avg_lev_motor_power,uint16,,,,,watts,,,,,lev average motor power during lap,,
543
+ ,116,max_lev_motor_power,uint16,,,,,watts,,,,,lev maximum motor power during lap,,
544
+ ,117,lev_battery_consumption,uint8,,,2,,percent,,,,,lev battery consumption during lap,,
545
+ ,118,avg_vertical_ratio,uint16,,,100,,percent,,,,,,,
546
+ ,119,avg_stance_time_balance,uint16,,,100,,percent,,,,,,,
547
+ ,120,avg_step_length,uint16,,,10,,mm,,,,,,,
548
+ ,121,avg_vam,uint16,,,1000,,m/s,16,,,,,,1
549
+ ,,,,,,,,,,,,,,,
550
+ length,,,,,,,,,,,,,,,
551
+ ,254,message_index,message_index,,,,,,,,,,,,1
552
+ ,253,timestamp,date_time,,,,,,,,,,,,1
553
+ ,0,event,event,,,,,,,,,,,,1
554
+ ,1,event_type,event_type,,,,,,,,,,,,1
555
+ ,2,start_time,date_time,,,,,,,,,,,,1
556
+ ,3,total_elapsed_time,uint32,,,1000,,s,,,,,,,1
557
+ ,4,total_timer_time,uint32,,,1000,,s,,,,,,,1
558
+ ,5,total_strokes,uint16,,,,,strokes,,,,,,,1
559
+ ,6,avg_speed,uint16,,,1000,,m/s,,,,,,,1
560
+ ,7,swim_stroke,swim_stroke,,,,,swim_stroke,,,,,,,1
561
+ ,9,avg_swimming_cadence,uint8,,,,,strokes/min,,,,,,,1
562
+ ,10,event_group,uint8,,,,,,,,,,,,1
563
+ ,11,total_calories,uint16,,,,,kcal,,,,,,,1
564
+ ,12,length_type,length_type,,,,,,,,,,,,1
565
+ ,18,player_score,uint16,,,,,,,,,,,,1
566
+ ,19,opponent_score,uint16,,,,,,,,,,,,1
567
+ ,20,stroke_count,uint16,[N],,,,counts,,,,,stroke_type enum used as the index,,1
568
+ ,21,zone_count,uint16,[N],,,,counts,,,,,zone number used as the index,,1
569
+ ,,,,,,,,,,,,,,,
570
+ record,,,,,,,,,,,,,,,
571
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
572
+ ,0,position_lat,sint32,,,,,semicircles,,,,,,,1
573
+ ,1,position_long,sint32,,,,,semicircles,,,,,,,1
574
+ ,2,altitude,uint16,,enhanced_altitude,5,500,m,16,,,,,,1
575
+ ,3,heart_rate,uint8,,,,,bpm,,,,,,,1
576
+ ,4,cadence,uint8,,,,,rpm,,,,,,,1
577
+ ,5,distance,uint32,,,100,,m,,,,,,,1
578
+ ,6,speed,uint16,,enhanced_speed,1000,,m/s,16,,,,,,1
579
+ ,7,power,uint16,,,,,watts,,,,,,,1
580
+ ,8,compressed_speed_distance,byte,[3],"speed,
581
+ distance","100,
582
+ 16",,"m/s,
583
+ m","12,
584
+ 12","0,
585
+ 1",,,,,1
586
+ ,9,grade,sint16,,,100,,%,,,,,,,1
587
+ ,10,resistance,uint8,,,,,,,,,,Relative. 0 is none 254 is Max.,,1
588
+ ,11,time_from_course,sint32,,,1000,,s,,,,,,,1
589
+ ,12,cycle_length,uint8,,,100,,m,,,,,,,1
590
+ ,13,temperature,sint8,,,,,C,,,,,,,1
591
+ ,17,speed_1s,uint8,[N],,16,,m/s,,,,,Speed at 1s intervals. Timestamp field indicates time of last array element.,,5
592
+ ,18,cycles,uint8,,total_cycles,,,cycles,8,1,,,,,1
593
+ ,19,total_cycles,uint32,,,,,cycles,,,,,,,1
594
+ ,28,compressed_accumulated_power,uint16,,accumulated_power,,,watts,16,1,,,,,1
595
+ ,29,accumulated_power,uint32,,,,,watts,,,,,,,1
596
+ ,30,left_right_balance,left_right_balance,,,,,,,,,,,,1
597
+ ,31,gps_accuracy,uint8,,,,,m,,,,,,,1
598
+ ,32,vertical_speed,sint16,,,1000,,m/s,,,,,,,1
599
+ ,33,calories,uint16,,,,,kcal,,,,,,,1
600
+ ,39,vertical_oscillation,uint16,,,10,,mm,,,,,,,1
601
+ ,40,stance_time_percent,uint16,,,100,,percent,,,,,,,1
602
+ ,41,stance_time,uint16,,,10,,ms,,,,,,,1
603
+ ,42,activity_type,activity_type,,,,,,,,,,,,1
604
+ ,43,left_torque_effectiveness,uint8,,,2,,percent,,,,,,,1
605
+ ,44,right_torque_effectiveness,uint8,,,2,,percent,,,,,,,1
606
+ ,45,left_pedal_smoothness,uint8,,,2,,percent,,,,,,,1
607
+ ,46,right_pedal_smoothness,uint8,,,2,,percent,,,,,,,1
608
+ ,47,combined_pedal_smoothness,uint8,,,2,,percent,,,,,,,1
609
+ ,48,time128,uint8,,,128,,s,,,,,,,1
610
+ ,49,stroke_type,stroke_type,,,,,,,,,,,,1
611
+ ,50,zone,uint8,,,,,,,,,,,,1
612
+ ,51,ball_speed,uint16,,,100,,m/s,,,,,,,1
613
+ ,52,cadence256,uint16,,,256,,rpm,,,,,Log cadence and fractional cadence for backwards compatability,,1
614
+ ,53,fractional_cadence,uint8,,,128,,rpm,,,,,,,1
615
+ ,54,total_hemoglobin_conc,uint16,,,100,,g/dL,,,,,Total saturated and unsaturated hemoglobin,,1
616
+ ,55,total_hemoglobin_conc_min,uint16,,,100,,g/dL,,,,,Min saturated and unsaturated hemoglobin,,1
617
+ ,56,total_hemoglobin_conc_max,uint16,,,100,,g/dL,,,,,Max saturated and unsaturated hemoglobin,,1
618
+ ,57,saturated_hemoglobin_percent,uint16,,,10,,%,,,,,Percentage of hemoglobin saturated with oxygen,,1
619
+ ,58,saturated_hemoglobin_percent_min,uint16,,,10,,%,,,,,Min percentage of hemoglobin saturated with oxygen,,1
620
+ ,59,saturated_hemoglobin_percent_max,uint16,,,10,,%,,,,,Max percentage of hemoglobin saturated with oxygen,,1
621
+ ,62,device_index,device_index,,,,,,,,,,,,1
622
+ ,67,left_pco,sint8,,,,,mm,,,,,Left platform center offset,,
623
+ ,68,right_pco,sint8,,,,,mm,,,,,Right platform center offset,,
624
+ ,69,left_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Left power phase angles. Data value indexes defined by power_phase_type.,,
625
+ ,70,left_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Left power phase peak angles. Data value indexes defined by power_phase_type.,,
626
+ ,71,right_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Right power phase angles. Data value indexes defined by power_phase_type.,,
627
+ ,72,right_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Right power phase peak angles. Data value indexes defined by power_phase_type.,,
628
+ ,73,enhanced_speed,uint32,,,1000,,m/s,,,,,,,1
629
+ ,78,enhanced_altitude,uint32,,,5,500,m,,,,,,,1
630
+ ,81,battery_soc,uint8,,,2,,percent,,,,,lev battery state of charge,,
631
+ ,82,motor_power,uint16,,,,,watts,,,,,lev motor power,,
632
+ ,83,vertical_ratio,uint16,,,100,,percent,,,,,,,
633
+ ,84,stance_time_balance,uint16,,,100,,percent,,,,,,,
634
+ ,85,step_length,uint16,,,10,,mm,,,,,,,
635
+ ,91,absolute_pressure,uint32,,,,,Pa,,,,,Includes atmospheric pressure,,
636
+ ,92,depth,uint32,,,1000,,m,,,,,0 if above water,,
637
+ ,93,next_stop_depth,uint32,,,1000,,m,,,,,0 if above water,,
638
+ ,94,next_stop_time,uint32,,,1,,s,,,,,,,
639
+ ,95,time_to_surface,uint32,,,1,,s,,,,,,,
640
+ ,96,ndl_time,uint32,,,1,,s,,,,,,,
641
+ ,97,cns_load,uint8,,,,,percent,,,,,,,
642
+ ,98,n2_load,uint16,,,1,,percent,,,,,,,
643
+ ,,,,,,,,,,,,,,,
644
+ event,,,,,,,,,,,,,,,
645
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
646
+ ,0,event,event,,,,,,,,,,,,1
647
+ ,1,event_type,event_type,,,,,,,,,,,,1
648
+ ,2,data16,uint16,,data,,,,16,,,,,,1
649
+ ,3,data,uint32,,,,,,,,,,,,1
650
+ ,,timer_trigger,timer_trigger,,,,,,,,event,timer,,,1
651
+ ,,course_point_index,message_index,,,,,,,,event,course_point,,,1
652
+ ,,battery_level,uint16,,,1000,,V,,,event,battery,,,1
653
+ ,,virtual_partner_speed,uint16,,,1000,,m/s,,,event,virtual_partner_pace,,,1
654
+ ,,hr_high_alert,uint8,,,,,bpm,,,event,hr_high_alert,,,1
655
+ ,,hr_low_alert,uint8,,,,,bpm,,,event,hr_low_alert,,,1
656
+ ,,speed_high_alert,uint32,,,1000,,m/s,,,event,speed_high_alert,,,1
657
+ ,,speed_low_alert,uint32,,,1000,,m/s,,,event,speed_low_alert,,,1
658
+ ,,cad_high_alert,uint16,,,,,rpm,,,event,cad_high_alert,,,1
659
+ ,,cad_low_alert,uint16,,,,,rpm,,,event,cad_low_alert,,,1
660
+ ,,power_high_alert,uint16,,,,,watts,,,event,power_high_alert,,,1
661
+ ,,power_low_alert,uint16,,,,,watts,,,event,power_low_alert,,,1
662
+ ,,time_duration_alert,uint32,,,1000,,s,,,event,time_duration_alert,,,1
663
+ ,,distance_duration_alert,uint32,,,100,,m,,,event,distance_duration_alert,,,1
664
+ ,,calorie_duration_alert,uint32,,,,,calories,,,event,calorie_duration_alert,,,1
665
+ ,,fitness_equipment_state,fitness_equipment_state,,,,,,,,event,fitness_equipment,,,1
666
+ ,,sport_point,uint32,,"score,opponent_score","1,1",,,"16,16",,event,sport_point,,,1
667
+ ,,gear_change_data,uint32,,"rear_gear_num,
668
+ rear_gear,
669
+ front_gear_num,
670
+ front_gear","1,1,1,1",,,"8,
671
+ 8,
672
+ 8,
673
+ 8",,"event,
674
+ event","front_gear_change,
675
+ rear_gear_change",,,1
676
+ ,,rider_position,rider_position_type,,,,,,,,event,rider_position_change,Indicates the rider position value.,,
677
+ ,,comm_timeout,comm_timeout_type,,,,,,,,event,comm_timeout,,,
678
+ ,4,event_group,uint8,,,,,,,,,,,,1
679
+ ,7,score,uint16,,,,,,,,,,Do not populate directly. Autogenerated by decoder for sport_point subfield components,,1
680
+ ,8,opponent_score,uint16,,,,,,,,,,Do not populate directly. Autogenerated by decoder for sport_point subfield components,,1
681
+ ,9,front_gear_num,uint8z,,,,,,,,,,Do not populate directly. Autogenerated by decoder for gear_change subfield components. Front gear number. 1 is innermost.,,1
682
+ ,10,front_gear,uint8z,,,,,,,,,,Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of front teeth.,,1
683
+ ,11,rear_gear_num,uint8z,,,,,,,,,,Do not populate directly. Autogenerated by decoder for gear_change subfield components. Rear gear number. 1 is innermost.,,1
684
+ ,12,rear_gear,uint8z,,,,,,,,,,Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of rear teeth.,,1
685
+ ,13,device_index,device_index,,,,,,,,,,,,
686
+ device_info,,,,,,,,,,,,,,,
687
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
688
+ ,0,device_index,device_index,,,,,,,,,,,,1
689
+ ,1,device_type,uint8,,,,,,,,,,,,1
690
+ ,,antplus_device_type,antplus_device_type,,,,,,,,source_type,antplus,,,1
691
+ ,,ant_device_type,uint8,,,,,,,,source_type,ant,,,1
692
+ ,2,manufacturer,manufacturer,,,,,,,,,,,,1
693
+ ,3,serial_number,uint32z,,,,,,,,,,,,1
694
+ ,4,product,uint16,,,,,,,,,,,,1
695
+ ,,favero_product,favero_product,,,,,,,,manufacturer,favero_electronics,,,
696
+ ,,garmin_product,garmin_product,,,,,,,,"manufacturer,
697
+ manufacturer,
698
+ manufacturer","garmin,
699
+ dynastream,
700
+ dynastream_oem",,,1
701
+ ,5,software_version,uint16,,,100,,,,,,,,,1
702
+ ,6,hardware_version,uint8,,,,,,,,,,,,1
703
+ ,7,cum_operating_time,uint32,,,,,s,,,,,Reset by new battery or charge.,,1
704
+ ,10,battery_voltage,uint16,,,256,,V,,,,,,,1
705
+ ,11,battery_status,battery_status,,,,,,,,,,,,1
706
+ ,18,sensor_position,body_location,,,,,,,,,,Indicates the location of the sensor,,1
707
+ ,19,descriptor,string,,,,,,,,,,Used to describe the sensor or location,,1
708
+ ,20,ant_transmission_type,uint8z,,,,,,,,,,,,1
709
+ ,21,ant_device_number,uint16z,,,,,,,,,,,,1
710
+ ,22,ant_network,ant_network,,,,,,,,,,,,1
711
+ ,25,source_type,source_type,,,,,,,,,,,,1
712
+ ,27,product_name,string,,,,,,,,,,Optional free form string to indicate the devices name or model,,20
713
+ ,,,,,,,,,,,,,,,
714
+ training_file,,,,,,,,,,,,,Corresponds to file_id of workout or course.,,
715
+ ,253,timestamp,date_time,,,,,,,,,,,,1
716
+ ,0,type,file,,,,,,,,,,,,1
717
+ ,1,manufacturer,manufacturer,,,,,,,,,,,,1
718
+ ,2,product,uint16,,,,,,,,,,,,1
719
+ ,,favero_product,favero_product,,,,,,,,manufacturer,favero_electronics,,,
720
+ ,,garmin_product,garmin_product,,,,,,,,"manufacturer,
721
+ manufacturer,
722
+ manufacturer","garmin,
723
+ dynastream,
724
+ dynastream_oem",,,1
725
+ ,3,serial_number,uint32z,,,,,,,,,,,,1
726
+ ,4,time_created,date_time,,,,,,,,,,,,1
727
+ ,,,,,,,,,,,,,,,
728
+ hrv,,,,,,,,,,,,,Heart rate variability,,
729
+ ,0,time,uint16,[N],,1000,,s,,,,,Time between beats,,1
730
+ ,,,,,,,,,,,,,,,
731
+ weather_conditions,,,,,,,,,,,,,,,
732
+ ,253,timestamp,date_time,,,,,,,,,,"time of update for current conditions, else forecast time",,1
733
+ ,0,weather_report,weather_report,,,,,,,,,,Current or forecast,,1
734
+ ,1,temperature,sint8,,,,,C,,,,,,,1
735
+ ,2,condition,weather_status,,,,,,,,,,Corresponds to GSC Response weatherIcon field,,1
736
+ ,3,wind_direction,uint16,,,,,degrees,,,,,,,1
737
+ ,4,wind_speed,uint16,,,1000,,m/s,,,,,,,1
738
+ ,5,precipitation_probability,uint8,,,,,,,,,,range 0-100,,1
739
+ ,6,temperature_feels_like,sint8,,,,,C,,,,,Heat Index if GCS heatIdx above or equal to 90F or wind chill if GCS windChill below or equal to 32F,,1
740
+ ,7,relative_humidity,uint8,,,,,,,,,,,,1
741
+ ,8,location,string,,,,,,,,,,string corresponding to GCS response location string,,64
742
+ ,9,observed_at_time,date_time,,,,,,,,,,,,1
743
+ ,10,observed_location_lat,sint32,,,,,semicircles,,,,,,,1
744
+ ,11,observed_location_long,sint32,,,,,semicircles,,,,,,,1
745
+ ,12,day_of_week,day_of_week,,,,,,,,,,,,1
746
+ ,13,high_temperature,sint8,,,,,C,,,,,,,1
747
+ ,14,low_temperature,sint8,,,,,C,,,,,,,1
748
+ ,,,,,,,,,,,,,,,
749
+ weather_alert,,,,,,,,,,,,,,,
750
+ ,253,timestamp,date_time,,,,,,,,,,,,1
751
+ ,0,report_id,string,,,,,,,,,,"Unique identifier from GCS report ID string, length is 12",,12
752
+ ,1,issue_time,date_time,,,,,,,,,,Time alert was issued,,1
753
+ ,2,expire_time,date_time,,,,,,,,,,Time alert expires,,1
754
+ ,3,severity,weather_severity,,,,,,,,,,"Warning, Watch, Advisory, Statement",,1
755
+ ,4,type,weather_severe_type,,,,,,,,,,"Tornado, Severe Thunderstorm, etc.",,1
756
+ gps_metadata,,,,,,,,,,,,,,,
757
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp.,,
758
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the timestamp.,,
759
+ ,1,position_lat,sint32,,,,,semicircles,,,,,,,
760
+ ,2,position_long,sint32,,,,,semicircles,,,,,,,
761
+ ,3,enhanced_altitude,uint32,,,5,500,m,,,,,,,
762
+ ,4,enhanced_speed,uint32,,,1000,,m/s,,,,,,,
763
+ ,5,heading,uint16,,,100,,degrees,,,,,,,
764
+ ,6,utc_timestamp,date_time,,,,,s,,,,,Used to correlate UTC to system time if the timestamp of the message is in system time. This UTC time is derived from the GPS data.,,
765
+ ,7,velocity,sint16,[3],,100,,m/s,,,,,velocity[0] is lon velocity. Velocity[1] is lat velocity. Velocity[2] is altitude velocity.,,
766
+ camera_event,,,,,,,,,,,,,,,
767
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp.,,
768
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the timestamp.,,
769
+ ,1,camera_event_type,camera_event_type,,,,,,,,,,,,
770
+ ,2,camera_file_uuid,string,,,,,,,,,,,,
771
+ ,3,camera_orientation,camera_orientation_type,,,,,,,,,,,,
772
+ ,,,,,,,,,,,,,,,
773
+ gyroscope_data,,,,,,,,,,,,,,,
774
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp,,
775
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the timestamp.,,
776
+ ,1,sample_time_offset,uint16,[N],,,,ms,,,,,Each time in the array describes the time at which the gyro sample with the corrosponding index was taken. Limited to 30 samples in each message. The samples may span across seconds. Array size must match the number of samples in gyro_x and gyro_y and gyro_z,,
777
+ ,2,gyro_x,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
778
+ ,3,gyro_y,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
779
+ ,4,gyro_z,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
780
+ ,5,calibrated_gyro_x,float32,[N],,,,deg/s,,,,,Calibrated gyro reading,,
781
+ ,6,calibrated_gyro_y,float32,[N],,,,deg/s,,,,,Calibrated gyro reading,,
782
+ ,7,calibrated_gyro_z,float32,[N],,,,deg/s,,,,,Calibrated gyro reading,,
783
+ ,,,,,,,,,,,,,,,
784
+ accelerometer_data,,,,,,,,,,,,,,,
785
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp,,
786
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the timestamp.,,
787
+ ,1,sample_time_offset,uint16,[N],,,,ms,,,,,Each time in the array describes the time at which the accelerometer sample with the corrosponding index was taken. Limited to 30 samples in each message. The samples may span across seconds. Array size must match the number of samples in accel_x and accel_y and accel_z,,
788
+ ,2,accel_x,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
789
+ ,3,accel_y,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
790
+ ,4,accel_z,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
791
+ ,5,calibrated_accel_x,float32,[N],,,,g,,,,,Calibrated accel reading,,
792
+ ,6,calibrated_accel_y,float32,[N],,,,g,,,,,Calibrated accel reading,,
793
+ ,7,calibrated_accel_z,float32,[N],,,,g,,,,,Calibrated accel reading,,
794
+ ,8,compressed_calibrated_accel_x,sint16,[N],,,,mG,,,,,Calibrated accel reading,,
795
+ ,9,compressed_calibrated_accel_y,sint16,[N],,,,mG,,,,,Calibrated accel reading,,
796
+ ,10,compressed_calibrated_accel_z,sint16,[N],,,,mG,,,,,Calibrated accel reading,,
797
+ ,,,,,,,,,,,,,,,
798
+ magnetometer_data,,,,,,,,,,,,,,,
799
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp,,
800
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the timestamp.,,
801
+ ,1,sample_time_offset,uint16,[N],,,,ms,,,,,Each time in the array describes the time at which the compass sample with the corrosponding index was taken. Limited to 30 samples in each message. The samples may span across seconds. Array size must match the number of samples in cmps_x and cmps_y and cmps_z,,
802
+ ,2,mag_x,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
803
+ ,3,mag_y,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
804
+ ,4,mag_z,uint16,[N],,,,counts,,,,,These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.,,
805
+ ,5,calibrated_mag_x,float32,[N],,,,G,,,,,Calibrated Magnetometer reading,,
806
+ ,6,calibrated_mag_y,float32,[N],,,,G,,,,,Calibrated Magnetometer reading,,
807
+ ,7,calibrated_mag_z,float32,[N],,,,G,,,,,Calibrated Magnetometer reading,,
808
+ ,,,,,,,,,,,,,,,
809
+ barometer_data,,,,,,,,,,,,,,,
810
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp,,
811
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the timestamp.,,
812
+ ,1,sample_time_offset,uint16,[N],,,,ms,,,,,Each time in the array describes the time at which the barometer sample with the corrosponding index was taken. The samples may span across seconds. Array size must match the number of samples in baro_cal,,
813
+ ,2,baro_pres,uint32,[N],,,,Pa,,,,,These are the raw ADC reading. The samples may span across seconds. A conversion will need to be done on this data once read.,,
814
+ ,,,,,,,,,,,,,,,
815
+ three_d_sensor_calibration,,,,,,,,,,,,,,,
816
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp,,
817
+ ,0,sensor_type,sensor_type,,,,,,,,,,Indicates which sensor the calibration is for,,
818
+ ,1,calibration_factor,uint32,,,,,,,,,,"Calibration factor used to convert from raw ADC value to degrees, g, etc.",,
819
+ ,,accel_cal_factor,uint32,,,,,g,,,sensor_type,accelerometer,Accelerometer calibration factor,,
820
+ ,,gyro_cal_factor,uint32,,,,,deg/s,,,sensor_type,gyroscope,Gyro calibration factor,,
821
+ ,2,calibration_divisor,uint32,,,,,counts,,,,,Calibration factor divisor,,
822
+ ,3,level_shift,uint32,,,,,,,,,,Level shift value used to shift the ADC value back into range,,
823
+ ,4,offset_cal,sint32,[3],,,,,,,,,"Internal calibration factors, one for each: xy, yx, zx",,
824
+ ,5,orientation_matrix,sint32,[9],,65535,,,,,,,3 x 3 rotation matrix (row major),,
825
+ ,,,,,,,,,,,,,,,
826
+ one_d_sensor_calibration,,,,,,,,,,,,,,,
827
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp,,
828
+ ,0,sensor_type,sensor_type,,,,,,,,,,Indicates which sensor the calibration is for,,
829
+ ,1,calibration_factor,uint32,,,,,,,,,,"Calibration factor used to convert from raw ADC value to degrees, g, etc.",,
830
+ ,,baro_cal_factor,uint32,,,,,Pa,,,sensor_type,barometer,Barometer calibration factor,,
831
+ ,2,calibration_divisor,uint32,,,,,counts,,,,,Calibration factor divisor,,
832
+ ,3,level_shift,uint32,,,,,,,,,,Level shift value used to shift the ADC value back into range,,
833
+ ,4,offset_cal,sint32,,,,,,,,,,Internal Calibration factor,,
834
+ ,,,,,,,,,,,,,,,
835
+ video_frame,,,,,,,,,,,,,,,
836
+ ,253,timestamp,date_time,,,,,s,,,,,Whole second part of the timestamp,,
837
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,Millisecond part of the timestamp.,,
838
+ ,1,frame_number,uint32,,,,,,,,,,Number of the frame that the timestamp and timestamp_ms correlate to,,
839
+ ,,,,,,,,,,,,,,,
840
+ obdii_data,,,,,,,,,,,,,,,
841
+ ,253,timestamp,date_time,,,,,s,,,,,Timestamp message was output,,
842
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,"Fractional part of timestamp, added to timestamp",,
843
+ ,1,time_offset,uint16,[N],,,,ms,,,,,Offset of PID reading [i] from start_timestamp+start_timestamp_ms. Readings may span accross seconds.,,
844
+ ,2,pid,byte,,,,,,,,,,Parameter ID,,
845
+ ,3,raw_data,byte,[N],,,,,,,,,Raw parameter data,,
846
+ ,4,pid_data_size,uint8,[N],,,,,,,,,"Optional, data size of PID[i]. If not specified refer to SAE J1979.",,
847
+ ,5,system_time,uint32,[N],,,,,,,,,"System time associated with sample expressed in ms, can be used instead of time_offset. There will be a system_time value for each raw_data element. For multibyte pids the system_time is repeated.",,
848
+ ,6,start_timestamp,date_time,,,,,,,,,,Timestamp of first sample recorded in the message. Used with time_offset to generate time of each sample,,
849
+ ,7,start_timestamp_ms,uint16,,,,,ms,,,,,Fractional part of start_timestamp,,
850
+ ,,,,,,,,,,,,,,,
851
+ nmea_sentence,,,,,,,,,,,,,,,
852
+ ,253,timestamp,date_time,,,,,s,,,,,Timestamp message was output,,1
853
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,"Fractional part of timestamp, added to timestamp",,1
854
+ ,1,sentence,string,,,,,,,,,,NMEA sentence,,83
855
+ ,,,,,,,,,,,,,,,
856
+ aviation_attitude,,,,,,,,,,,,,,,
857
+ ,253,timestamp,date_time,,,,,s,,,,,Timestamp message was output,,1
858
+ ,0,timestamp_ms,uint16,,,,,ms,,,,,"Fractional part of timestamp, added to timestamp",,1
859
+ ,1,system_time,uint32,[N],,,,ms,,,,,System time associated with sample expressed in ms.,,1
860
+ ,2,pitch,sint16,[N],,10430.38,,radians,,,,,Range -PI/2 to +PI/2,,1
861
+ ,3,roll,sint16,[N],,10430.38,,radians,,,,,Range -PI to +PI,,1
862
+ ,4,accel_lateral,sint16,[N],,100,,m/s^2,,,,,Range -78.4 to +78.4 (-8 Gs to 8 Gs),,1
863
+ ,5,accel_normal,sint16,[N],,100,,m/s^2,,,,,Range -78.4 to +78.4 (-8 Gs to 8 Gs),,1
864
+ ,6,turn_rate,sint16,[N],,1024,,radians/second,,,,,Range -8.727 to +8.727 (-500 degs/sec to +500 degs/sec),,1
865
+ ,7,stage,attitude_stage,[N],,,,,,,,,,,1
866
+ ,8,attitude_stage_complete,uint8,[N],,,,%,,,,,"The percent complete of the current attitude stage. Set to 0 for attitude stages 0, 1 and 2 and to 100 for attitude stage 3 by AHRS modules that do not support it. Range - 100",,1
867
+ ,9,track,uint16,[N],,10430.38,,radians,,,,,Track Angle/Heading Range 0 - 2pi,,1
868
+ ,10,validity,attitude_validity,[N],,,,,,,,,,,1
869
+ ,,,,,,,,,,,,,,,
870
+ video,,,,,,,,,,,,,,,
871
+ ,0,url,string,,,,,,,,,,,,
872
+ ,1,hosting_provider,string,,,,,,,,,,,,
873
+ ,2,duration,uint32,,,,,ms,,,,,Playback time of video,,
874
+ ,,,,,,,,,,,,,,,
875
+ video_title,,,,,,,,,,,,,,,
876
+ ,254,message_index,message_index,,,,,,,,,,Long titles will be split into multiple parts,,1
877
+ ,0,message_count,uint16,,,,,,,,,,Total number of title parts,,1
878
+ ,1,text,string,,,,,,,,,,,,80
879
+ ,,,,,,,,,,,,,,,
880
+ video_description,,,,,,,,,,,,,,,
881
+ ,254,message_index,message_index,,,,,,,,,,Long descriptions will be split into multiple parts,,1
882
+ ,0,message_count,uint16,,,,,,,,,,Total number of description parts,,1
883
+ ,1,text,string,,,,,,,,,,,,250
884
+ ,,,,,,,,,,,,,,,
885
+ video_clip,,,,,,,,,,,,,,,
886
+ ,0,clip_number,uint16,,,,,,,,,,,,
887
+ ,1,start_timestamp,date_time,,,,,,,,,,,,
888
+ ,2,start_timestamp_ms,uint16,,,,,,,,,,,,
889
+ ,3,end_timestamp,date_time,,,,,,,,,,,,
890
+ ,4,end_timestamp_ms,uint16,,,,,,,,,,,,
891
+ ,6,clip_start,uint32,,,,,ms,,,,,Start of clip in video time,,
892
+ ,7,clip_end,uint32,,,,,ms,,,,,End of clip in video time,,
893
+ ,,,,,,,,,,,,,,,
894
+ ,,,,,,,,,,,,,,,
895
+ set,,,,,,,,,,,,,,,
896
+ ,254,timestamp,date_time,,,,,,,,,,Timestamp of the set,,
897
+ ,0,duration,uint32,,,1000,,s,,,,,,,
898
+ ,3,repetitions,uint16,,,,,,,,,,# of repitions of the movement,,
899
+ ,4,weight,uint16,,,16,,kg,,,,,Amount of weight applied for the set,,
900
+ ,5,set_type,set_type,,,,,,,,,,,,
901
+ ,6,start_time,date_time,,,,,,,,,,Start time of the set,,
902
+ ,7,category,exercise_category,[N],,,,,,,,,,,
903
+ ,8,category_subtype,uint16,[N],,,,,,,,,"Based on the associated category, see [category]_exercise_names",,
904
+ ,9,weight_display_unit,fit_base_unit,,,,,,,,,,,,1
905
+ ,10,message_index,message_index,,,,,,,,,,,,
906
+ ,11,wkt_step_index,message_index,,,,,,,,,,,,
907
+ ,,,COURSE FILE MESSAGES,,,,,,,,,,,,
908
+ course,,,,,,,,,,,,,,,
909
+ ,4,sport,sport,,,,,,,,,,,,1
910
+ ,5,name,string,,,,,,,,,,,,16
911
+ ,6,capabilities,course_capabilities,,,,,,,,,,,,1
912
+ ,7,sub_sport,sub_sport,,,,,,,,,,,,1
913
+ ,,,,,,,,,,,,,,,
914
+ course_point,,,,,,,,,,,,,,,
915
+ ,254,message_index,message_index,,,,,,,,,,,,1
916
+ ,1,timestamp,date_time,,,,,,,,,,,,1
917
+ ,2,position_lat,sint32,,,,,semicircles,,,,,,,1
918
+ ,3,position_long,sint32,,,,,semicircles,,,,,,,1
919
+ ,4,distance,uint32,,,100,,m,,,,,,,1
920
+ ,5,type,course_point,,,,,,,,,,,,1
921
+ ,6,name,string,,,,,,,,,,,,16
922
+ ,8,favorite,bool,,,,,,,,,,,,1
923
+ ,,,,,,,,,,,,,,,
924
+ ,,,SEGMENT FILE MESSAGES,,,,,,,,,,,,
925
+ segment_id,,,,,,,,,,,,,Unique Identification data for a segment file,,
926
+ ,0,name,string,,,,,,,,,,Friendly name assigned to segment,,1
927
+ ,1,uuid,string,,,,,,,,,,UUID of the segment,,1
928
+ ,2,sport,sport,,,,,,,,,,Sport associated with the segment,,1
929
+ ,3,enabled,bool,,,,,,,,,,Segment enabled for evaluation,,1
930
+ ,4,user_profile_primary_key,uint32,,,,,,,,,,Primary key of the user that created the segment,,1
931
+ ,5,device_id,uint32,,,,,,,,,,ID of the device that created the segment,,1
932
+ ,6,default_race_leader,uint8,,,,,,,,,,Index for the Leader Board entry selected as the default race participant,,1
933
+ ,7,delete_status,segment_delete_status,,,,,,,,,,Indicates if any segments should be deleted,,1
934
+ ,8,selection_type,segment_selection_type,,,,,,,,,,Indicates how the segment was selected to be sent to the device,,1
935
+ ,,,,,,,,,,,,,,,
936
+ segment_leaderboard_entry,,,,,,,,,,,,,Unique Identification data for an individual segment leader within a segment file,,
937
+ ,254,message_index,message_index,,,,,,,,,,,,1
938
+ ,0,name,string,,,,,,,,,,Friendly name assigned to leader,,1
939
+ ,1,type,segment_leaderboard_type,,,,,,,,,,Leader classification,,1
940
+ ,2,group_primary_key,uint32,,,,,,,,,,Primary user ID of this leader,,1
941
+ ,3,activity_id,uint32,,,,,,,,,,ID of the activity associated with this leader time,,1
942
+ ,4,segment_time,uint32,,,1000,,s,,,,,Segment Time (includes pauses),,1
943
+ ,5,activity_id_string,string,,,,,,,,,,"String version of the activity_id. 21 characters long, express in decimal",,
944
+ ,,,,,,,,,,,,,,,
945
+ segment_point,,,,,,,,,,,,,Navigation and race evaluation point for a segment decribing a point along the segment path and time it took each segment leader to reach that point,,
946
+ ,254,message_index,message_index,,,,,,,,,,,,1
947
+ ,1,position_lat,sint32,,,,,semicircles,,,,,,,1
948
+ ,2,position_long,sint32,,,,,semicircles,,,,,,,1
949
+ ,3,distance,uint32,,,100,,m,,,,,Accumulated distance along the segment at the described point,,1
950
+ ,4,altitude,uint16,,,5,500,m,,,,,Accumulated altitude along the segment at the described point,,1
951
+ ,5,leader_time,uint32,[N],,1000,,s,,,,,Accumualted time each leader board member required to reach the described point. This value is zero for all leader board members at the starting point of the segment.,,1
952
+ ,,,,,,,,,,,,,,,
953
+ segment_lap,,,,,,,,,,,,,,,
954
+ ,254,message_index,message_index,,,,,,,,,,,,1
955
+ ,253,timestamp,date_time,,,,,s,,,,,Lap end time.,,1
956
+ ,0,event,event,,,,,,,,,,,,1
957
+ ,1,event_type,event_type,,,,,,,,,,,,1
958
+ ,2,start_time,date_time,,,,,,,,,,,,1
959
+ ,3,start_position_lat,sint32,,,,,semicircles,,,,,,,1
960
+ ,4,start_position_long,sint32,,,,,semicircles,,,,,,,1
961
+ ,5,end_position_lat,sint32,,,,,semicircles,,,,,,,1
962
+ ,6,end_position_long,sint32,,,,,semicircles,,,,,,,1
963
+ ,7,total_elapsed_time,uint32,,,1000,,s,,,,,Time (includes pauses),,1
964
+ ,8,total_timer_time,uint32,,,1000,,s,,,,,Timer Time (excludes pauses),,1
965
+ ,9,total_distance,uint32,,,100,,m,,,,,,,1
966
+ ,10,total_cycles,uint32,,,,,cycles,,,,,,,1
967
+ ,,total_strokes,uint32,,,,,strokes,,,sport,cycling,,,1
968
+ ,11,total_calories,uint16,,,,,kcal,,,,,,,1
969
+ ,12,total_fat_calories,uint16,,,,,kcal,,,,,If New Leaf,,1
970
+ ,13,avg_speed,uint16,,,1000,,m/s,,,,,,,1
971
+ ,14,max_speed,uint16,,,1000,,m/s,,,,,,,1
972
+ ,15,avg_heart_rate,uint8,,,,,bpm,,,,,,,1
973
+ ,16,max_heart_rate,uint8,,,,,bpm,,,,,,,1
974
+ ,17,avg_cadence,uint8,,,,,rpm,,,,,total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time,,1
975
+ ,18,max_cadence,uint8,,,,,rpm,,,,,,,1
976
+ ,19,avg_power,uint16,,,,,watts,,,,,total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time,,1
977
+ ,20,max_power,uint16,,,,,watts,,,,,,,1
978
+ ,21,total_ascent,uint16,,,,,m,,,,,,,1
979
+ ,22,total_descent,uint16,,,,,m,,,,,,,1
980
+ ,23,sport,sport,,,,,,,,,,,,1
981
+ ,24,event_group,uint8,,,,,,,,,,,,1
982
+ ,25,nec_lat,sint32,,,,,semicircles,,,,,North east corner latitude.,,1
983
+ ,26,nec_long,sint32,,,,,semicircles,,,,,North east corner longitude.,,1
984
+ ,27,swc_lat,sint32,,,,,semicircles,,,,,South west corner latitude.,,1
985
+ ,28,swc_long,sint32,,,,,semicircles,,,,,South west corner latitude.,,1
986
+ ,29,name,string,,,,,,,,,,,,16
987
+ ,30,normalized_power,uint16,,,,,watts,,,,,,,1
988
+ ,31,left_right_balance,left_right_balance_100,,,,,,,,,,,,1
989
+ ,32,sub_sport,sub_sport,,,,,,,,,,,,1
990
+ ,33,total_work,uint32,,,,,J,,,,,,,1
991
+ ,34,avg_altitude,uint16,,,5,500,m,,,,,,,1
992
+ ,35,max_altitude,uint16,,,5,500,m,,,,,,,1
993
+ ,36,gps_accuracy,uint8,,,,,m,,,,,,,1
994
+ ,37,avg_grade,sint16,,,100,,%,,,,,,,1
995
+ ,38,avg_pos_grade,sint16,,,100,,%,,,,,,,1
996
+ ,39,avg_neg_grade,sint16,,,100,,%,,,,,,,1
997
+ ,40,max_pos_grade,sint16,,,100,,%,,,,,,,1
998
+ ,41,max_neg_grade,sint16,,,100,,%,,,,,,,1
999
+ ,42,avg_temperature,sint8,,,,,C,,,,,,,1
1000
+ ,43,max_temperature,sint8,,,,,C,,,,,,,1
1001
+ ,44,total_moving_time,uint32,,,1000,,s,,,,,,,1
1002
+ ,45,avg_pos_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
1003
+ ,46,avg_neg_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
1004
+ ,47,max_pos_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
1005
+ ,48,max_neg_vertical_speed,sint16,,,1000,,m/s,,,,,,,1
1006
+ ,49,time_in_hr_zone,uint32,[N],,1000,,s,,,,,,,1
1007
+ ,50,time_in_speed_zone,uint32,[N],,1000,,s,,,,,,,1
1008
+ ,51,time_in_cadence_zone,uint32,[N],,1000,,s,,,,,,,1
1009
+ ,52,time_in_power_zone,uint32,[N],,1000,,s,,,,,,,1
1010
+ ,53,repetition_num,uint16,,,,,,,,,,,,1
1011
+ ,54,min_altitude,uint16,,,5,500,m,,,,,,,1
1012
+ ,55,min_heart_rate,uint8,,,,,bpm,,,,,,,1
1013
+ ,56,active_time,uint32,,,1000,,s,,,,,,,1
1014
+ ,57,wkt_step_index,message_index,,,,,,,,,,,,1
1015
+ ,58,sport_event,sport_event,,,,,,,,,,,,1
1016
+ ,59,avg_left_torque_effectiveness,uint8,,,2,,percent,,,,,,,1
1017
+ ,60,avg_right_torque_effectiveness,uint8,,,2,,percent,,,,,,,1
1018
+ ,61,avg_left_pedal_smoothness,uint8,,,2,,percent,,,,,,,1
1019
+ ,62,avg_right_pedal_smoothness,uint8,,,2,,percent,,,,,,,1
1020
+ ,63,avg_combined_pedal_smoothness,uint8,,,2,,percent,,,,,,,1
1021
+ ,64,status,segment_lap_status,,,,,,,,,,,,1
1022
+ ,65,uuid,string,,,,,,,,,,,,33
1023
+ ,66,avg_fractional_cadence,uint8,,,128,,rpm,,,,,fractional part of the avg_cadence,,1
1024
+ ,67,max_fractional_cadence,uint8,,,128,,rpm,,,,,fractional part of the max_cadence,,1
1025
+ ,68,total_fractional_cycles,uint8,,,128,,cycles,,,,,fractional part of the total_cycles,,1
1026
+ ,69,front_gear_shift_count,uint16,,,,,,,,,,,,1
1027
+ ,70,rear_gear_shift_count,uint16,,,,,,,,,,,,1
1028
+ ,71,time_standing,uint32,,,1000,,s,,,,,Total time spent in the standing position,,
1029
+ ,72,stand_count,uint16,,,,,,,,,,Number of transitions to the standing state,,
1030
+ ,73,avg_left_pco,sint8,,,,,mm,,,,,Average left platform center offset,,
1031
+ ,74,avg_right_pco,sint8,,,,,mm,,,,,Average right platform center offset,,
1032
+ ,75,avg_left_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Average left power phase angles. Data value indexes defined by power_phase_type.,,
1033
+ ,76,avg_left_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Average left power phase peak angles. Data value indexes defined by power_phase_type.,,
1034
+ ,77,avg_right_power_phase,uint8,[N],,0.7111111,,degrees,,,,,Average right power phase angles. Data value indexes defined by power_phase_type.,,
1035
+ ,78,avg_right_power_phase_peak,uint8,[N],,0.7111111,,degrees,,,,,Average right power phase peak angles. Data value indexes defined by power_phase_type.,,
1036
+ ,79,avg_power_position,uint16,[N],,,,watts,,,,,Average power by position. Data value indexes defined by rider_position_type.,,
1037
+ ,80,max_power_position,uint16,[N],,,,watts,,,,,Maximum power by position. Data value indexes defined by rider_position_type.,,
1038
+ ,81,avg_cadence_position,uint8,[N],,,,rpm,,,,,Average cadence by position. Data value indexes defined by rider_position_type.,,
1039
+ ,82,max_cadence_position,uint8,[N],,,,rpm,,,,,Maximum cadence by position. Data value indexes defined by rider_position_type.,,
1040
+ ,83,manufacturer,manufacturer,,,,,,,,,,Manufacturer that produced the segment,,
1041
+ ,,,,,,,,,,,,,,,
1042
+ ,,,SEGMENT LIST FILE MESSAGES,,,,,,,,,,,,
1043
+ segment_file,,,,,,,,,,,,,Summary of the unique segment and leaderboard information associated with a segment file. This message is used to compile a segment list file describing all segment files on a device. The segment list file is used when refreshing the contents of a segment file with the latest available leaderboard information.,,
1044
+ ,254,message_index,message_index,,,,,,,,,,,,1
1045
+ ,1,file_uuid,string,,,,,,,,,,UUID of the segment file,,1
1046
+ ,3,enabled,bool,,,,,,,,,,Enabled state of the segment file,,1
1047
+ ,4,user_profile_primary_key,uint32,,,,,,,,,,Primary key of the user that created the segment file,,1
1048
+ ,7,leader_type,segment_leaderboard_type,[N],,,,,,,,,Leader type of each leader in the segment file,,1
1049
+ ,8,leader_group_primary_key,uint32,[N],,,,,,,,,Group primary key of each leader in the segment file,,1
1050
+ ,9,leader_activity_id,uint32,[N],,,,,,,,,Activity ID of each leader in the segment file,,1
1051
+ ,10,leader_activity_id_string,string,[N],,,,,,,,,"String version of the activity ID of each leader in the segment file. 21 characters long for each ID, express in decimal",,
1052
+ ,11,default_race_leader,uint8,,,,,,,,,,Index for the Leader Board entry selected as the default race participant,,
1053
+ ,,,WORKOUT FILE MESSAGES,,,,,,,,,,,,
1054
+ workout,,,,,,,,,,,,,,,
1055
+ ,4,sport,sport,,,,,,,,,,,,1
1056
+ ,5,capabilities,workout_capabilities,,,,,,,,,,,,1
1057
+ ,6,num_valid_steps,uint16,,,,,,,,,,number of valid steps,,1
1058
+ ,8,wkt_name,string,,,,,,,,,,,,16
1059
+ ,11,sub_sport,sub_sport,,,,,,,,,,,,1
1060
+ ,14,pool_length,uint16,,,100,,m,,,,,,,1
1061
+ ,15,pool_length_unit,display_measure,,,,,,,,,,,,1
1062
+ ,,,,,,,,,,,,,,,
1063
+ workout_session,,,,,,,,,,,,,,,
1064
+ ,254,message_index,message_index,,,,,,,,,,,,1
1065
+ ,0,sport,sport,,,,,,,,,,,,1
1066
+ ,1,sub_sport,sub_sport,,,,,,,,,,,,1
1067
+ ,2,num_valid_steps,uint16,,,,,,,,,,,,1
1068
+ ,3,first_step_index,uint16,,,,,,,,,,,,1
1069
+ ,4,pool_length,uint16,,,100,,m,,,,,,,1
1070
+ ,5,pool_length_unit,display_measure,,,,,,,,,,,,1
1071
+ workout_step,,,,,,,,,,,,,,,
1072
+ ,254,message_index,message_index,,,,,,,,,,,,1
1073
+ ,0,wkt_step_name,string,,,,,,,,,,,,16
1074
+ ,1,duration_type,wkt_step_duration,,,,,,,,,,,,1
1075
+ ,2,duration_value,uint32,,,,,,,,,,,,1
1076
+ ,,duration_time,uint32,,,1000,,s,,,"duration_type,duration_type","time,repetition_time",,,1
1077
+ ,,duration_distance,uint32,,,100,,m,,,duration_type,distance,,,1
1078
+ ,,duration_hr,workout_hr,,,,,% or bpm,,,"duration_type,duration_type","hr_less_than,hr_greater_than",,,1
1079
+ ,,duration_calories,uint32,,,,,calories,,,duration_type,calories,,,1
1080
+ ,,duration_step,uint32,,,,,,,,"duration_type,duration_type,duration_type,duration_type,duration_type,duration_type,duration_type,duration_type","repeat_until_steps_cmplt,repeat_until_time,repeat_until_distance,repeat_until_calories,repeat_until_hr_less_than,repeat_until_hr_greater_than,repeat_until_power_less_than,repeat_until_power_greater_than",message_index of step to loop back to. Steps are assumed to be in the order by message_index. custom_name and intensity members are undefined for this duration type.,,1
1081
+ ,,duration_power,workout_power,,,,,% or watts,,,"duration_type,duration_type","power_less_than,power_greater_than",,,1
1082
+ ,,duration_reps,uint32,,,,,,,,duration_type,reps,,,1
1083
+ ,3,target_type,wkt_step_target,,,,,,,,,,,,1
1084
+ ,4,target_value,uint32,,,,,,,,,,,,1
1085
+ ,,target_speed_zone,uint32,,,,,,,,target_type,speed,speed zone (1-10);Custom =0;,,1
1086
+ ,,target_hr_zone,uint32,,,,,,,,target_type,heart_rate,hr zone (1-5);Custom =0;,,1
1087
+ ,,target_cadence_zone,uint32,,,,,,,,target_type,cadence,Zone (1-?); Custom = 0;,,1
1088
+ ,,target_power_zone,uint32,,,,,,,,target_type,power,Power Zone ( 1-7); Custom = 0;,,1
1089
+ ,,repeat_steps,uint32,,,,,,,,duration_type,repeat_until_steps_cmplt,# of repetitions,,1
1090
+ ,,repeat_time,uint32,,,1000,,s,,,duration_type,repeat_until_time,,,1
1091
+ ,,repeat_distance,uint32,,,100,,m,,,duration_type,repeat_until_distance,,,1
1092
+ ,,repeat_calories,uint32,,,,,calories,,,duration_type,repeat_until_calories,,,1
1093
+ ,,repeat_hr,workout_hr,,,,,% or bpm,,,"duration_type,
1094
+ duration_type","repeat_until_hr_less_than,
1095
+ repeat_until_hr_greater_than",,,1
1096
+ ,,repeat_power,workout_power,,,,,% or watts,,,"duration_type,
1097
+ duration_type","repeat_until_power_less_than,
1098
+ repeat_until_power_greater_than",,,1
1099
+ ,,target_stroke_type,swim_stroke,,,,,,,,target_type,swim_stroke,,,1
1100
+ ,5,custom_target_value_low,uint32,,,,,,,,,,,,1
1101
+ ,,custom_target_speed_low,uint32,,,1000,,m/s,,,target_type,speed,,,1
1102
+ ,,custom_target_heart_rate_low,workout_hr,,,,,% or bpm,,,target_type,heart_rate,,,1
1103
+ ,,custom_target_cadence_low,uint32,,,,,rpm,,,target_type,cadence,,,1
1104
+ ,,custom_target_power_low,workout_power,,,,,% or watts,,,target_type,power,,,1
1105
+ ,6,custom_target_value_high,uint32,,,,,,,,,,,,1
1106
+ ,,custom_target_speed_high,uint32,,,1000,,m/s,,,target_type,speed,,,1
1107
+ ,,custom_target_heart_rate_high,workout_hr,,,,,% or bpm,,,target_type,heart_rate,,,1
1108
+ ,,custom_target_cadence_high,uint32,,,,,rpm,,,target_type,cadence,,,1
1109
+ ,,custom_target_power_high,workout_power,,,,,% or watts,,,target_type,power,,,1
1110
+ ,7,intensity,intensity,,,,,,,,,,,,1
1111
+ ,8,notes,string,,,,,,,,,,,,50
1112
+ ,9,equipment,workout_equipment,,,,,,,,,,,,1
1113
+ ,10,exercise_category,exercise_category,,,,,,,,,,,,1
1114
+ ,11,exercise_name,uint16,,,,,,,,,,,,
1115
+ ,12,exercise_weight,uint16,,,100,,kg,,,,,,,
1116
+ ,13,weight_display_unit,fit_base_unit,,,,,,,,,,,,
1117
+ exercise_title,,,,,,,,,,,,,,,
1118
+ ,254,message_index,message_index,,,,,,,,,,,,1
1119
+ ,0,exercise_category,exercise_category,,,,,,,,,,,,1
1120
+ ,1,exercise_name,uint16,,,,,,,,,,,,1
1121
+ ,2,wkt_step_name,string,[N],,,,,,,,,,,200
1122
+ ,,,,,,,,,,,,,,,
1123
+ ,,,SCHEDULE FILE MESSAGES,,,,,,,,,,,,
1124
+ schedule,,,,,,,,,,,,,,,
1125
+ ,0,manufacturer,manufacturer,,,,,,,,,,Corresponds to file_id of scheduled workout / course.,,1
1126
+ ,1,product,uint16,,,,,,,,,,Corresponds to file_id of scheduled workout / course.,,1
1127
+ ,,favero_product,favero_product,,,,,,,,manufacturer,favero_electronics,,,
1128
+ ,,garmin_product,garmin_product,,,,,,,,"manufacturer,
1129
+ manufacturer,
1130
+ manufacturer","garmin,
1131
+ dynastream,
1132
+ dynastream_oem",,,1
1133
+ ,2,serial_number,uint32z,,,,,,,,,,Corresponds to file_id of scheduled workout / course.,,1
1134
+ ,3,time_created,date_time,,,,,,,,,,Corresponds to file_id of scheduled workout / course.,,1
1135
+ ,4,completed,bool,,,,,,,,,,TRUE if this activity has been started,,1
1136
+ ,5,type,schedule,,,,,,,,,,,,1
1137
+ ,6,scheduled_time,local_date_time,,,,,,,,,,,,1
1138
+ ,,,,,,,,,,,,,,,
1139
+ ,,,TOTALS FILE MESSAGES,,,,,,,,,,,,
1140
+ totals,,,,,,,,,,,,,,,
1141
+ ,254,message_index,message_index,,,,,,,,,,,,1
1142
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
1143
+ ,0,timer_time,uint32,,,,,s,,,,,Excludes pauses,,1
1144
+ ,1,distance,uint32,,,,,m,,,,,,,1
1145
+ ,2,calories,uint32,,,,,kcal,,,,,,,1
1146
+ ,3,sport,sport,,,,,,,,,,,,1
1147
+ ,4,elapsed_time,uint32,,,,,s,,,,,Includes pauses,,1
1148
+ ,5,sessions,uint16,,,,,,,,,,,,1
1149
+ ,6,active_time,uint32,,,,,s,,,,,,,1
1150
+ ,9,sport_index,uint8,,,,,,,,,,,,
1151
+ ,,,,,,,,,,,,,,,
1152
+ ,,,WEIGHT SCALE FILE MESSAGES,,,,,,,,,,,,
1153
+ weight_scale,,,,,,,,,,,,,,,
1154
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
1155
+ ,0,weight,weight,,,100,,kg,,,,,,,1
1156
+ ,1,percent_fat,uint16,,,100,,%,,,,,,,1
1157
+ ,2,percent_hydration,uint16,,,100,,%,,,,,,,1
1158
+ ,3,visceral_fat_mass,uint16,,,100,,kg,,,,,,,1
1159
+ ,4,bone_mass,uint16,,,100,,kg,,,,,,,1
1160
+ ,5,muscle_mass,uint16,,,100,,kg,,,,,,,1
1161
+ ,7,basal_met,uint16,,,4,,kcal/day,,,,,,,1
1162
+ ,8,physique_rating,uint8,,,,,,,,,,,,1
1163
+ ,9,active_met,uint16,,,4,,kcal/day,,,,,"~4kJ per kcal, 0.25 allows max 16384 kcal",,1
1164
+ ,10,metabolic_age,uint8,,,,,years,,,,,,,1
1165
+ ,11,visceral_fat_rating,uint8,,,,,,,,,,,,1
1166
+ ,12,user_profile_index,message_index,,,,,,,,,,Associates this weight scale message to a user. This corresponds to the index of the user profile message in the weight scale file.,,1
1167
+ ,,,,,,,,,,,,,,,
1168
+ ,,,BLOOD PRESSURE FILE MESSAGES,,,,,,,,,,,,
1169
+ blood_pressure,,,,,,,,,,,,,,,
1170
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
1171
+ ,0,systolic_pressure,uint16,,,,,mmHg,,,,,,,1
1172
+ ,1,diastolic_pressure,uint16,,,,,mmHg,,,,,,,1
1173
+ ,2,mean_arterial_pressure,uint16,,,,,mmHg,,,,,,,1
1174
+ ,3,map_3_sample_mean,uint16,,,,,mmHg,,,,,,,1
1175
+ ,4,map_morning_values,uint16,,,,,mmHg,,,,,,,1
1176
+ ,5,map_evening_values,uint16,,,,,mmHg,,,,,,,1
1177
+ ,6,heart_rate,uint8,,,,,bpm,,,,,,,1
1178
+ ,7,heart_rate_type,hr_type,,,,,,,,,,,,1
1179
+ ,8,status,bp_status,,,,,,,,,,,,1
1180
+ ,9,user_profile_index,message_index,,,,,,,,,,Associates this blood pressure message to a user. This corresponds to the index of the user profile message in the blood pressure file.,,1
1181
+ ,,,,,,,,,,,,,,,
1182
+ ,,,MONITORING FILE MESSAGES,,,,,,,,,,,,
1183
+ monitoring_info,,,,,,,,,,,,,,,
1184
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
1185
+ ,0,local_timestamp,local_date_time,,,,,s,,,,,Use to convert activity timestamps to local time if device does not support time zone and daylight savings time correction.,,1
1186
+ ,1,activity_type,activity_type,[N],,,,,,,,,,,
1187
+ ,3,cycles_to_distance,uint16,[N],,5000,,m/cycle,,,,,Indexed by activity_type,,
1188
+ ,4,cycles_to_calories,uint16,[N],,5000,,kcal/cycle,,,,,Indexed by activity_type,,
1189
+ ,5,resting_metabolic_rate,uint16,,,,,kcal / day,,,,,,,
1190
+ ,,,,,,,,,,,,,,,
1191
+ monitoring,,,,,,,,,,,,,,,
1192
+ ,253,timestamp,date_time,,,,,s,,,,,"Must align to logging interval, for example, time must be 00:00:00 for daily log.",,1
1193
+ ,0,device_index,device_index,,,,,,,,,,Associates this data to device_info message. Not required for file with single device (sensor).,,1
1194
+ ,1,calories,uint16,,,,,kcal,,,,,Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation,,1
1195
+ ,2,distance,uint32,,,100,,m,,,,,Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation.,,1
1196
+ ,3,cycles,uint32,,,2,,cycles,,,,,Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation.,,1
1197
+ ,,steps,uint32,,,1,,steps,,,"activity_type,
1198
+ activity_type","walking,
1199
+ running",,,
1200
+ ,,strokes,uint32,,,2,,strokes,,,"activity_type,
1201
+ activity_type","cycling,
1202
+ swimming",,,1
1203
+ ,4,active_time,uint32,,,1000,,s,,,,,,,1
1204
+ ,5,activity_type,activity_type,,,,,,,,,,,,1
1205
+ ,6,activity_subtype,activity_subtype,,,,,,,,,,,,1
1206
+ ,7,activity_level,activity_level,,,,,,,,,,,,
1207
+ ,8,distance_16,uint16,,,,,100 * m,,,,,,,1
1208
+ ,9,cycles_16,uint16,,,,,2 * cycles (steps),,,,,,,1
1209
+ ,10,active_time_16,uint16,,,,,s,,,,,,,1
1210
+ ,11,local_timestamp,local_date_time,,,,,,,,,,"Must align to logging interval, for example, time must be 00:00:00 for daily log.",,1
1211
+ ,12,temperature,sint16,,,100,,C,,,,,Avg temperature during the logging interval ended at timestamp,,
1212
+ ,14,temperature_min,sint16,,,100,,C,,,,,Min temperature during the logging interval ended at timestamp,,
1213
+ ,15,temperature_max,sint16,,,100,,C,,,,,Max temperature during the logging interval ended at timestamp,,
1214
+ ,16,activity_time,uint16,[8],,,,minutes,,,,,Indexed using minute_activity_level enum,,
1215
+ ,19,active_calories,uint16,,,,,kcal,,,,,,,
1216
+ ,24,current_activity_type_intensity,byte,,"activity_type,intensity",,,,"5,3",,,,Indicates single type / intensity for duration since last monitoring message.,,
1217
+ ,25,timestamp_min_8,uint8,,,,,min,,,,,,,
1218
+ ,26,timestamp_16,uint16,,,,,s,,,,,,,
1219
+ ,27,heart_rate,uint8,,,,,bpm,,,,,,,
1220
+ ,28,intensity,uint8,,,10,,,,,,,,,
1221
+ ,29,duration_min,uint16,,,,,min,,,,,,,
1222
+ ,30,duration,uint32,,,,,s,,,,,,,
1223
+ ,31,ascent,uint32,,,1000,,m,,,,,,,
1224
+ ,32,descent,uint32,,,1000,,m,,,,,,,
1225
+ ,33,moderate_activity_minutes,uint16,,,,,minutes,,,,,,,
1226
+ ,34,vigorous_activity_minutes,uint16,,,,,minutes,,,,,,,
1227
+ ,,,,,,,,,,,,,,,
1228
+ hr,,,,,,,,,,,,,,,
1229
+ ,253,timestamp,date_time,,,,,,,,,,,,1
1230
+ ,0,fractional_timestamp,uint16,,,32768,,s,,,,,,,1
1231
+ ,1,time256,uint8,,fractional_timestamp,256,,s,8,,,,,,1
1232
+ ,6,filtered_bpm,uint8,[N],,,,bpm,,,,,,,1
1233
+ ,9,event_timestamp,uint32,[N],,1024,,s,,,,,,,1
1234
+ ,10,event_timestamp_12,byte,[N],"event_timestamp,
1235
+ event_timestamp,
1236
+ event_timestamp,
1237
+ event_timestamp,
1238
+ event_timestamp,
1239
+ event_timestamp,
1240
+ event_timestamp,
1241
+ event_timestamp,
1242
+ event_timestamp,
1243
+ event_timestamp
1244
+ ","1024,
1245
+ 1024,
1246
+ 1024,
1247
+ 1024,
1248
+ 1024,
1249
+ 1024,
1250
+ 1024,
1251
+ 1024,
1252
+ 1024,
1253
+ 1024",,s,"12,
1254
+ 12,
1255
+ 12,
1256
+ 12,
1257
+ 12,
1258
+ 12,
1259
+ 12,
1260
+ 12,
1261
+ 12,
1262
+ 12","1,
1263
+ 1,
1264
+ 1,
1265
+ 1,
1266
+ 1,
1267
+ 1,
1268
+ 1,
1269
+ 1,
1270
+ 1,
1271
+ 1",,,,,1
1272
+ stress_level,,,,,,,,,,,,,Value from 1 to 100 calculated by FirstBeat,,
1273
+ ,0,stress_level_value,sint16,,,,,,,,,,,,
1274
+ ,1,stress_level_time,date_time,,,,,s,,,,,Time stress score was calculated,,
1275
+ ,,,OTHER MESSAGES,,,,,,,,,,,,
1276
+ memo_glob,,,,,,,,,,,,,,,
1277
+ ,250,part_index,uint32,,,,,,,,,,Sequence number of memo blocks,,
1278
+ ,0,memo,byte,[N],,,,,,,,,Block of utf8 bytes,,
1279
+ ,1,message_number,uint16,,,,,,,,,,Allows relating glob to another mesg If used only required for first part of each memo_glob,,
1280
+ ,2,message_index,message_index,,,,,,,,,,Index of external mesg,,
1281
+ ,,,,,,,,,,,,,,,
1282
+ ant_channel_id,,,,,,,,,,,,,,,
1283
+ ,0,channel_number,uint8,,,,,,,,,,,,
1284
+ ,1,device_type,uint8z,,,,,,,,,,,,
1285
+ ,2,device_number,uint16z,,,,,,,,,,,,
1286
+ ,3,transmission_type,uint8z,,,,,,,,,,,,
1287
+ ,4,device_index,device_index,,,,,,,,,,,,
1288
+ ant_rx,,,,,,,,,,,,,,,
1289
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
1290
+ ,0,fractional_timestamp,uint16,,,32768,,s,,,,,,,1
1291
+ ,1,mesg_id,byte,,,,,,,,,,,,1
1292
+ ,2,mesg_data,byte,[N],"channel_number,data,data,data,data,data,data,data,data",,,,"8,8,8,8,8,8,8,8,8",,,,,,9
1293
+ ,3,channel_number,uint8,,,,,,,,,,,,1
1294
+ ,4,data,byte,[N],,,,,,,,,,,8
1295
+ ,,,,,,,,,,,,,,,
1296
+ ant_tx,,,,,,,,,,,,,,,
1297
+ ,253,timestamp,date_time,,,,,s,,,,,,,1
1298
+ ,0,fractional_timestamp,uint16,,,32768,,s,,,,,,,1
1299
+ ,1,mesg_id,byte,,,,,,,,,,,,1
1300
+ ,2,mesg_data,byte,[N],"channel_number,data,data,data,data,data,data,data,data",,,,"8,8,8,8,8,8,8,8,8",,,,,,9
1301
+ ,3,channel_number,uint8,,,,,,,,,,,,1
1302
+ ,4,data,byte,[N],,,,,,,,,,,8
1303
+ exd_screen_configuration,,,,,,,,,,,,,,,
1304
+ ,0,screen_index,uint8,,,,,,,,,,,,1
1305
+ ,1,field_count,uint8,,,,,,,,,,number of fields in screen,,1
1306
+ ,2,layout,exd_layout,,,,,,,,,,,,1
1307
+ ,3,screen_enabled,bool,,,,,,,,,,,,1
1308
+ ,,,,,,,,,,,,,,,
1309
+ exd_data_field_configuration,,,,,,,,,,,,,,,
1310
+ ,0,screen_index,uint8,,,,,,,,,,,,1
1311
+ ,1,concept_field,byte,,"field_id,concept_count",,,,"4,4",,,,,,1
1312
+ ,2,field_id,uint8,,,,,,,,,,,,1
1313
+ ,3,concept_count,uint8,,,,,,,,,,,,1
1314
+ ,4,display_type,exd_display_type,,,,,,,,,,,,1
1315
+ ,5,title,string,[32],,,,,,,,,,,1
1316
+ ,,,,,,,,,,,,,,,
1317
+ exd_data_concept_configuration,,,,,,,,,,,,,,,
1318
+ ,0,screen_index,uint8,,,,,,,,,,,,1
1319
+ ,1,concept_field,byte,,"field_id,concept_index",,,,"4,4",,,,,,1
1320
+ ,2,field_id,uint8,,,,,,,,,,,,1
1321
+ ,3,concept_index,uint8,,,,,,,,,,,,1
1322
+ ,4,data_page,uint8,,,,,,,,,,,,1
1323
+ ,5,concept_key,uint8,,,,,,,,,,,,1
1324
+ ,6,scaling,uint8,,,,,,,,,,,,1
1325
+ ,8,data_units,exd_data_units,,,,,,,,,,,,1
1326
+ ,9,qualifier,exd_qualifiers,,,,,,,,,,,,1
1327
+ ,10,descriptor,exd_descriptors,,,,,,,,,,,,1
1328
+ ,11,is_signed,bool,,,,,,,,,,,,1
1329
+ field_description,,,,,,,,,,,,,Must be logged before developer field is used,,
1330
+ ,0,developer_data_index,uint8,,,,,,,,,,,,1
1331
+ ,1,field_definition_number,uint8,,,,,,,,,,,,1
1332
+ ,2,fit_base_type_id,fit_base_type,,,,,,,,,,,,1
1333
+ ,3,field_name,string,[N],,,,,,,,,,,64
1334
+ ,4,array,uint8,,,,,,,,,,,,0
1335
+ ,5,components,string,,,,,,,,,,,,0
1336
+ ,6,scale,uint8,,,,,,,,,,,,1
1337
+ ,7,offset,sint8,,,,,,,,,,,,1
1338
+ ,8,units,string,[N],,,,,,,,,,,16
1339
+ ,9,bits,string,,,,,,,,,,,,0
1340
+ ,10,accumulate,string,,,,,,,,,,,,0
1341
+ ,13,fit_base_unit_id,fit_base_unit,,,,,,,,,,,,1
1342
+ ,14,native_mesg_num,mesg_num,,,,,,,,,,,,1
1343
+ ,15,native_field_num,uint8,,,,,,,,,,,,1
1344
+ ,,,,,,,,,,,,,,,
1345
+ developer_data_id,,,,,,,,,,,,,Must be logged before field description,,
1346
+ ,0,developer_id,byte,[N],,,,,,,,,,,16
1347
+ ,1,application_id,byte,[N],,,,,,,,,,,16
1348
+ ,2,manufacturer_id,manufacturer,,,,,,,,,,,,1
1349
+ ,3,developer_data_index,uint8,,,,,,,,,,,,1
1350
+ ,4,application_version,uint32,,,,,,,,,,,,1
1351
+ dive_summary,,,,,,,,,,,,,,,
1352
+ ,253,timestamp,date_time,,,,,s,,,,,,,
1353
+ ,0,reference_mesg,mesg_num,,,,,,,,,,,,
1354
+ ,1,reference_index,message_index,,,,,,,,,,,,
1355
+ ,2,avg_depth,uint32,,,1000,,m,,,,,0 if above water,,
1356
+ ,3,max_depth,uint32,,,1000,,m,,,,,0 if above water,,
1357
+ ,4,surface_interval,uint32,,,1,,s,,,,,Time since end of last dive,,
1358
+ ,5,start_cns,uint8,,,1,,percent,,,,,,,
1359
+ ,6,end_cns,uint8,,,1,,percent,,,,,,,
1360
+ ,7,start_n2,uint16,,,1,,percent,,,,,,,
1361
+ ,8,end_n2,uint16,,,1,,percent,,,,,,,
1362
+ ,9,o2_toxicity,uint16,,,,,OTUs,,,,,,,
1363
+ ,10,dive_number,uint32,,,,,,,,,,,,
1364
+ ,11,bottom_time,uint32,,,1000,,s,,,,,,,