read heart rate

This commit is contained in:
Daniel Barlow 2024-10-31 13:00:01 +00:00
parent 7af52b4fbf
commit 63f54a9355
2 changed files with 10 additions and 3 deletions

View File

@ -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)

View File

@ -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)