Skip to content
Snippets Groups Projects
Select Git revision
  • 4331323c28ccbf146c60cd3587fb5a6ae6d4285f
  • master default protected
2 results

neg6.txt

Blame
  • DigitalOut.jl 1.04 KiB
    mutable struct DigitalOutChannel
        context::Ptr{Nothing}
        write::Ptr{Nothing}
    end
    
    mutable struct DigitalOut
        moberg::Moberg
        index::UInt32
        channel::DigitalOutChannel
        function DigitalOut(moberg::Moberg, index::Unsigned)
            channel = DigitalOutChannel(0,0)
            checkOK(ccall((:moberg_digital_out_open, "libmoberg"),
                           Status,
                           (Moberg, Cint, Ref{DigitalOutChannel}),
                           moberg, index, channel))
            self = new(moberg, index, channel)
            finalizer(close, self)
            self
        end
    end
    
    function close(dout::DigitalOut)
        # println("closing $(dout)")
        checkOK(ccall((:moberg_digital_out_close, "libmoberg"),
                      Status,
                      (Moberg, Cint, DigitalOutChannel),
                      dout.moberg, dout.index, dout.channel))
    end
    
    function write(dout::DigitalOut, value::Bool)
        checkOK(ccall(dout.channel.write,
                      Status,
                      (Ptr{Nothing}, Cint),
                      dout.channel.context, value ? 1 : 0))
    end