From 23c78b4d61122dbbb27fbc75564b02fc0ca5b95e Mon Sep 17 00:00:00 2001
From: Fredrik Bagge Carlsson <cont-frb@ulund.org>
Date: Mon, 21 Aug 2017 09:58:18 +0200
Subject: [PATCH] Bugfixes from lab

---
 src/LabProcesses.jl                          | 2 +-
 src/controllers.jl                           | 4 +---
 src/interface_implementations/ballandbeam.jl | 4 ++--
 src/utilities.jl                             | 2 +-
 4 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/LabProcesses.jl b/src/LabProcesses.jl
index e7cc583..83713b7 100644
--- a/src/LabProcesses.jl
+++ b/src/LabProcesses.jl
@@ -1,4 +1,4 @@
-__precompile__()
+#__precompile__()
 
 module LabProcesses
 
diff --git a/src/controllers.jl b/src/controllers.jl
index 80b00da..eef0983 100644
--- a/src/controllers.jl
+++ b/src/controllers.jl
@@ -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
diff --git a/src/interface_implementations/ballandbeam.jl b/src/interface_implementations/ballandbeam.jl
index e06bda5..76d3d75 100644
--- a/src/interface_implementations/ballandbeam.jl
+++ b/src/interface_implementations/ballandbeam.jl
@@ -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
diff --git a/src/utilities.jl b/src/utilities.jl
index 8be25e8..14373fc 100644
--- a/src/utilities.jl
+++ b/src/utilities.jl
@@ -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
 
-- 
GitLab