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