{-# LANGUAGE OverloadedStrings #-} import Control.IO.Region (region) import Control.Monad.Loops (whileJust_) import Hsm.Drive (DriveEnv, drive, driveEnvDefault) import Hsm.GPIO (allocateGPIO) import Hsm.PWM (allocatePWM) import Hsm.Readline (allocateReadline, readline) newtype Env = Env { driveEnv :: DriveEnv } main :: IO () main = region $ \ioRegion -> do lineRequest <- allocateGPIO ioRegion "test-status" pwmHandle <- allocatePWM ioRegion $ const 0 handle <- allocateReadline ioRegion whileJust_ (readline handle) $ drive lineRequest pwmHandle $ Env driveEnvDefault