From f5df0f18f5ac6e207a335d1f749bc3d81b2449b5 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Fri, 28 Aug 2020 14:35:19 +0200
Subject: [PATCH] 4

---
 sub/src/MobergIOSub.jl | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 sub/src/MobergIOSub.jl

diff --git a/sub/src/MobergIOSub.jl b/sub/src/MobergIOSub.jl
new file mode 100644
index 0000000..7c917b8
--- /dev/null
+++ b/sub/src/MobergIOSub.jl
@@ -0,0 +1,38 @@
+module MobergIO
+
+const DEBUG = false
+
+struct Status
+    result::Clong
+end
+
+function checkOK(status::Status)
+    if status.result != 0
+        error("Moberg call failed with errno $(status.result)")
+    end
+end
+
+mutable struct Moberg
+    handle::Ptr{Nothing}
+end
+
+function Moberg() 
+    handle = ccall((:moberg_new, "libmoberg"), Ptr{Moberg}, ())
+    m = Moberg(handle)
+    finalizer(close, m)
+    m
+end
+
+function close(h::Moberg)
+    DEBUG && println("Destroy $(h)")
+    ccall((:moberg_free, "libmoberg"), Nothing, (Moberg,), h)
+    h.handle = Ptr{Nothing}(0)
+end
+
+include("AnalogIn.jl")
+include("AnalogOut.jl")
+include("DigitalIn.jl")
+include("DigitalOut.jl")
+include("EncoderIn.jl")
+
+end
-- 
GitLab