diff --git a/fitparse/base.py b/fitparse/base.py index f08eacb..4bcd494 100644 --- a/fitparse/base.py +++ b/fitparse/base.py @@ -334,7 +334,7 @@ def _parse_data_message(self, header): cmp_raw_value = component.render(raw_value) # Apply accumulated value - if component.accumulate: + if component.accumulate and cmp_raw_value is not None: accumulator = self._accumulators[def_mesg.mesg_num] cmp_raw_value = self._apply_compressed_accumulation( cmp_raw_value, accumulator[component.def_num], component.bits, diff --git a/tests/files/null_compressed_speed_dist.fit b/tests/files/null_compressed_speed_dist.fit new file mode 100644 index 0000000..910f6d7 Binary files /dev/null and b/tests/files/null_compressed_speed_dist.fit differ diff --git a/tests/test.py b/tests/test.py index 2b97af8..0149d25 100755 --- a/tests/test.py +++ b/tests/test.py @@ -376,7 +376,7 @@ def test_valid_files(self): 'antfs-dump.63.fit', 'sample-activity-indoor-trainer.fit', 'sample-activity.fit', 'garmin-fenix-5-bike.fit', 'garmin-fenix-5-run.fit', 'garmin-fenix-5-walk.fit', - 'garmin-edge-820-bike.fit'): + 'garmin-edge-820-bike.fit', 'null_compressed_speed_dist.fit'): FitFile(testfile(x)).parse() def test_units_processor(self):