commit 63f54a93556776f066ae8007974f7abeacbeb06f
parent 7af52b4fbfd953cd1ed659d09232cfa5c7dbed6f
Author: Daniel Barlow <dan@telent.net>
Date: Thu, 31 Oct 2024 13:00:01 +0000
read heart rate
Diffstat:
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/lib/Track.hs b/lib/Track.hs
@@ -7,6 +7,7 @@ module Track
elevation,
cadence,
power,
+ heartRate,
time,
parse,
Track.length,
@@ -78,6 +79,11 @@ elToPoint c =
>>= element (tpxNS "cad")
>>= child
>>= content
+ hr =
+ gpxtpx
+ >>= element (tpxNS "hr")
+ >>= child
+ >>= content
power =
gpxtpx
>>= element (Name "PowerInWatts" (Just "http://www.garmin.com/xmlschemas/PowerExtension/v1") Nothing)
@@ -96,7 +102,7 @@ elToPoint c =
utime
(listToMaybe cadence <&> asInt)
(listToMaybe power <&> asInt)
- Nothing
+ (listToMaybe hr <&> asInt)
where
asFloat v = (read (Data.Text.unpack v) :: Float)
asInt v = (read (Data.Text.unpack v) :: Int)
diff --git a/tests/UnitTest.hs b/tests/UnitTest.hs
@@ -51,6 +51,7 @@ onepointWithAttrs =
<extensions><gpxtpx:TrackPointExtension>
<gpxtpx:speed>2.4</gpxtpx:speed>
<gpxtpx:cad>128</gpxtpx:cad>
+ <gpxtpx:hr>160</gpxtpx:hr>
<pwr:PowerInWatts>55</pwr:PowerInWatts>
<opentracks:accuracy_horizontal>3.216</opentracks:accuracy_horizontal><opentracks:distance>10.675</opentracks:distance>
<cluetrust:distance>32.025</cluetrust:distance>
@@ -108,8 +109,8 @@ test4 =
( \(p : _) ->
assertEqual
"handles attributes"
- (Just 25.2, Just 128, Just 55, Data.Time.UTCTime (toEnum 60606) 27299.779)
- (Track.elevation p, Track.cadence p, Track.power p, Track.time p)
+ (Just 25.2, Just 128, Just 55, Data.Time.UTCTime (toEnum 60606) 27299.779, Just 160)
+ (Track.elevation p, Track.cadence p, Track.power p, Track.time p, Track.heartRate p)
)
(Track.parse onepointWithAttrs)