From ab4591cb0e074ce98c24645cdb80cb5012aed566 Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Fri, 7 Feb 2025 17:10:05 +0000 Subject: Initial --- hsm-bin/Test/Drive.hs | 23 +++++++++++++++++++++++ hsm-bin/Test/Status.hs | 22 ++++++++++++++++++++++ hsm-bin/hsm-bin.cabal | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 hsm-bin/Test/Drive.hs create mode 100644 hsm-bin/Test/Status.hs create mode 100644 hsm-bin/hsm-bin.cabal (limited to 'hsm-bin') 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 diff --git a/hsm-bin/Test/Status.hs b/hsm-bin/Test/Status.hs new file mode 100644 index 0000000..bc05eca --- /dev/null +++ b/hsm-bin/Test/Status.hs @@ -0,0 +1,22 @@ +{-# LANGUAGE OverloadedStrings #-} + +import Control.IO.Region (region) +import Control.Monad.Loops (whileJust_) +import Hsm.GPIO (allocateGPIO) +import Hsm.PWM qualified as P +import Hsm.Readline (allocateReadline, readline) +import Hsm.Status (StatusEnv, status, statusEnvDefault) + +newtype Env = Env + { statusEnv :: StatusEnv + } + +main :: IO () +main = + region $ \ioRegion -> do + lineRequest <- allocateGPIO ioRegion "test-status" + pwmHandle <- P.allocatePWM ioRegion + handle <- allocateReadline ioRegion + whileJust_ (readline handle) + $ status lineRequest pwmHandle + $ Env statusEnvDefault diff --git a/hsm-bin/hsm-bin.cabal b/hsm-bin/hsm-bin.cabal new file mode 100644 index 0000000..de7853f --- /dev/null +++ b/hsm-bin/hsm-bin.cabal @@ -0,0 +1,32 @@ +cabal-version: 3.4 +author: Paul Oliver +build-type: Simple +maintainer: contact@pauloliver.dev +name: hsm-bin +version: 0.1.0.0 + +common test-executable + build-depends: + , base + , hsm-gpio + , hsm-pwm + , hsm-readline + , io-region + , monad-loops + + ghc-options: -Wall -Wunused-packages + + if !arch(x86_64) + ghc-options: -optl=-mno-fix-cortex-a53-835769 + + default-language: GHC2021 + +executable test-status + import: test-executable + build-depends: hsm-status + main-is: Test/Status.hs + +executable test-drive + import: test-executable + build-depends: hsm-drive + main-is: Test/Drive.hs -- cgit v1.2.1