diff options
Diffstat (limited to 'hsm-drive/Hsm')
| -rw-r--r-- | hsm-drive/Hsm/Drive.hs | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/hsm-drive/Hsm/Drive.hs b/hsm-drive/Hsm/Drive.hs index ace89ff..2719ee7 100644 --- a/hsm-drive/Hsm/Drive.hs +++ b/hsm-drive/Hsm/Drive.hs @@ -18,7 +18,7 @@ import Effectful (Dispatch (Static), DispatchOf, Eff, IOE, (:>))  import Effectful.Dispatch.Static (SideEffects (WithSideEffects), StaticRep, evalStaticRep, unsafeEff_)  import Effectful.Exception (AsyncException, bracket_, handle)  import Hsm.GPIO (GPIO, GPIOPin (..), active, inactive, setPins) -import Hsm.Log (Log, Severity (Attention, Info, Trace), logMsg) +import Hsm.Log (Logs, Severity (Attention, Info, Trace), logMsg)  import Hsm.PWM (PWM, PWMChannel (..), setCycleDuration)  data Drive (a :: * -> *) (b :: *) @@ -117,8 +117,7 @@ step = PWM3  -- Executes a sequence of drive actions with interruption support  -- Wakes motors from SLEEP mode during execution and guarantees return to SLEEP  -- mode upon completion or interruption. -drive -  :: (GPIO :> es, IOE :> es, Log "drive" :> es, Log "gpio" :> es, Log "pwm" :> es, PWM :> es) => [Action] -> Eff es () +drive :: (GPIO :> es, IOE :> es, Logs '["drive", "gpio", "pwm"] es, PWM :> es) => [Action] -> Eff es ()  drive actions =    bracket_ awaken sleep . handle handler . forM_ actions $ \action -> do      logMsg @"drive" Trace $ "Running action: " <> show action @@ -188,7 +187,7 @@ drive actions =      -- in its current position.      runAction (Stop duration) = delay duration -runDrive :: (GPIO :> es, IOE :> es, Log "drive" :> es, Log "gpio" :> es) => Eff (Drive : es) a -> Eff es a +runDrive :: (GPIO :> es, IOE :> es, Logs '["drive", "gpio"] es) => Eff (Drive : es) a -> Eff es a  runDrive = evalStaticRep (Drive ()) . bracket_ enterActive exitActive    where      alwaysActive = [ms1, ms2, ms3, notReset]  | 
