Ticket Created

WERETECH-7824

Fit Contributor fails to write developer fields to MESG_TYPE_SESSION or MSG_TYPE_LAP messages.

Connect IQ Fit Contributor creates  'developer_data_id' and 'field_description' messages for  MESG_TYPE_RECORD messages in the Activity FIT file, but it fails to create them with MESG_TYPE_SESSION or MESG_TYPE_LAP .

Code - adapted from Module: Toybox::FitContributor


 if ($.session == null)
        	{
            $.session = Record.createSession({ :name => "raceQs", :sport => Record.SPORT_GENERIC});
             $.session.start();
	bananasEarnedField  = $.session.createField(
	"bananas_earned",
	   5,
	   Toybox.FitContributor.DATA_TYPE_UINT16,
	     {:mesgType=>Toybox.FitContributor.MESG_TYPE_SESSION, :units=>"B"}
	        ); 
        }
        totalBananas = 100;
        bananasEarnedField.setData(totalBananas);
    


Procedure.

Compile and run an app containing the code in the SDK simulator or a physical device (I used a Fenix5)

Save the Activity to a local file.

Run FitCSVTool.jar from the Fit SDK package on the resulting fit file

Expected result:

To find In the Fit File contains 

Definition 9 developer_data_id
Data 9 developer_data_id
Definition 10 field_description
Data 10 field_description

Actual result

No developer_data_id or field_description Definition or Data messages in the output.

Further info

  1. When I modify the code to generate a MSG_TYPE_RECORD, the expected fields are generated and the developer data is found in the 'record' messages
  2. when I run with MSG_TYPE_LAP no developer_data_id or field_description Definition or Data messages in the output.
  3. I have built a Fit file decoding program in PHP to examine session, lap and record messages and to decode developer data by interpreting the developer_data_id and field_description messages. This confirms what I'm finding from FitCSVTool.


[UPDATE]

I have since discovered that when writing a developer field to a MSG_TYPE_LAP message, the data is  in fact written to the message, but there are no developer_data_id or field_description messages which explains why FitCSVTool fails to detect the value.

  • I have just emailed sample FIT and CSV  files to [email protected]

  • Further...I have been unable to implement a developer field in session with: 

    var boatNameField  = $.session.createField(
    			Ui.loadResource(Rez.Strings.boatNameSettingString),
    			0,
    	        Toybox.FitContributor.DATA_TYPE_STRING,
    	            {:mesgType=>Toybox.FitContributor.MESG_TYPE_SESSION, :count => 14}
    	   	);
    	   	
    	   		   	engine.markNameField  = $.session.createField(
    			"mark_round_name",
    			1,
    	        Toybox.FitContributor.DATA_TYPE_STRING,
    	            {:mesgType=>Toybox.FitContributor.MESG_TYPE_LAP, :count => 14}
    	   	);	          
         	engine.markLatField  = $.session.createField(
    	            "mark_round_lat",
    	            2,
    	            Toybox.FitContributor.DATA_TYPE_SINT32,
    	            {:mesgType=>Toybox.FitContributor.MESG_TYPE_LAP }
    	        );	         
    	   	....
    	   	
    	   	      $.session.start();	
                    boatNameField.setData(App.AppBase.getProperty("boatName"));

    With my decoder, I am detecting the LAP messages (but they're not showing tn the CSV from fitCSVTool ) but neither my decoder nor the fitCSVTool are detecting the SESSION message.

    I will try to attach the FIT file to a PM to you.

  • There must be some differences in our versions of the fitCSVTool.

    Here's the CSV from fitCSVTool.jar of a short test run today:

    Type,Local Number,Message,Field 1,Value 1,Units 1,Field 2,Value 2,Units 2,Field 3,Value 3,Units 3,Field 4,Value 4,Units 4,Field 5,Value 5,Units 5,Field 6,Value 6,Units 6,Field 7,Value 7,Units 7,Field 8,Value 8,Units 8,Field 9,Value 9,Units 9,Field 10,Value 10,Units 10,Field 11,Value 11,Units 11,Field 12,Value 12,Units 12,Field 13,Value 13,Units 13,Field 14,Value 14,Units 14,Field 15,Value 15,Units 15,Field 16,Value 16,Units 16,Field 17,Value 17,Units 17,Field 18,Value 18,Units 18,Field 19,Value 19,Units 19,Field 20,Value 20,Units 20,Field 21,Value 21,Units 21,Field 22,Value 22,Units 22,Field 23,Value 23,Units 23,Field 24,Value 24,Units 24,Field 25,Value 25,Units 25,Field 26,Value 26,Units 26,Field 27,Value 27,Units 27,Field 28,Value 28,Units 28,Field 29,Value 29,Units 29,Field 30,Value 30,Units 30,Field 31,Value 31,Units 31,Field 32,Value 32,Units 32,Field 33,Value 33,Units 33,Field 34,Value 34,Units 34,Field 35,Value 35,Units 35,Field 36,Value 36,Units 36,Field 37,Value 37,Units 37,Field 38,Value 38,Units 38,Field 39,Value 39,Units 39,Field 40,Value 40,Units 40,Field 41,Value 41,Units 41,Field 42,Value 42,Units 42,Field 43,Value 43,Units 43,Field 44,Value 44,Units 44,Field 45,Value 45,Units 45,Field 46,Value 46,Units 46,Field 47,Value 47,Units 47,Field 48,Value 48,Units 48,Field 49,Value 49,Units 49,Field 50,Value 50,Units 50,Field 51,Value 51,Units 51,Field 52,Value 52,Units 52,Field 53,Value 53,Units 53,Field 54,Value 54,Units 54,Field 55,Value 55,Units 55,Field 56,Value 56,Units 56,Field 57,Value 57,Units 57,Field 58,Value 58,Units 58,Field 59,Value 59,Units 59,Field 60,Value 60,Units 60,Field 61,Value 61,Units 61,Field 62,Value 62,Units 62,Field 63,Value 63,Units 63,Field 64,Value 64,Units 64,Field 65,Value 65,Units 65,Field 66,Value 66,Units 66,Field 67,Value 67,Units 67,Field 68,Value 68,Units 68,Field 69,Value 69,Units 69,Field 70,Value 70,Units 70,Field 71,Value 71,Units 71,Field 72,Value 72,Units 72,Field 73,Value 73,Units 73,Field 74,Value 74,Units 74,Field 75,Value 75,Units 75,Field 76,Value 76,Units 76,Field 77,Value 77,Units 77,Field 78,Value 78,Units 78,Field 79,Value 79,Units 79,Field 80,Value 80,Units 80,Field 81,Value 81,Units 81,Field 82,Value 82,Units 82,Field 83,Value 83,Units 83,Field 84,Value 84,Units 84,Field 85,Value 85,Units 85,Field 86,Value 86,Units 86,Field 87,Value 87,Units 87,Field 88,Value 88,Units 88,Field 89,Value 89,Units 89,Field 90,Value 90,Units 90,Field 91,Value 91,Units 91,Field 92,Value 92,Units 92,Field 93,Value 93,Units 93,
    Definition,0,file_id,serial_number,1,,time_created,1,,unknown,1,,manufacturer,1,,product,1,,number,1,,type,1,,
    Data,0,file_id,serial_number,"3939592256",,time_created,"937284902",,manufacturer,"1",,garmin_product,"2697",,type,"4",,,,,,,,
    Definition,1,file_creator,unknown,20,,software_version,1,,hardware_version,1,,,,,,,,,,,,,,
    Data,1,file_creator,software_version,"1420",,,,,,,,,,,,,,,,,,,,
    Definition,2,event,timestamp,1,,data,1,,event,1,,event_type,1,,event_group,1,,unknown,1,,unknown,1,,
    Data,2,event,timestamp,"937284901",s,timer_trigger,"0",,event,"0",,event_type,"0",,event_group,"0",,,,,,,,
    Definition,3,device_info,timestamp,1,,serial_number,1,,cum_operating_time,1,,unknown,1,,unknown,1,,unknown,1,,unknown,32,,unknown,1,,unknown,1,,manufacturer,1,,product,1,,software_version,1,,battery_voltage,1,,unknown,1,,ant_device_number,1,,device_index,1,,device_type,1,,hardware_version,1,,unknown,1,,battery_status,1,,sensor_position,1,,ant_transmission_type,1,,ant_network,1,,unknown,1,,source_type,1,,unknown,6,,unknown,1,,
    Data,3,device_info,timestamp,"937284901",s,serial_number,"3939592256",,manufacturer,"1",,garmin_product,"2697",,software_version,"14.2",,device_index,"0",,source_type,"5",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,3,device_info,timestamp,"937284901",s,manufacturer,"1",,garmin_product,"2697",,software_version,"14.2",,device_index,"1",,device_type,"4",,source_type,"5",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,3,device_info,timestamp,"937284901",s,manufacturer,"1",,garmin_product,"2957",,software_version,"2.5",,device_index,"2",,device_type,"0",,source_type,"5",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,3,device_info,timestamp,"937284901",s,software_version,"0.0",,device_index,"3",,device_type,"3",,source_type,"5",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,3,device_info,timestamp,"937284901",s,manufacturer,"1",,garmin_product,"0",,software_version,"606.72",,device_index,"4",,device_type,"8",,source_type,"5",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,3,device_info,timestamp,"937284901",s,software_version,"3.31",,device_index,"5",,device_type,"10",,source_type,"5",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,4,unknown,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,4,unknown,unknown,"937284901",,unknown,"2",,unknown,"2",,unknown,"3",,unknown,"1",,unknown,"0",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,5,unknown,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,5,unknown,unknown,"937284901",,unknown,"937180782",,unknown,"937504782",,unknown,"1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,6,device_settings,utc_offset,1,,time_offset,1,,auto_activity_detect,1,,unknown,1,,unknown,1,,autosync_min_steps,1,,autosync_min_time,1,,active_time_zone,1,,unknown,1,,time_mode,1,,time_zone_offset,1,,unknown,1,,unknown,1,,unknown,1,,backlight_mode,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,activity_tracker_enabled,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,move_alert_enabled,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,display_orientation,1,,mounting_side,1,,unknown,11,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,lactate_threshold_autodetect_enabled,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,number_of_screens,1,,unknown,1,,unknown,1,,unknown,30,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,
    Data,6,device_settings,utc_offset,"0",,time_offset,"36000",s,auto_activity_detect,"2147483647",,autosync_min_steps,"2000",steps,autosync_min_time,"240",minutes,active_time_zone,"0",,unknown,"2",,time_mode,"0",,time_zone_offset,"0.0",hr,unknown,"0",,unknown,"3",,backlight_mode,"3",,unknown,"8",,unknown,"20",,unknown,"50",,unknown,"0",,unknown,"254",,unknown,"0",,activity_tracker_enabled,"1",,unknown,"1",,unknown,"1",,unknown,"1",,unknown,"0",,unknown,"1",,move_alert_enabled,"0",,unknown,"1",,unknown,"0",,unknown,"1",,mounting_side,"1",,unknown,"1|0|0|0|0|0|0|1|0|1|0",,unknown,"1",,unknown,"1",,unknown,"2",,unknown,"2",,unknown,"2",,unknown,"3",,unknown,"1",,lactate_threshold_autodetect_enabled,"1",,unknown,"1",,unknown,"1",,unknown,"0",,unknown,"0",,unknown,"1",,unknown,"1",,unknown,"3",,unknown,"2",,unknown,"8|7|2|1|6|3|4|0|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255|255",,unknown,"1",,unknown,"1",,unknown,"1",,unknown,"1",,unknown,"1",,unknown,"1",,unknown,"20",,unknown,"8",,unknown,"1",,unknown,"1",,unknown,"1",,unknown,"1",,unknown,"0",,unknown,"100",,unknown,"0",,unknown,"0",,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,7,user_profile,wake_time,1,,sleep_time,1,,unknown,1,,unknown,1,,unknown,1,,weight,1,,user_running_step_length,1,,user_walking_step_length,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,gender,1,,height,1,,language,1,,elev_setting,1,,weight_setting,1,,resting_heart_rate,1,,hr_setting,1,,speed_setting,1,,dist_setting,1,,activity_class,1,,position_setting,1,,temperature_setting,1,,unknown,1,,height_setting,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,7,user_profile,wake_time,"21600",,sleep_time,"79200",,weight,"73.0",kg,unknown,"0",,unknown,"0",,unknown,"0",,gender,"1",,height,"1.73",m,language,"0",,elev_setting,"0",,weight_setting,"0",,resting_heart_rate,"0",bpm,hr_setting,"1",,speed_setting,"0",,dist_setting,"0",,activity_class,"50",,position_setting,"2",,temperature_setting,"0",,unknown,"78",,height_setting,"0",,unknown,"0",,unknown,"0",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,8,unknown,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,8,unknown,unknown,"937284901",,unknown,"11006",,unknown,"730",,unknown,"1",,unknown,"750",,unknown,"0",,unknown,"200",,unknown,"0",,unknown,"41",,unknown,"173",,unknown,"1",,unknown,"70",,unknown,"158",,unknown,"1",,unknown,"48",,unknown,"0",,unknown,"1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,9,sport,name,24,,unknown,4,,unknown,1,,sport,1,,sub_sport,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,9,sport,name,"raceQs",,unknown,"0|0|0|0",,unknown,"29",,sport,"0",,sub_sport,"0",,unknown,"1",,unknown,"0",,unknown,"1",,unknown,"0",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,10,unknown,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,10,unknown,unknown,"160934",,unknown,"160934",,unknown,"15240",,unknown,"0",,unknown,"6706",,unknown,"1341",,unknown,"6706",,unknown,"0",,unknown,"6",,unknown,"0",,unknown,"10",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"1",,unknown,"0",,unknown,"1",,unknown,"0",,unknown,"1",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"1",,unknown,"30",,unknown,"1",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,11,zones_target,unknown,1,,functional_threshold_power,1,,unknown,1,,max_heart_rate,1,,threshold_heart_rate,1,,hr_calc_type,1,,pwr_calc_type,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,11,zones_target,unknown,"0",,hr_calc_type,"1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,12,record,timestamp,1,,position_lat,1,,position_long,1,,distance,1,,altitude,1,,speed,1,,unknown,1,,cadence,1,,temperature,1,,fractional_cadence,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284901",s,position_lat,"-403009480",semicircles,position_long,"1803722773",semicircles,distance,"0.0",m,altitude,"-131.0",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-131.0",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,13,lap,timestamp,1,,start_time,1,,start_position_lat,1,,start_position_long,1,,end_position_lat,1,,end_position_long,1,,total_elapsed_time,1,,total_timer_time,1,,total_distance,1,,total_cycles,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,total_work,1,,unknown,1,,time_standing,1,,avg_left_power_phase,4,,avg_left_power_phase_peak,4,,avg_right_power_phase,4,,avg_right_power_phase_peak,4,,avg_power_position,2,,max_power_position,2,,message_index,1,,total_calories,1,,total_fat_calories,1,,avg_speed,1,,max_speed,1,,avg_power,1,,max_power,1,,total_ascent,1,,total_descent,1,,num_lengths,1,,normalized_power,1,,left_right_balance,1,,first_length_index,1,,avg_stroke_distance,1,,num_active_lengths,1,,wkt_step_index,1,,unknown,1,,avg_vertical_oscillation,1,,avg_stance_time_percent,1,,avg_stance_time,1,,unknown,1,,unknown,1,,unknown,1,,stand_count,1,,avg_vertical_ratio,1,,avg_stance_time_balance,1,,avg_step_length,1,,unknown,1,,unknown,1,,event,1,,event_type,1,,avg_heart_rate,1,,max_heart_rate,1,,avg_cadence,1,,max_cadence,1,,intensity,1,,lap_trigger,1,,sport,1,,event_group,1,,swim_stroke,1,,sub_sport,1,,avg_temperature,1,,max_temperature,1,,unknown,1,,avg_fractional_cadence,1,,max_fractional_cadence,1,,total_fractional_cycles,1,,avg_left_torque_effectiveness,1,,avg_right_torque_effectiveness,1,,avg_left_pedal_smoothness,1,,avg_right_pedal_smoothness,1,,avg_combined_pedal_smoothness,1,,avg_left_pco,1,,avg_right_pco,1,,avg_cadence_position,2,,max_cadence_position,2,,unknown,1,,undefined-dev-data,14,,undefined-dev-data,4,,undefined-dev-data,4,,
    Data,13,lap,timestamp,"937284901",s,start_time,"937284901",,total_elapsed_time,"0.196",s,total_timer_time,"0.196",s,message_index,"0",,event,"9",,event_type,"1",,lap_trigger,"0",,sport,"0",,sub_sport,"0",,null,"32|76|77|58|32|82|67|66|32|0|0|0|0|0",null,null,"32|144|250|231",null,null,"128|160|130|107",null,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284902",s,position_lat,"-403009448",semicircles,position_long,"1803722754",semicircles,distance,"0.0",m,altitude,"-131.0",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-131.0",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284903",s,position_lat,"-403009401",semicircles,position_long,"1803722731",semicircles,distance,"0.0",m,altitude,"-131.0",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-131.0",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284904",s,position_lat,"-403009300",semicircles,position_long,"1803722646",semicircles,distance,"0.0",m,altitude,"-129.2",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-129.2",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284905",s,position_lat,"-403009271",semicircles,position_long,"1803722649",semicircles,distance,"0.0",m,altitude,"-124.80000000000001",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-124.80000000000001",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284906",s,position_lat,"-403009269",semicircles,position_long,"1803722677",semicircles,distance,"0.17",m,altitude,"-120.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-120.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284907",s,position_lat,"-403009272",semicircles,position_long,"1803722688",semicircles,distance,"0.25",m,altitude,"-118.39999999999998",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-118.39999999999998",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284908",s,position_lat,"-403009262",semicircles,position_long,"1803722683",semicircles,distance,"0.25",m,altitude,"-117.39999999999998",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-117.39999999999998",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284909",s,position_lat,"-403009264",semicircles,position_long,"1803722662",semicircles,distance,"0.25",m,altitude,"-117.0",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-117.0",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284910",s,position_lat,"-403009281",semicircles,position_long,"1803722646",semicircles,distance,"0.36",m,altitude,"-116.80000000000001",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.80000000000001",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284911",s,position_lat,"-403009284",semicircles,position_long,"1803722632",semicircles,distance,"0.42",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284912",s,position_lat,"-403009280",semicircles,position_long,"1803722622",semicircles,distance,"0.49",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284913",s,position_lat,"-403009279",semicircles,position_long,"1803722616",semicircles,distance,"0.54",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284914",s,position_lat,"-403009271",semicircles,position_long,"1803722603",semicircles,distance,"0.6",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284915",s,position_lat,"-403009255",semicircles,position_long,"1803722576",semicircles,distance,"0.83",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284916",s,position_lat,"-403009236",semicircles,position_long,"1803722531",semicircles,distance,"1.22",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284917",s,position_lat,"-403009225",semicircles,position_long,"1803722519",semicircles,distance,"1.36",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,12,record,timestamp,"937284918",s,position_lat,"-403009209",semicircles,position_long,"1803722489",semicircles,distance,"1.62",m,altitude,"-116.60000000000002",m,speed,"0.0",m/s,unknown,"0",,cadence,"0",rpm,temperature,"24",C,fractional_cadence,"0.0",rpm,enhanced_altitude,"-116.60000000000002",m,enhanced_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,2,event,timestamp,"937284918",s,data,"1",,event,"38",,event_type,"3",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,2,event,timestamp,"937284918",s,data,"200",,event,"48",,event_type,"3",,event_group,"1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,13,lap,timestamp,"937284919",s,start_time,"937284901",,start_position_lat,"-403009480",semicircles,start_position_long,"1803722773",semicircles,end_position_lat,"-403009209",semicircles,end_position_long,"1803722489",semicircles,total_elapsed_time,"17.946",s,total_timer_time,"17.946",s,total_distance,"1.62",m,total_cycles,"0",cycles,unknown,"-403009209",,unknown,"1803722773",,unknown,"-403009480",,unknown,"1803722489",,message_index,"1",,total_calories,"0",kcal,avg_speed,"0.09",m/s,max_speed,"0.0",m/s,total_ascent,"0",m,total_descent,"0",m,event,"9",,event_type,"1",,avg_cadence,"0",rpm,max_cadence,"0",rpm,lap_trigger,"7",,sport,"0",,sub_sport,"0",,avg_temperature,"24",C,max_temperature,"24",C,avg_fractional_cadence,"0.0",rpm,max_fractional_cadence,"0.0",rpm,unknown,"24",,enhanced_avg_speed,"0.09",m/s,enhanced_max_speed,"0.0",m/s,null,"32|76|77|58|32|82|67|66|32|0|0|0|0|0",null,null,"32|144|250|231",null,null,"128|160|130|107",null,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,14,unknown,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,14,unknown,unknown,"937284919",,unknown,"3358",,unknown,"0",,unknown,"183989",,unknown,"46025",,unknown,"704405",,unknown,"0",,unknown,"0",,unknown,"18479",,unknown,"1",,unknown,"53311",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"60",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"0",,unknown,"1",,unknown,"0",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,15,session,timestamp,1,,start_time,1,,start_position_lat,1,,start_position_long,1,,total_elapsed_time,1,,total_timer_time,1,,total_distance,1,,total_cycles,1,,nec_lat,1,,nec_long,1,,swc_lat,1,,swc_long,1,,unknown,1,,unknown,1,,avg_stroke_count,1,,total_work,1,,unknown,1,,unknown,16,,time_standing,1,,avg_left_power_phase,4,,avg_left_power_phase_peak,4,,avg_right_power_phase,4,,avg_right_power_phase_peak,4,,avg_power_position,2,,max_power_position,2,,unknown,1,,message_index,1,,total_calories,1,,avg_speed,1,,max_speed,1,,avg_power,1,,max_power,1,,total_ascent,1,,total_descent,1,,first_lap_index,1,,num_laps,1,,unknown,1,,normalized_power,1,,training_stress_score,1,,intensity_factor,1,,left_right_balance,1,,avg_stroke_distance,1,,pool_length,1,,threshold_power,1,,num_active_lengths,1,,unknown,1,,unknown,1,,avg_vertical_oscillation,1,,avg_stance_time_percent,1,,avg_stance_time,1,,unknown,1,,unknown,1,,unknown,1,,stand_count,1,,avg_vertical_ratio,1,,avg_stance_time_balance,1,,avg_step_length,1,,unknown,1,,unknown,1,,unknown,1,,event,1,,event_type,1,,sport,1,,sub_sport,1,,avg_heart_rate,1,,max_heart_rate,1,,avg_cadence,1,,max_cadence,1,,total_training_effect,1,,event_group,1,,trigger,1,,swim_stroke,1,,pool_length_unit,1,,avg_temperature,1,,max_temperature,1,,unknown,1,,avg_fractional_cadence,1,,max_fractional_cadence,1,,total_fractional_cycles,1,,avg_left_torque_effectiveness,1,,avg_right_torque_effectiveness,1,,avg_left_pedal_smoothness,1,,avg_right_pedal_smoothness,1,,avg_combined_pedal_smoothness,1,,unknown,1,,avg_left_pco,1,,avg_right_pco,1,,avg_cadence_position,2,,max_cadence_position,2,,total_anaerobic_training_effect,1,,unknown,2,,unknown,1,,unknown,1,,
    Data,15,session,timestamp,"937284919",s,start_time,"937284919",,start_position_lat,"-403009480",semicircles,start_position_long,"1803722773",semicircles,total_elapsed_time,"18.142",s,total_timer_time,"18.142",s,total_distance,"1.62",m,nec_lat,"-403009209",semicircles,nec_long,"1803722773",semicircles,swc_lat,"-403009480",semicircles,swc_long,"1803722489",semicircles,unknown,"-403009209",,unknown,"1803722489",,unknown,"raceQs",,unknown,"0",,message_index,"0",,total_calories,"0",kcal,avg_speed,"0.089",m/s,max_speed,"0.0",m/s,total_ascent,"0",m,total_descent,"0",m,first_lap_index,"0",,num_laps,"2",,unknown,"0",,unknown,"0",,event,"9",,event_type,"1",,sport,"0",,sub_sport,"0",,trigger,"0",,avg_temperature,"24",C,max_temperature,"24",C,unknown,"0",,unknown,"24",,unknown,"0",,enhanced_avg_speed,"0.089",m/s,enhanced_max_speed,"0.0",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Definition,0,activity,timestamp,1,,total_timer_time,1,,local_timestamp,1,,num_sessions,1,,type,1,,event,1,,event_type,1,,event_group,1,,unknown,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    Data,0,activity,timestamp,"937284919",,total_timer_time,"18.142",s,local_timestamp,"937320919",,num_sessions,"1",,type,"0",,event,"26",,event_type,"1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    
    
    

    As you can see, there are no "field_description" messages.

    However, I have  now run completed my fit file decoder and I find that the fields I create in the LAP message (mark_round_name/lat/lon) are being populated.

    I have had to write the decoder from scratch in PHP as I'm developing for a Unix web server and the SDK tools are written in Java, C# or C which would only run on a user's device, not a web server.

        [avg_cadence_position] => 65535
        [max_cadence_position] => 65535
        [unknown-124] => 127
        [mark_round_name] =>  LM: RCB 
        [mark_round_lat] => -403009504
        [mark_round_lon] => 1803722880
    

    So the issue would seem to be with my version of fitCSVTool.jar which is not reporting the developer fields. I'm using the file from FitSDKRelease_20.96.00 2.

    I must say the development of the fit file decoder was significantly hampered by the missing Global Message Types and field definitions in the supplied Profile.xlsx file, and I haven't had any joy in getting the missing ones decoded.

  • I'm trying to reproduce this issue. I've run the code below on both sim and on a F5x ( I don't have a F5 available right now ). So far, I do not see any missing info. Here is what I'm doing. Let me know if there is anything in the code or the process that i'm doing differently that might cause the issue your are seeing.

    Code:

    using Toybox.WatchUi;
    using Toybox.ActivityRecording;
    
    var session = null;
    var bananasEarnedSession;
    var bananasEarnedLap;
    
    class FitContribTestDelegate extends WatchUi.BehaviorDelegate {
    
        function initialize() {
            BehaviorDelegate.initialize();
        }
    
        function onSelect(){
    
            if ($.session == null){
                $.session = ActivityRecording.createSession({ :name => "raceQs", :sport => ActivityRecording.SPORT_GENERIC});
                $.session.start();
    	        bananasEarnedSession  = $.session.createField(
                    "bananaSessionName",
    	            5,
    	            Toybox.FitContributor.DATA_TYPE_UINT16,
    	            {:mesgType=>Toybox.FitContributor.MESG_TYPE_SESSION, :units=>"SessionUnit"}
    	        );
    
                bananasEarnedLap  = $.session.createField(
                    "bananaLapName",
    	            6,
    	            Toybox.FitContributor.DATA_TYPE_UINT16,
    	            {:mesgType=>Toybox.FitContributor.MESG_TYPE_LAP, :units=>"SessionUnit"}
    	        );
            }
            var totalBananas = 100;
            bananasEarnedSession.setData(totalBananas);
    
            var lapValue = 999;
            bananasEarnedLap.setData(lapValue);
    
        }
    
        function onBack() {
            session.addLap();
            session.stop();
            session.save();
            session = null;
            System.println("Activity was recorded");
    
            return true;
        }
    
    
        function onMenu() {
            WatchUi.pushView(new Rez.Menus.MainMenu(), new FitContribTestMenuDelegate(), WatchUi.SLIDE_UP);
            return true;
        }
    
    }

    REZ:

    <resources>    
        <fitContributions>
            <fitField id="5" displayInChart="false" displayInActivitySummary="true" sortOrder = "1" precision="2"
            chartTitle="@Strings.SessionTitle" dataLabel="@Strings.SessionDataLabel"
            unitLabel="@Strings.SessionUnit" />
            <fitField id="6" displayInChart="false" displayInActivityLaps="true" sortOrder = "2" precision="2"
            chartTitle="@Strings.LapTitle" dataLabel="@Strings.LapDataLabel"
            unitLabel="@Strings.LapUnit" />
        </fitContributions>
    </resources>
    
    <strings>
        <string id="AppName">FitContribTest</string>
    
        <string id="prompt">Click the menu button</string>
    
        <string id="menu_label_1">Item 1</string>
        <string id="menu_label_2">Item 2</string>
        
        <string id="SessionTitle">Session Title AAA</string>
        <string id="SessionDataLabel">Session Data Label AAA</string>
        <string id="SessionUnit">Session Unit AAA</string>
        <string id="LapTitle">Lap Title AAA</string>
        <string id="LapDataLabel">Lap Data Label AAA</string>
        <string id="LapUnit">Lap Unit AAA</string>
    </strings>
    

    1. Build that project and run on device or sim
    2. Parse the resulting .FIT file with FitToCSV
    3. look for developer_data_id and field_description for Session and Lap contributions.

    Here are snippets from my Simulator and Device Fit.csv's (Sorry if formatting doesn't come through)

    Definition | 10  | developer_data_id | developer_id  | 16                                           | application_id          | 16 |

    Data        | 10  | developer_data_id | application_id | 0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0 | application_version |

    Definition | 11  | field_description    | field_name      | 64                                           | units                        | 16 |

    Data        | 11  | field_description    | field_name      | bananaLapName                    | units                        | SessionUnit |

    Data        | 11  | field_description    | field_name      | bananaSessionName             | units                        | SessionUnit |

    As far as I can tell nothing is off here, but I could be misunderstanding something.