blob: 899964cfe2a6c1f5d92b4034bf350449cc8ba3e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
{-# LANGUAGE OverloadedRecordDot #-}
{-# 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 qualified as P
import Hsm.Readline (allocateReadline, readline)
newtype Env = Env
{ driveEnv :: DriveEnv
}
main :: IO ()
main =
region $ \ioRegion -> do
lineRequest <- allocateGPIO ioRegion "test-drive"
pwmHandle <- P.allocatePWM ioRegion
handle <- allocateReadline ioRegion
whileJust_ (readline handle)
$ drive pwmHandle lineRequest
$ Env driveEnvDefault
|