From 6481930b06833e1e1ca5f170682218fbb03c2228 Mon Sep 17 00:00:00 2001
From: baggepinnen <cont-frb@ulund.org>
Date: Fri, 7 Dec 2018 16:01:08 +0100
Subject: [PATCH] updates for julia v1.0

---
 README.md                                           |  5 ++++-
 REQUIRE                                             |  3 ++-
 src/LabProcesses.jl                                 |  3 ++-
 src/interface_implementations/define_beam_system.jl |  2 +-
 src/utilities.jl                                    | 12 ++++++------
 5 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/README.md b/README.md
index 2aca568..4870e97 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
+## News
+2018-12-07: Update to julia v1.0 is ongoing, check branch `julia1`
+
 [![pipeline status](https://gitlab.control.lth.se/processes/LabProcesses.jl/badges/master/pipeline.svg)](https://gitlab.control.lth.se/processes/LabProcesses.jl/commits/master)
 [![coverage report](https://gitlab.control.lth.se/processes/LabProcesses.jl/badges/master/coverage.svg)](https://gitlab.control.lth.se/processes/LabProcesses.jl/commits/master)
 
@@ -37,4 +40,4 @@ och lägga till tre rader som
 
 När .gitlab-ci.yml uppdateras i master triggas en pipline. Om denna lyckas kommer dokumentationen finnas under
 
-http://processes.gitlab.control.lth.se/documentation/myfoldername/
\ No newline at end of file
+http://processes.gitlab.control.lth.se/documentation/myfoldername/
diff --git a/REQUIRE b/REQUIRE
index d5abd45..ff86b98 100644
--- a/REQUIRE
+++ b/REQUIRE
@@ -1,3 +1,4 @@
-julia 0.6
+julia 0.7
 ControlSystems
 Parameters
+DSP
diff --git a/src/LabProcesses.jl b/src/LabProcesses.jl
index e193536..bc3b32b 100644
--- a/src/LabProcesses.jl
+++ b/src/LabProcesses.jl
@@ -1,4 +1,5 @@
 # __precompile__()
+using Pkg
 installed_packages = Pkg.installed()
 if "LabConnections" ∉ keys(installed_packages)
 	Pkg.clone("https://gitlab.control.lth.se/cont-frb/LabConnections.jl")
@@ -8,7 +9,7 @@ end
 
 module LabProcesses
 
-using ControlSystems, LabConnections.Computer, Parameters
+using ControlSystems, LabConnections.Computer, Parameters, DSP
 
 include("utilities.jl")
 
diff --git a/src/interface_implementations/define_beam_system.jl b/src/interface_implementations/define_beam_system.jl
index 5aba53b..76365fa 100644
--- a/src/interface_implementations/define_beam_system.jl
+++ b/src/interface_implementations/define_beam_system.jl
@@ -1,4 +1,4 @@
-using ControlSystems
+using ControlSystems, DSP
 
 """
     beammodel, beamcontroller = define_beam_system(;doplot=false)
diff --git a/src/utilities.jl b/src/utilities.jl
index 3b4d1f2..6ae5a9d 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,$(esc(h))-execution_time))
+		Libc.systemsleep(max(0,$(esc(h))-execution_time))
 	end
 end
 
@@ -37,22 +37,22 @@ Create a SysFilter object that can be used to implement control loops and simula
 with LTI systems, i.e., `U(z) = C(z)E(z)`. To filter a signal `u` through the filter,
 call like `y = Csf(u)`. Calculates the filtered output `y` in `y = Cx+Du, x'=Ax+Bu`
 """
-struct SysFilter
-	sys::StateSpace
+struct SysFilter{T<:StateSpace}
+	sys::T
 	state::Vector{Float64}
 	function SysFilter(sys::StateSpace, state::AbstractVector)
 		@assert !ControlSystems.iscontinuous(sys) "Can not filter using continuous time model."
 		@assert length(state) == sys.nx "length(state) != sys.nx"
-		new(sys, state)
+		new{typeof(sys)}(sys, state)
 	end
 	function SysFilter(sys::StateSpace)
 		@assert !ControlSystems.iscontinuous(sys) "Can not filter using continuous time model. Supply sample time."
-		new(sys, init_sysfilter(sys))
+		new{typeof(sys)}(sys, init_sysfilter(sys))
 	end
 	function SysFilter(sys::StateSpace, h::Real)
 		@assert ControlSystems.iscontinuous(sys) "Sample time supplied byt system model is already in discrete time."
 		sysd = c2d(sys, h)[1]
-		new(sysd, init_sysfilter(sysd))
+		new{typeof(sysd)}(sysd, init_sysfilter(sysd))
 	end
 end
 (s::SysFilter)(input) = sysfilter!(s.state, s.sys, input)
-- 
GitLab