aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2025-08-19 03:56:40 +0000
committerPaul Oliver <contact@pauloliver.dev>2025-08-23 22:59:12 +0000
commit307cb1b1094c73fd15eab378c27ac0073696b739 (patch)
tree730949857bd356a7d1f1739b1c8c28967d0461e4
parent4efe903a671b288ac485f2d2a9c9aabf2eb7b199 (diff)
Improves formatting
-rw-r--r--hsm-cam/FFI/Cam.cpp36
-rw-r--r--hsm-cam/FFI/Cam.hpp6
-rw-r--r--hsm-cam/Hsm/Cam.hs11
-rw-r--r--hsm-cam/Hsm/Cam/FFI.hs (renamed from hsm-cam/Hsm/Cam/FFI.hsc)12
-rw-r--r--hsm-core/hsm-core.cabal2
-rw-r--r--hsm-gpio/Hsm/GPIO.hs9
-rw-r--r--hsm-gpio/Hsm/GPIO/FFI.hs (renamed from hsm-gpio/Hsm/GPIO/FFI.hsc)14
-rw-r--r--hsm-log/Hsm/Log.hs10
-rw-r--r--hsm-pwm/Hsm/PWM.hs10
-rw-r--r--hsm-repl/Hsm/Repl.hs4
-rw-r--r--stack.yaml2
-rw-r--r--stack.yaml.lock8
12 files changed, 61 insertions, 63 deletions
diff --git a/hsm-cam/FFI/Cam.cpp b/hsm-cam/FFI/Cam.cpp
index 5f2ca1f..05fd1a8 100644
--- a/hsm-cam/FFI/Cam.cpp
+++ b/hsm-cam/FFI/Cam.cpp
@@ -1,8 +1,8 @@
-#include <format>
+#include "Cam.hpp"
#include <libcamera/libcamera.h>
-#include "Cam.hpp"
+#include <format>
using namespace libcamera;
using namespace std;
@@ -15,27 +15,37 @@ unique_ptr<CameraConfiguration> g_config;
unique_ptr<FrameBufferAllocator> g_allocator;
unique_ptr<Request> g_request;
-template <class... Args>
-void logMsg(Severity severity, const format_string<Args...> fmt, const Args&... args) {
+template<class... Args>
+void
+logMsg(Severity severity, const format_string<Args...> fmt, const Args &...args)
+{
g_logger(severity, vformat(fmt.get(), make_format_args(args...)).c_str());
}
-void request_complete(Request *request) {
+void
+request_complete(Request *request)
+{
logMsg(Trace, "Completed request");
g_callback(request->buffers().begin()->second->planes()[0].fd.get());
}
-extern "C" void register_logger(HsLogger hs_logger) {
+extern "C" void
+register_logger(HsLogger hs_logger)
+{
g_logger = hs_logger;
logMsg(Info, "Registered FFI logger");
}
-extern "C" void register_callback(HsCallback hs_callback) {
+extern "C" void
+register_callback(HsCallback hs_callback)
+{
g_callback = hs_callback;
logMsg(Info, "Registered FFI callback");
}
-extern "C" void initialize_ffi() {
+extern "C" void
+initialize_ffi()
+{
logMsg(Info, "Starting camera manager");
g_manager = make_unique<CameraManager>();
g_manager->start();
@@ -45,7 +55,7 @@ extern "C" void initialize_ffi() {
g_camera->acquire();
logMsg(Info, "Generating still capture configuration");
- g_config = g_camera->generateConfiguration({StreamRole::StillCapture});
+ g_config = g_camera->generateConfiguration({ StreamRole::StillCapture });
g_camera->configure(g_config.get());
logMsg(Info, "Allocating buffer");
@@ -59,7 +69,9 @@ extern "C" void initialize_ffi() {
g_camera->start();
}
-extern "C" void shutdown_ffi() {
+extern "C" void
+shutdown_ffi()
+{
logMsg(Info, "Stopping camera");
g_camera->stop();
@@ -75,7 +87,9 @@ extern "C" void shutdown_ffi() {
g_manager->stop();
}
-extern "C" void request_capture() {
+extern "C" void
+request_capture()
+{
logMsg(Trace, "Requesting still capture");
Stream *stream = (*g_config)[0].stream();
diff --git a/hsm-cam/FFI/Cam.hpp b/hsm-cam/FFI/Cam.hpp
index e59fa1d..c2cd4ed 100644
--- a/hsm-cam/FFI/Cam.hpp
+++ b/hsm-cam/FFI/Cam.hpp
@@ -1,7 +1,8 @@
#ifndef CAM_HPP
#define CAM_HPP
-enum Severity {
+enum Severity
+{
Attention = 0,
Info = 1,
Trace = 2,
@@ -11,7 +12,8 @@ typedef void (*HsLogger)(enum Severity, const char *);
typedef void (*HsCallback)(int fd);
#ifdef __cplusplus
-extern "C" {
+extern "C"
+{
#endif
void register_logger(HsLogger hs_logger);
void register_callback(HsCallback hs_callback);
diff --git a/hsm-cam/Hsm/Cam.hs b/hsm-cam/Hsm/Cam.hs
index 9857557..78a3e25 100644
--- a/hsm-cam/Hsm/Cam.hs
+++ b/hsm-cam/Hsm/Cam.hs
@@ -47,9 +47,7 @@ stillCapture = do
logMsg Trace $ "Still capture data available in FD " <> show fd
runCam
- :: (IOE :> es, Log "cam" :> es, Resource :> es)
- => Eff (Cam : es) a
- -> Eff es a
+ :: (IOE :> es, Log "cam" :> es, Resource :> es) => Eff (Cam : es) a -> Eff es a
runCam action = do
fdVar <- liftIO newEmptyMVar
void loggerBracket
@@ -62,16 +60,13 @@ runCam action = do
loggerAlloc = do
logMsg Info "Registering FFI logger"
loggerIO <- getLoggerIO
- loggerFFI <-
- liftIO . makeLogger $ \severity message ->
- peekCString message >>= loggerIO (toEnum severity)
+ loggerFFI <- liftIO . makeLogger $ \severity message -> peekCString message >>= loggerIO (toEnum severity)
liftIO $ registerLogger loggerFFI
return loggerFFI
loggerDealloc loggerFFI = do
logMsg Info "Unregistering FFI logger"
liftIO $ freeHaskellFunPtr loggerFFI
- requestCallbackBracket fdVar =
- allocateEff requestCallbackAlloc requestCallbackDealloc
+ requestCallbackBracket fdVar = allocateEff requestCallbackAlloc requestCallbackDealloc
where
requestCallbackAlloc = do
logMsg Info "Registering FFI callback"
diff --git a/hsm-cam/Hsm/Cam/FFI.hsc b/hsm-cam/Hsm/Cam/FFI.hs
index 44f3f4b..93d2f57 100644
--- a/hsm-cam/Hsm/Cam/FFI.hsc
+++ b/hsm-cam/Hsm/Cam/FFI.hs
@@ -18,8 +18,7 @@ type Logger = Int -> CString -> IO ()
type Callback = Int -> IO ()
-foreign import ccall safe "wrapper"
- makeLogger :: Logger -> IO (FunPtr Logger)
+foreign import ccall safe "wrapper" makeLogger :: Logger -> IO (FunPtr Logger)
foreign import capi safe "Cam.hpp register_logger"
registerLogger :: FunPtr Logger -> IO ()
@@ -30,11 +29,8 @@ foreign import ccall safe "wrapper"
foreign import capi safe "Cam.hpp register_callback"
registerCallback :: FunPtr Callback -> IO ()
-foreign import capi safe "Cam.hpp initialize_ffi"
- initializeFFI :: IO ()
+foreign import capi safe "Cam.hpp initialize_ffi" initializeFFI :: IO ()
-foreign import capi safe "Cam.hpp shutdown_ffi"
- shutdownFFI :: IO ()
+foreign import capi safe "Cam.hpp shutdown_ffi" shutdownFFI :: IO ()
-foreign import capi safe "Cam.hpp request_capture"
- requestCapture :: IO ()
+foreign import capi safe "Cam.hpp request_capture" requestCapture :: IO ()
diff --git a/hsm-core/hsm-core.cabal b/hsm-core/hsm-core.cabal
index 10862f7..856a359 100644
--- a/hsm-core/hsm-core.cabal
+++ b/hsm-core/hsm-core.cabal
@@ -3,10 +3,12 @@ author: Paul Oliver <contact@pauloliver.dev>
name: hsm-core
version: 0.1.0.0
+
library
build-depends:
, base
, template-haskell
+
default-language: GHC2024
exposed-modules: Hsm.Core.Serial
ghc-options: -O2 -Wall -Werror -Wno-star-is-type -Wunused-packages
diff --git a/hsm-gpio/Hsm/GPIO.hs b/hsm-gpio/Hsm/GPIO.hs
index 2bcf3ed..7cc2c36 100644
--- a/hsm-gpio/Hsm/GPIO.hs
+++ b/hsm-gpio/Hsm/GPIO.hs
@@ -73,8 +73,7 @@ setPins :: (GPIO :> es, Log "gpio" :> es) => [GPIOPin] -> LineValue -> Eff es ()
setPins pins lineValue = do
GPIO lineRequest <- getStaticRep
logMsg Trace $ "Setting pin(s) " <> show pins <> " to " <> show lineValue
- forM_ pins $ \pin ->
- unsafeEff_ $ lineRequestSetValue lineRequest (pinLine pin) lineValue
+ forM_ pins $ \pin -> unsafeEff_ $ lineRequestSetValue lineRequest (pinLine pin) lineValue
setAllPins :: (GPIO :> es, Log "gpio" :> es) => LineValue -> Eff es ()
setAllPins lineValue = do
@@ -122,8 +121,7 @@ runGPIO consumer action = do
lineSettingsDealloc lineSettings = do
logMsg Info "Freeing line settings"
liftIO $ lineSettingsFree lineSettings
- lineConfigBracket lineSettings =
- allocateEff lineConfigAlloc lineConfigDealloc
+ lineConfigBracket lineSettings = allocateEff lineConfigAlloc lineConfigDealloc
where
lineConfigAlloc = do
logMsg Info "Allocating line config"
@@ -150,8 +148,7 @@ runGPIO consumer action = do
requestConfigDealloc requestConfig = do
logMsg Info "Freeing request config"
liftIO $ requestConfigFree requestConfig
- lineRequestBracket chip requestConfig lineConfig =
- allocateEff lineRequestAlloc lineRequestDealloc
+ lineRequestBracket chip requestConfig lineConfig = allocateEff lineRequestAlloc lineRequestDealloc
where
lineRequestAlloc = do
logMsg Info "Allocating line request"
diff --git a/hsm-gpio/Hsm/GPIO/FFI.hsc b/hsm-gpio/Hsm/GPIO/FFI.hs
index f0f5737..c1bb9e8 100644
--- a/hsm-gpio/Hsm/GPIO/FFI.hsc
+++ b/hsm-gpio/Hsm/GPIO/FFI.hs
@@ -51,20 +51,20 @@ newtype LineDirection
= LineDirection CInt
deriving Show
-foreign import capi "gpiod.h value GPIOD_LINE_DIRECTION_INPUT"
+foreign import capi safe "gpiod.h value GPIOD_LINE_DIRECTION_INPUT"
input :: LineDirection
-foreign import capi "gpiod.h value GPIOD_LINE_DIRECTION_OUTPUT"
+foreign import capi safe "gpiod.h value GPIOD_LINE_DIRECTION_OUTPUT"
output :: LineDirection
newtype LineValue
= LineValue CInt
deriving (Show, Storable)
-foreign import capi "gpiod.h value GPIOD_LINE_VALUE_ACTIVE"
+foreign import capi safe "gpiod.h value GPIOD_LINE_VALUE_ACTIVE"
active :: LineValue
-foreign import capi "gpiod.h value GPIOD_LINE_VALUE_INACTIVE"
+foreign import capi safe "gpiod.h value GPIOD_LINE_VALUE_INACTIVE"
inactive :: LineValue
foreign import capi unsafe "gpiod.h gpiod_line_settings_new"
@@ -88,7 +88,8 @@ foreign import capi unsafe "gpiod.h gpiod_line_config_free"
lineConfigFree :: Ptr LineConfig -> IO ()
foreign import capi unsafe "gpiod.h gpiod_line_config_add_line_settings"
- lineConfigAddLineSettings :: Ptr LineConfig -> Ptr CUInt -> CSize -> Ptr LineSettings -> IO CInt
+ lineConfigAddLineSettings
+ :: Ptr LineConfig -> Ptr CUInt -> CSize -> Ptr LineSettings -> IO CInt
data RequestConfig
@@ -104,7 +105,8 @@ foreign import capi unsafe "gpiod.h gpiod_request_config_set_consumer"
data LineRequest
foreign import capi unsafe "gpiod.h gpiod_chip_request_lines"
- chipRequestLines :: Ptr Chip -> Ptr RequestConfig -> Ptr LineConfig -> IO (Ptr LineRequest)
+ chipRequestLines
+ :: Ptr Chip -> Ptr RequestConfig -> Ptr LineConfig -> IO (Ptr LineRequest)
foreign import capi unsafe "gpiod.h gpiod_line_request_release"
lineRequestRelease :: Ptr LineRequest -> IO ()
diff --git a/hsm-log/Hsm/Log.hs b/hsm-log/Hsm/Log.hs
index 088be8e..73da4bd 100644
--- a/hsm-log/Hsm/Log.hs
+++ b/hsm-log/Hsm/Log.hs
@@ -51,12 +51,7 @@ getLoggerIO = do
when (severity <= level) $ do
time <- formatISO8601Millis <$> getCurrentTime
putStrLn . applyWhen (severity == Attention) red $
- printf
- "%s %s [%s] %s"
- time
- (symbolVal $ Proxy @d)
- (show severity)
- message
+ printf "%s %s [%s] %s" time (symbolVal $ Proxy @d) (show severity) message
logMsg
:: forall d es
@@ -64,8 +59,7 @@ logMsg
=> Severity
-> String
-> Eff es ()
-logMsg severity message =
- getLoggerIO >>= \loggerIO -> unsafeEff_ $ loggerIO severity message
+logMsg severity message = getLoggerIO >>= \loggerIO -> unsafeEff_ $ loggerIO severity message
runLog
:: forall d es a
diff --git a/hsm-pwm/Hsm/PWM.hs b/hsm-pwm/Hsm/PWM.hs
index aa16d5c..400e704 100644
--- a/hsm-pwm/Hsm/PWM.hs
+++ b/hsm-pwm/Hsm/PWM.hs
@@ -101,9 +101,7 @@ setCycleDuration channel cycleDuration = do
setEnable channel True
runPWM
- :: (IOE :> es, Log "pwm" :> es, Resource :> es)
- => Eff (PWM : es) a
- -> Eff es a
+ :: (IOE :> es, Log "pwm" :> es, Resource :> es) => Eff (PWM : es) a -> Eff es a
runPWM action =
evalStaticRep (PWM ()) $ do
void $ allocateEff_ pwmAlloc pwmDealloc
@@ -126,8 +124,7 @@ runPWM action =
waitWritable exportPath
waitWritable unexportPath
forM_ allChannels $ \channel -> do
- logMsg Info $
- "Exporting channel " <> show channel <> " on chip " <> chipPath
+ logMsg Info $ "Exporting channel " <> show channel <> " on chip " <> chipPath
liftIO . writeFile exportPath $ show (channelIndex channel)
waitWritable $ enablePath channel
waitWritable $ periodPath channel
@@ -136,6 +133,5 @@ runPWM action =
pwmDealloc =
forM_ allChannels $ \channel -> do
setEnable channel False
- logMsg Info $
- "Unexporting channel " <> show channel <> " on chip " <> chipPath
+ logMsg Info $ "Unexporting channel " <> show channel <> " on chip " <> chipPath
liftIO . writeFile unexportPath $ show (channelIndex channel)
diff --git a/hsm-repl/Hsm/Repl.hs b/hsm-repl/Hsm/Repl.hs
index 5265e59..bcde6ad 100644
--- a/hsm-repl/Hsm/Repl.hs
+++ b/hsm-repl/Hsm/Repl.hs
@@ -68,8 +68,8 @@ repl = query >>= maybe (return Nothing) parse
. queryInput inputState
. handleInterrupt (return Nothing)
. withInterrupt
- . getInputLine
- $ symbolVal (Proxy @p)
+ . getInputLine $
+ symbolVal (Proxy @p)
parse string = do
logMsg Trace $ "Parsing string: " <> string
eitherValue <-
diff --git a/stack.yaml b/stack.yaml
index ffefbb1..8834008 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -8,4 +8,4 @@ packages:
- hsm-log
- hsm-pwm
- hsm-repl
-resolver: lts-24.3
+resolver: lts-24.6
diff --git a/stack.yaml.lock b/stack.yaml.lock
index a48528e..b27e1f1 100644
--- a/stack.yaml.lock
+++ b/stack.yaml.lock
@@ -20,7 +20,7 @@ packages:
hackage: typelits-printf-0.3.0.0
snapshots:
- completed:
- sha256: aa97dce5253937e4aa56100a0a9dc1f79a554cf543ad7cfab0afe6ed42de2f31
- size: 724941
- url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/24/3.yaml
- original: lts-24.3
+ sha256: 473840099b95facf73ec72dcafe53a2487bfadeceb03a981a19e16469503a342
+ size: 726266
+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/24/6.yaml
+ original: lts-24.6