ttn-client-0.2.0.0: app/Main.hs
{-# Language OverloadedStrings #-}
{-# Language RecordWildCards #-}
module Main where
import Data.TTN
import Data.TTN.Client
import Data.TTN.Client.Decode
import qualified Data.Text
import Data.Time
main :: IO ()
main = do
withTTN $ \e -> do
case e of
(ClientError str) -> putStrLn $ "ClientErr " ++ str
(Event etype Uplink{..}) -> do
case etype of
Up -> do
n <- getZonedTime
putStrLn $ unwords [
formatTime defaultTimeLocale "%F %X" n
, maybe "" Data.Text.unpack uplinkDevId
, maybe "" (('#':) . show) uplinkCounter
, maybe "" (pure "(retry)") uplinkIsRetry
, (show $ decodeUplink e)
]
_ -> return ()
-- unused
cvt :: TimeZone -> ZonedTime -> LocalTime
cvt tz t = utcToLocalTime tz $ zonedTimeToUTC t
renderTime :: TimeZone -> ZonedTime -> String
renderTime tz t = formatTime defaultTimeLocale "%F %X" (cvt tz t)