Commit 23c78b4d authored by Fredrik Bagge Carlson's avatar Fredrik Bagge Carlson
Browse files

Bugfixes from lab

parent 6313360a
__precompile__()
#__precompile__()
module LabProcesses
......
......@@ -15,10 +15,8 @@ function run_control_2DOF(P::AbstractProcess,sysFB, sysFF=nothing; duration = 10
u = zeros(0:h:duration)
r = zeros(0:h:duration)
sysFB = minreal(sysFB)
stateFB = init_sysfilter(sysFB)
if sysFF != nothing
sysFF = minreal(sysFF)
stateFF = init_sysfilter(sysFF)
end
......@@ -33,7 +31,7 @@ function run_control_2DOF(P::AbstractProcess,sysFB, sysFF=nothing; duration = 10
@periodically h begin
y[i] = measure(P)
r[i] = reference(t)
u[i] = control(i) # y,r must be updated before u
u[i] .= control(i) # y,r must be updated before u
control(P, u[i])
end
end
......
......@@ -29,12 +29,12 @@ measure(p::BallAndBeam) = io2num(ccall((:comedi_read,comedipath), Int32,
control(p::BallAndBeamSimulator, u) = error("Not yet implemented")
measure(p::BallAndBeamSimulator) = error("Not yet implemented")
const comedipath = "../c/comedi_bridge.so"
const comedipath = Pkg.dir("LabProcesses","c","comedi_bridge.so")
const conversion = 65535/20
io2num(x) = x/conversion -10 # Converts from io to float
num2io(x) = round(Int32,x*100 + 2050) # Converts from regular number to io
initialize(p::BallAndBeam) = ccall((:comedi_start, comedipath),Int32,(Int32,), 0)
finalize(p::BallAndBeam) = (control(P,0);ccall((:comedi_stop, "../c/comedi_bridge.so"),Int32,(Int32,), 0))
finalize(p::BallAndBeam) = (control(p,0);ccall((:comedi_stop, comedipath),Int32,(Int32,), 0))
initialize(p::BallAndBeamSimulator) = nothing
finalize(p::BallAndBeamSimulator) = nothing
......@@ -9,7 +9,7 @@ macro periodically(h, body)
local start_time = time()
$(esc(body))
local execution_time = time()-start_time
sleep(max(0,$h-execution_time))
sleep(max(0,$(esc(h))-execution_time))
end
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment