aboutsummaryrefslogtreecommitdiff
path: root/hsm-bin/Test/Drive.hs
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2025-02-07 17:10:05 +0000
committerPaul Oliver <contact@pauloliver.dev>2025-02-18 20:35:35 +0000
commitab4591cb0e074ce98c24645cdb80cb5012aed566 (patch)
tree98451fa7e042e49ea83f265866754f3f6a3b406f /hsm-bin/Test/Drive.hs
InitialHEADmaster
Diffstat (limited to 'hsm-bin/Test/Drive.hs')
-rw-r--r--hsm-bin/Test/Drive.hs23
1 files changed, 23 insertions, 0 deletions
diff --git a/hsm-bin/Test/Drive.hs b/hsm-bin/Test/Drive.hs
new file mode 100644
index 0000000..899964c
--- /dev/null
+++ b/hsm-bin/Test/Drive.hs
@@ -0,0 +1,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