Skip to content
This repository was archived by the owner on May 8, 2025. It is now read-only.

Commit 54f1bb3

Browse files
committed
added Garmin 520 messages
1 parent 3053a8e commit 54f1bb3

File tree

1 file changed

+94
-16
lines changed

1 file changed

+94
-16
lines changed

src/phpFITFileAnalysis.php

Lines changed: 94 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -768,21 +768,27 @@ class phpFITFileAnalysis
768768

769769
20 => [
770770
'mesg_name' => 'record', 'field_defns' => [
771-
0 => ['field_name' => 'position_lat', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
772-
1 => ['field_name' => 'position_long', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
773-
2 => ['field_name' => 'altitude', 'scale' => 5, 'offset' => 500, 'units' => 'm'],
774-
3 => ['field_name' => 'heart_rate', 'scale' => 1, 'offset' => 0, 'units' => 'bpm'],
775-
4 => ['field_name' => 'cadence', 'scale' => 1, 'offset' => 0, 'units' => 'rpm'],
776-
5 => ['field_name' => 'distance', 'scale' => 100, 'offset' => 0, 'units' => 'm'],
777-
6 => ['field_name' => 'speed', 'scale' => 1000, 'offset' => 0, 'units' => 'm/s'],
778-
7 => ['field_name' => 'power', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
779-
9 => ['field_name' => 'grade', 'scale' => 100, 'offset' => 0, 'units' => 'percent'],
780-
10 => ['field_name' => 'resistance', 'scale' => 1, 'offset' => 0, 'units' => ''],
781-
13 => ['field_name' => 'temperature', 'scale' => 1, 'offset' => 0, 'units' => 'C'],
782-
39 => ['field_name' => 'vertical_oscillation', 'scale' => 10, 'offset' => 0, 'units' => 'mm'],
783-
40 => ['field_name' => 'stance_time_percent', 'scale' => 100, 'offset' => 0, 'units' => 'percent'],
784-
53 => ['field_name' => 'fractional_cadence', 'scale' => 128, 'offset' => 0, 'units' => 'rpm'],
785-
253 => ['field_name' => 'timestamp', 'scale' => 1, 'offset' => 0, 'units' => 's']
771+
0 => ['field_name' => 'position_lat', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
772+
1 => ['field_name' => 'position_long', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
773+
2 => ['field_name' => 'altitude', 'scale' => 5, 'offset' => 500, 'units' => 'm'],
774+
3 => ['field_name' => 'heart_rate', 'scale' => 1, 'offset' => 0, 'units' => 'bpm'],
775+
4 => ['field_name' => 'cadence', 'scale' => 1, 'offset' => 0, 'units' => 'rpm'],
776+
5 => ['field_name' => 'distance', 'scale' => 100, 'offset' => 0, 'units' => 'm'],
777+
6 => ['field_name' => 'speed', 'scale' => 1000, 'offset' => 0, 'units' => 'm/s'],
778+
7 => ['field_name' => 'power', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
779+
9 => ['field_name' => 'grade', 'scale' => 100, 'offset' => 0, 'units' => 'percent'],
780+
10 => ['field_name' => 'resistance', 'scale' => 1, 'offset' => 0, 'units' => ''],
781+
13 => ['field_name' => 'temperature', 'scale' => 1, 'offset' => 0, 'units' => 'C'],
782+
29 => ['field_name' => 'accumulated_power', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
783+
39 => ['field_name' => 'vertical_oscillation', 'scale' => 10, 'offset' => 0, 'units' => 'mm'],
784+
40 => ['field_name' => 'stance_time_percent', 'scale' => 100, 'offset' => 0, 'units' => 'percent'],
785+
43 => ['field_name' => 'left_torque_effectiveness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
786+
44 => ['field_name' => 'right_torque_effectiveness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
787+
45 => ['field_name' => 'left_pedal_smoothness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
788+
46 => ['field_name' => 'right_pedal_smoothness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
789+
47 => ['field_name' => 'combined_pedal_smoothness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
790+
53 => ['field_name' => 'fractional_cadence', 'scale' => 128, 'offset' => 0, 'units' => 'rpm'],
791+
253 => ['field_name' => 'timestamp', 'scale' => 1, 'offset' => 0, 'units' => 's']
786792
]
787793
],
788794

@@ -836,6 +842,12 @@ class phpFITFileAnalysis
836842
]
837843
],
838844

845+
78 => [
846+
'mesg_name' => 'hrv', 'field_defns' => [
847+
0 => ['field_name' => 'time', 'scale' => 1000, 'offset' => 0, 'units' => 's']
848+
]
849+
],
850+
839851
101 => [
840852
'mesg_name' => 'length', 'field_defns' => [
841853
0 => ['field_name' => 'event', 'scale' => 1, 'offset' => 0, 'units' => ''],
@@ -853,6 +865,72 @@ class phpFITFileAnalysis
853865
253 => ['field_name' => 'timestamp', 'scale' => 1, 'offset' => 0, 'units' => 's'],
854866
254 => ['field_name' => 'message_index', 'scale' => 1, 'offset' => 0, 'units' => '']
855867
]
868+
],
869+
870+
142 => [
871+
'mesg_name' => 'segment_lap', 'field_defns' => [
872+
0 => ['field_name' => 'event', 'scale' => 1, 'offset' => 0, 'units' => ''],
873+
1 => ['field_name' => 'event_type', 'scale' => 1, 'offset' => 0, 'units' => ''],
874+
2 => ['field_name' => 'start_time', 'scale' => 1, 'offset' => 0, 'units' => ''],
875+
3 => ['field_name' => 'start_position_lat', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
876+
4 => ['field_name' => 'start_position_long', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
877+
5 => ['field_name' => 'end_position_lat', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
878+
6 => ['field_name' => 'end_position_long', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
879+
7 => ['field_name' => 'total_elapsed_time', 'scale' => 1000, 'offset' => 0, 'units' => 's'],
880+
8 => ['field_name' => 'total_timer_time', 'scale' => 1000, 'offset' => 0, 'units' => 's'],
881+
9 => ['field_name' => 'total_distance', 'scale' => 100, 'offset' => 0, 'units' => 'm'],
882+
10 => ['field_name' => 'total_cycles', 'scale' => 1, 'offset' => 0, 'units' => 'cycles'],
883+
11 => ['field_name' => 'total_calories', 'scale' => 1, 'offset' => 0, 'units' => 'kcal'],
884+
12 => ['field_name' => 'total_fat_calories', 'scale' => 1, 'offset' => 0, 'units' => 'kcal'],
885+
13 => ['field_name' => 'avg_speed', 'scale' => 1000, 'offset' => 0, 'units' => 'm/s'],
886+
14 => ['field_name' => 'max_speed', 'scale' => 1000, 'offset' => 0, 'units' => 'm/s'],
887+
15 => ['field_name' => 'avg_heart_rate', 'scale' => 1, 'offset' => 0, 'units' => 'bpm'],
888+
16 => ['field_name' => 'max_heart_rate', 'scale' => 1, 'offset' => 0, 'units' => 'bpm'],
889+
17 => ['field_name' => 'avg_cadence', 'scale' => 1, 'offset' => 0, 'units' => 'rpm'],
890+
18 => ['field_name' => 'max_cadence', 'scale' => 1, 'offset' => 0, 'units' => 'rpm'],
891+
19 => ['field_name' => 'avg_power', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
892+
20 => ['field_name' => 'max_power', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
893+
21 => ['field_name' => 'total_ascent', 'scale' => 1, 'offset' => 0, 'units' => 'm'],
894+
22 => ['field_name' => 'total_descent', 'scale' => 1, 'offset' => 0, 'units' => 'm'],
895+
23 => ['field_name' => 'sport', 'scale' => 1, 'offset' => 0, 'units' => ''],
896+
24 => ['field_name' => 'event_group', 'scale' => 1, 'offset' => 0, 'units' => ''],
897+
25 => ['field_name' => 'nec_lat', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
898+
26 => ['field_name' => 'nec_long', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
899+
27 => ['field_name' => 'swc_lat', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
900+
28 => ['field_name' => 'swc_long', 'scale' => 1, 'offset' => 0, 'units' => 'semicircles'],
901+
29 => ['field_name' => 'name', 'scale' => 1, 'offset' => 0, 'units' => ''],
902+
30 => ['field_name' => 'normalized_power', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
903+
31 => ['field_name' => 'left_right_balance', 'scale' => 1, 'offset' => 0, 'units' => ''],
904+
32 => ['field_name' => 'sub_sport', 'scale' => 1, 'offset' => 0, 'units' => ''],
905+
33 => ['field_name' => 'total_work', 'scale' => 1, 'offset' => 0, 'units' => 'J'],
906+
58 => ['field_name' => 'sport_event', 'scale' => 1, 'offset' => 0, 'units' => ''],
907+
59 => ['field_name' => 'avg_left_torque_effectiveness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
908+
60 => ['field_name' => 'avg_right_torque_effectiveness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
909+
61 => ['field_name' => 'avg_left_pedal_smoothness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
910+
62 => ['field_name' => 'avg_right_pedal_smoothness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
911+
63 => ['field_name' => 'avg_combined_pedal_smoothness', 'scale' => 2, 'offset' => 0, 'units' => 'percent'],
912+
64 => ['field_name' => 'status', 'scale' => 1, 'offset' => 0, 'units' => ''],
913+
65 => ['field_name' => 'uuid', 'scale' => 1, 'offset' => 0, 'units' => ''],
914+
66 => ['field_name' => 'avg_fractional_cadence', 'scale' => 128, 'offset' => 0, 'units' => 'rpm'],
915+
67 => ['field_name' => 'max_fractional_cadence', 'scale' => 128, 'offset' => 0, 'units' => 'rpm'],
916+
68 => ['field_name' => 'total_fractional_cycles', 'scale' => 128, 'offset' => 0, 'units' => 'cycles'],
917+
69 => ['field_name' => 'front_gear_shift_count', 'scale' => 1, 'offset' => 0, 'units' => ''],
918+
70 => ['field_name' => 'rear_gear_shift_count', 'scale' => 1, 'offset' => 0, 'units' => ''],
919+
71 => ['field_name' => 'time_standing', 'scale' => 1000, 'offset' => 0, 'units' => 's'],
920+
72 => ['field_name' => 'stand_count', 'scale' => 1, 'offset' => 0, 'units' => ''],
921+
73 => ['field_name' => 'avg_left_pco', 'scale' => 1, 'offset' => 0, 'units' => 'mm'],
922+
74 => ['field_name' => 'avg_right_pco', 'scale' => 1, 'offset' => 0, 'units' => 'mm'],
923+
75 => ['field_name' => 'avg_left_power_phase', 'scale' => 0.7111111, 'offset' => 0, 'units' => 'degrees'],
924+
76 => ['field_name' => 'avg_left_power_phase_peak', 'scale' => 0.7111111, 'offset' => 0, 'units' => 'degrees'],
925+
77 => ['field_name' => 'avg_right_power_phase', 'scale' => 0.7111111, 'offset' => 0, 'units' => 'degrees'],
926+
78 => ['field_name' => 'avg_right_power_phase_peak', 'scale' => 0.7111111, 'offset' => 0, 'units' => 'degrees'],
927+
79 => ['field_name' => 'avg_power_position', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
928+
80 => ['field_name' => 'max_power_position', 'scale' => 1, 'offset' => 0, 'units' => 'watts'],
929+
81 => ['field_name' => 'avg_cadence_position', 'scale' => 1, 'offset' => 0, 'units' => 'rpm'],
930+
82 => ['field_name' => 'max_cadence_position', 'scale' => 1, 'offset' => 0, 'units' => 'rpm'],
931+
253 => ['field_name' => 'timestamp', 'scale' => 1, 'offset' => 0, 'units' => 's'],
932+
254 => ['field_name' => 'message_index', 'scale' => 1, 'offset' => 0, 'units' => '']
933+
]
856934
]
857935
];
858936

@@ -1419,7 +1497,7 @@ private function setUnits($options)
14191497
}
14201498

14211499
// Set units for all messages
1422-
$messages = ['session', 'lap', 'record'];
1500+
$messages = ['session', 'lap', 'record', 'segment_lap'];
14231501
$c_fields = [
14241502
'avg_temperature',
14251503
'max_temperature',

0 commit comments

Comments
 (0)