diff options
author | Paul Oliver <contact@pauloliver.dev> | 2025-07-02 15:06:35 +0200 |
---|---|---|
committer | Paul Oliver <contact@pauloliver.dev> | 2025-08-13 23:54:10 +0000 |
commit | 8fe62292f18f4577303a868a8557b0486b218bcb (patch) | |
tree | cb9a9108eea479e932f37d03cf399b680e3886b2 /hsm-status/Hsm/Status.hs | |
parent | 0be7f1274e0cb8406bd4262b86d5e2e9dda77d7a (diff) |
Code now uses `effectful` to manage side-effects
Diffstat (limited to 'hsm-status/Hsm/Status.hs')
-rw-r--r-- | hsm-status/Hsm/Status.hs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/hsm-status/Hsm/Status.hs b/hsm-status/Hsm/Status.hs deleted file mode 100644 index 8154611..0000000 --- a/hsm-status/Hsm/Status.hs +++ /dev/null @@ -1,41 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE OverloadedRecordDot #-} -{-# LANGUAGE OverloadedStrings #-} - -module Hsm.Status - ( StatusEnv(..) - , statusEnvDefault - , status - ) where - -import Foreign.Ptr (Ptr) -import GHC.Records (HasField) -import Hsm.GPIO (GPIO(..), LineRequest, active, inactive, setPins) -import Hsm.Log qualified as L - -data StatusEnv = StatusEnv - { gpioOk :: GPIO - , gpioError :: GPIO - } - -statusEnvDefault :: StatusEnv -statusEnvDefault = StatusEnv {gpioOk = GPIO17, gpioError = GPIO27} - -status :: - HasField "statusEnv" env StatusEnv - => Ptr LineRequest - -> env - -> [Bool] - -> IO () -status lineRequest env signals = do - if and signals - then do - logMsg "All signals OK" - setPins lineRequest [env.statusEnv.gpioError] inactive - setPins lineRequest [env.statusEnv.gpioOk] active - else do - logMsg "Error signal received" - setPins lineRequest [env.statusEnv.gpioError] active - setPins lineRequest [env.statusEnv.gpioOk] inactive - where - logMsg = L.logMsg ["status"] |