I am exploring the use of createField() to capture some user data from my watch app, and have created and populated a test field in the session message with:
$.session = Record.createSession({ :name => "raceQs", :sport => Record.SPORT_GENERIC});
var options = {:mesgType=>Toybox.FitContributor.MESG_TYPE_SESSION};
var testField = $.session.createField("testField",99,Toybox.FitContributor.DATA_TYPE_UINT32 ,options);
testField.setData(999);
$.session.start();
As I couldn't find any guidance in the doco, I have used an arbitrary value of 99 as the fieldId.
I have decoded the session message in the resultant FIT file, and can locate the session name "raceQs" in an undefined field, but can't find the created field in the "session" message.
253 4 6 timestamp 0xd598bc37 uint32 935106773
2 4 6 start_time 0xbf98bc37 uint32 935106751
3 4 5 start_position_lat 0x6c4fe019 sint32 434130796
4 4 5 start_position_long 0xebe997ba sint32 -1164449301
7 4 6 total_elapsed_time 0x6c520000 uint32 21100
8 4 6 total_timer_time 0x6c520000 uint32 21100
9 4 6 total_distance 0x9e440000 uint32 17566
10 4 6 total_cycles 0xffffffff uint32 4294967295
29 4 5 nec_lat 0x6c4fe019 sint32 434130796
30 4 5 nec_long 0xebe997ba sint32 -1164449301
31 4 5 swc_lat 0xc920e019 sint32 434118857
32 4 5 swc_long 0xbbba97ba sint32 -1164461381
38 4 5 unknown 0xc920e019 sint32 434118857
39 4 5 unknown 0xc4bb97ba sint32 -1164461116
41 4 6 avg_stroke_count 0xffffffff uint32 4294967295
48 4 6 total_work 0xffffffff uint32 4294967295
59 4 6 total_moving_time 0xffffffff uint32 4294967295
65 4 6 time_in_hr_zone 0xffffffff uint32 4294967295
66 4 6 time_in_speed_zone 0xffffffff uint32 4294967295
67 4 6 time_in_cadence_zone 0xffffffff uint32 4294967295
68 4 6 time_in_power_zone 0xffffffff uint32 4294967295
69 4 6 avg_lap_time 0xffffffff uint32 4294967295
78 4 6 unknown 0xffffffff uint32 4294967295
110 16 7 unknown 0x72616365517300000000000000000000 string 'raceQs'
124 4 6 enhanced_avg_speed 0xffffffff uint32 4294967295
125 4 6 enhanced_max_speed 0xffffffff uint32 4294967295
126 4 6 enhanced_avg_altitude 0xffffffff uint32 4294967295
127 4 6 enhanced_min_altitude 0xffffffff uint32 4294967295
128 4 6 enhanced_max_altitude 0xffffffff uint32 4294967295
254 2 4 message_index 0x0000 uint16 0
11 2 4 total_calories 0x0800 uint16 8
13 2 4 total_fat_calories 0xffff uint16 65535
14 2 4 avg_speed 0x8520 uint16 8325
15 2 4 max_speed 0x4721 uint16 8519
20 2 4 avg_power 0xffff uint16 65535
21 2 4 max_power 0xffff uint16 65535
22 2 4 total_ascent 0x0200 uint16 2
23 2 4 total_descent 0x0000 uint16 0
25 2 4 first_lap_index 0x0000 uint16 0
26 2 4 num_laps 0x0100 uint16 1
33 2 4 unknown 0xffff uint16 65535
34 2 4 normalized_power 0xffff uint16 65535
35 2 4 training_stress_score 0xffff uint16 65535
36 2 4 intensity_factor 0xffff uint16 65535
37 2 4 left_right_balance 0xffff uint16 65535
42 2 4 avg_stroke_distance 0xffff uint16 65535
44 2 4 pool_length 0xffff uint16 65535
45 2 4 threshold_power 0xffff uint16 65535
47 2 4 num_active_lengths 0xffff uint16 65535
49 2 4 avg_altitude 0xffff uint16 65535
50 2 4 max_altitude 0xffff uint16 65535
52 2 3 avg_grade 0xff7f sint16 32767
53 2 3 avg_pos_grade 0xff7f sint16 32767
54 2 3 avg_neg_grade 0xff7f sint16 32767
55 2 3 max_pos_grade 0xff7f sint16 32767
56 2 3 max_neg_grade 0xff7f sint16 32767
60 2 3 avg_pos_vertical_speed 0xff7f sint16 32767
61 2 3 avg_neg_vertical_speed 0xff7f sint16 32767
62 2 3 max_pos_vertical_speed 0xff7f sint16 32767
63 2 3 max_neg_vertical_speed 0xff7f sint16 32767
70 2 4 best_lap_index 0xffff uint16 65535
71 2 4 min_altitude 0xffff uint16 65535
79 2 4 unknown 0xffff uint16 65535
80 2 4 unknown 0xffff uint16 65535
82 2 4 player_score 0xffff uint16 65535
83 2 4 opponent_score 0xffff uint16 65535
85 2 4 stroke_count 0xffff uint16 65535
86 2 4 zone_count 0xffff uint16 65535
87 2 4 max_ball_speed 0xffff uint16 65535
88 2 4 avg_ball_speed 0xffff uint16 65535
89 2 4 avg_vertical_oscillation 0xffff uint16 65535
90 2 4 avg_stance_time_percent 0xffff uint16 65535
91 2 4 avg_stance_time 0xffff uint16 65535
106 2 4 unknown 0xffff uint16 65535
107 2 4 unknown 0xffff uint16 65535
108 2 4 unknown 0xffff uint16 65535
0 1 0 event 0x09 enum
1 1 0 event_type 0x01 enum
5 1 0 sport 0x00 enum
6 1 0 sub_sport 0x00 enum
16 1 2 avg_heart_rate 0xff uint8 255
17 1 2 max_heart_rate 0xff uint8 255
18 1 2 avg_cadence 0xff uint8 255
19 1 2 max_cadence 0xff uint8 255
24 1 2 total_training_effect 0xff uint8 255
27 1 2 event_group 0xff uint8 255
28 1 0 trigger 0x00 enum
43 1 0 swim_stroke 0xff enum
46 1 0 pool_length_unit 0xff enum
51 1 2 gps_accuracy 0xff uint8 255
57 1 1 avg_temperature 0x7f sint8 127
58 1 1 max_temperature 0x7f sint8 127
64 1 2 min_heart_rate 0xff uint8 255
81 1 0 unknown 0x00 enum
84 1 7 opponent_name 0x00 string ''
92 1 2 avg_fractional_cadence 0xff uint8 255
93 1 2 max_fractional_cadence 0xff uint8 255
94 1 2 total_fractional_cycles 0xff uint8 255
109 1 2 unknown 0xff uint8 255
111 1 2 sport_index 0xff uint8 255
184 1 0 unknown 0x00 enum
Am I using createField and setData correctly? If so, Where would I find the data?