From 76303ad71e0d7e63cf34a68a81548cb791798f97 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Sat, 10 Sep 2022 23:45:54 +0200 Subject: gtfs realtime: add tripUpdate feed --- lib/Extrapolation.hs | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'lib/Extrapolation.hs') diff --git a/lib/Extrapolation.hs b/lib/Extrapolation.hs index cc77a92..f505e73 100644 --- a/lib/Extrapolation.hs +++ b/lib/Extrapolation.hs @@ -7,7 +7,7 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE RecordWildCards #-} -module Extrapolation (Extrapolator(..), LinearExtrapolator, linearDelay, secondsNow, distanceAlongLine) where +module Extrapolation (Extrapolator(..), LinearExtrapolator, linearDelay, distanceAlongLine) where import Data.Foldable (maximumBy, minimumBy) import Data.Function (on) import Data.List.NonEmpty (NonEmpty) @@ -23,10 +23,12 @@ import GHC.IO (unsafePerformIO) import Conduit (MonadIO (liftIO)) import Data.List (sortBy) import GTFS (Depth (Deep), GTFS (..), Seconds (..), - Shape (..), Stop (..), Time, Trip (..), - seconds2Double, stationGeopos, toSeconds, Station (stationName)) + Shape (..), Station (stationName), + Stop (..), Time, Trip (..), seconds2Double, + stationGeopos, toSeconds) import Persist (Running (..), TrainAnchor (..), TrainPing (..)) +import Server.Util (utcToSeconds) class Extrapolator a where -- | here's a position ping, guess things from that! @@ -123,16 +125,7 @@ distanceAlongLine line p1 p2 = along2 - along1 sumSegments line = snd $ foldl (\(p,a) p' -> (p', a + euclid p p')) (V.head line,0) $ line --- | convert utc time to seconds on a day, with wrap-around --- for trains that cross midnight. -utcToSeconds :: UTCTime -> Day -> Seconds -utcToSeconds time day = - Seconds $ round $ nominalDiffTimeToSeconds $ diffUTCTime time (UTCTime day 0) -secondsNow :: MonadIO m => Day -> m Seconds -secondsNow runningDay = do - now <- liftIO getCurrentTime - pure $ utcToSeconds now runningDay euclid :: Floating f => (f,f) -> (f,f) -> f euclid (x1,y1) (x2,y2) = sqrt (x*x + y*y) -- cgit v1.2.3