diff --git a/Manifest.toml b/Manifest.toml index e7b15e9c03f05bf6a7a64d12510316f531f54e87..3321ccac32753d1868f66052fd9172fca897cc32 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -32,9 +32,9 @@ version = "0.0.4" [[ArrayInterface]] deps = ["LinearAlgebra", "Requires", "SparseArrays"] -git-tree-sha1 = "7ab65638f4664498b01aeddf2e82f93780ba5e21" +git-tree-sha1 = "8683deff18ed6cd123e2b4d4147d2dc21f19391b" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "2.6.0" +version = "2.6.1" [[AssetRegistry]] deps = ["Distributed", "JSON", "Pidfile", "SHA", "Test"] @@ -179,9 +179,9 @@ uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" [[DiffEqBase]] deps = ["ArrayInterface", "ChainRulesCore", "ConsoleProgressMonitor", "DataStructures", "Distributed", "DocStringExtensions", "FunctionWrappers", "IterativeSolvers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "MuladdMacro", "Parameters", "Printf", "ProgressLogging", "RecipesBase", "RecursiveArrayTools", "RecursiveFactorization", "Requires", "Roots", "SparseArrays", "StaticArrays", "Statistics", "SuiteSparse", "TableTraits", "TerminalLoggers", "TreeViews", "ZygoteRules"] -git-tree-sha1 = "111bea6e862a1b5776296910f870e6df718cb674" +git-tree-sha1 = "b20a1c5741d279787c7db100e11106ea14ee6dbf" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.24.0" +version = "6.25.0" [[DiffResults]] deps = ["StaticArrays"] @@ -252,9 +252,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "aa78e468afa6a0fde472c3dba0782d1ab60b203d" +git-tree-sha1 = "f60e5d6944975f7140bde67278e10b6b01fb4f29" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.2.1" +version = "2.3.0" [[FixedPointNumbers]] git-tree-sha1 = "4aaea64dd0c30ad79037084f8ca2b94348e65eaa" @@ -298,9 +298,9 @@ version = "0.5.0" [[GR]] deps = ["Base64", "DelimitedFiles", "LinearAlgebra", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"] -git-tree-sha1 = "41dd1395d4dc559f1c2cb558cba784ef37b561fe" +git-tree-sha1 = "7ea6f715b7caa10d7ee16f1cfcd12f3ccc74116a" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.47.0" +version = "0.48.0" [[GTK3_jll]] deps = ["ATK_jll", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "Graphene_jll", "HarfBuzz_jll", "Libdl", "Libepoxy_jll", "Pango_jll", "Pkg", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXcomposite_jll", "Xorg_libXcursor_jll", "Xorg_libXdamage_jll", "Xorg_libXext_jll", "Xorg_libXfixes_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "Xorg_libXrender_jll", "adwaita_icon_theme_jll", "at_spi2_atk_jll", "gdk_pixbuf_jll", "iso_codes_jll", "xkbcommon_jll"] @@ -310,9 +310,9 @@ version = "3.24.11+1" [[GenericSVD]] deps = ["LinearAlgebra"] -git-tree-sha1 = "c59a30ef95fa4b5e0567c1911652e0c70a5d055c" +git-tree-sha1 = "62909c3eda8a25b5673a367d1ad2392ebb265211" uuid = "01680d73-4ee2-5a08-a1aa-533608c188bb" -version = "0.2.2" +version = "0.3.0" [[GeometryTypes]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "StaticArrays"] @@ -481,7 +481,7 @@ version = "0.1.0" [[LabGUI]] deps = ["Interact", "Mux", "WebIO"] -git-tree-sha1 = "75395ed528c5394af36137e25770ff0671e4af93" +git-tree-sha1 = "a3448740139bb8d52ffe1b95e98898fbb4064b93" repo-rev = "julia1" repo-url = "https://gitlab.control.lth.se/processes/LabGUI.jl.git" uuid = "31661155-7747-5a32-9846-082300d6a5a6" @@ -711,9 +711,9 @@ version = "1.1.0" [[OrdinaryDiffEq]] deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "ExponentialUtilities", "FiniteDiff", "ForwardDiff", "GenericSVD", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "NLsolve", "RecursiveArrayTools", "Reexport", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] -git-tree-sha1 = "586c962ad54d355f195ef4e2e370d420362820d2" +git-tree-sha1 = "8351ae59bb662f19464691823aaf8a235e8005db" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "5.31.0" +version = "5.32.0" [[PCRE_jll]] deps = ["Libdl", "Pkg"] @@ -769,9 +769,9 @@ version = "0.6.4" [[Plots]] deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryTypes", "JSON", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "Reexport", "Requires", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] -git-tree-sha1 = "0bcff033fa05c62203bf2cbdad1a1136389665e2" +git-tree-sha1 = "a4b22be3bb271cf46466e44009b5788ef4aaef7d" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "0.29.7" +version = "0.29.8" [[Polynomials]] deps = ["LinearAlgebra", "RecipesBase"] diff --git a/src/tankdemo.jl b/src/tankdemo.jl index 616082afcc3707bb68d8207521c235eba59f25fe..6a8148ec3223c638bf8f1ce976b95c198ff7083a 100644 --- a/src/tankdemo.jl +++ b/src/tankdemo.jl @@ -25,13 +25,12 @@ function runprocess(;simulated=false, webservice=true, port=8000, σ = 0.001, du inspectdr(show=false) function run_process(P, gui, pidcontroller, duration = duration) #four hours - println("start of run_process") y = 0.0 u = 0.0 n = 1 LabProcesses.initialize(P) start_time = time() - for t in 0:P.h:20 + for t in 0:P.h:duration y = measure(P)[n] r = gui[:r] if gui[:tankno]=="Upper" @@ -51,7 +50,6 @@ function runprocess(;simulated=false, webservice=true, port=8000, σ = 0.001, du pidcontroller.I = gui[:u]-(pidcontroller.Tot-pidcontroller.I) end end - # @show t # Not working without some print in the loop, not sure why... push!(gui, y, 1) push!(gui, r, 2) push!(gui, pidcontroller.P, 3) diff --git a/src/tanklabgui.jl b/src/tanklabgui.jl index f91a9ed8f934e887e6f0db57e832ba0eff356ed7..f95c50012231e3684f21dead067f20f0adc69405 100644 --- a/src/tanklabgui.jl +++ b/src/tanklabgui.jl @@ -25,8 +25,8 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) #This contains all settings w0, dummygraphic2 = @construct for u in slider(0:0.01:1, label=" um"), - run in button("Run"), #This should only exist in the simulated version - cali in button("Calibrate"), + #run in button("Run"), #This should only exist in the simulated version + #cali in button("Calibrate"), K in slider(0:0.1:30, label="K"), Ti in slider(0:0.1:30, label="Ti"), Td in slider(0:0.1:30, label="Td"), @@ -35,8 +35,8 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) pOn in togglebuttons(["On", "Off"], label="P"), iOn in togglebuttons(["On", "Off"], label="I"), dOn in togglebuttons(["On", "Off"], label="D"), - rbox in textbox(" r "), - expcsv in button("Export Data") + #expcsv in button("Export Data"), + rbox in textbox("0.5", label="r") tankpid.K = K tankpid.Ti = Ti @@ -91,26 +91,26 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) #-----------------------------------------------# #This should only exist in the simulated version# - on(observe(run)) do val - if val==1 + # on(observe(run)) do val + # if val==1 @async run_process(P, gui, tankpid) - else - observe(run).listeners[end] = x ->() - end - end + # else + # observe(run).listeners[end] = x ->() + # end + # end #-----------------------------------------------# # And this should only exist in the real version# - on(observe(cali)) do val - calibrate(P) - end + # on(observe(cali)) do val + # calibrate(P) + # end #-----------------------------------------------# - on(observe(expcsv)) do val - f = open("datatanklab.csv", "w") - writedlm(f, ["t" "y" "r" "P" "I" "D" "Tot"], ',') - writedlm(f, [gui.data[7] gui.data[1] gui.data[2] gui.data[3] gui.data[4] gui.data[5] gui.data[6]], ',') - close(f) - print("Data exported to datatanklab.csv\n") - end + # on(observe(expcsv)) do val + # f = open("datatanklab.csv", "w") + # writedlm(f, ["t" "y" "r" "P" "I" "D" "Tot"], ',') + # writedlm(f, [gui.data[7] gui.data[1] gui.data[2] gui.data[3] gui.data[4] gui.data[5] gui.data[6]], ',') + # close(f) + # print("Data exported to datatanklab.csv\n") + # end on(observe(mode)) do val if val=="Manual" @@ -130,44 +130,33 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) add!(gui, w0) add!(gui, w2) - layout = make_grid(1, 2) - left_element = make_grid(2,1) - settings_element = make_grid(4,1) - corner_element = make_grid(1,4) - + layout = make_grid([100], [50, 25, 25]) + settings_element = make_grid(7,1) - p_element = make_grid(2,1) - p_element = setindex_(p_element, dom"div"(gui.widgets[:pOn]), 1, 1) + p_element = make_grid(2, 1) + p_element = setindex_(p_element, dom"div[display=inline-block]"(gui.widgets[:pOn]), 1, 1) p_element = setindex_(p_element, dom"div"(gui.widgets[:K]), 2, 1) - i_element = make_grid(2,1) - i_element = setindex_(i_element, dom"div"(gui.widgets[:iOn]), 1, 1) - i_element = setindex_(i_element, dom"div"(widgets[:Ti]), 2, 1) + i_element = make_grid(2, 1) + i_element = setindex_(i_element, dom"div[display=inline-block]"(gui.widgets[:iOn]), 1, 1) + i_element = setindex_(i_element, dom"div"(gui.widgets[:Ti]), 2, 1) - d_element = make_grid(2,1) - d_element = setindex_(d_element, dom"div"(gui.widgets[:dOn]), 1, 1) + d_element = make_grid(2, 1) + d_element = setindex_(d_element, dom"div[display=inline-block]"(gui.widgets[:dOn]), 1, 1) d_element = setindex_(d_element, dom"div"(gui.widgets[:Td]), 2, 1) settings_element = setindex_(settings_element, dom"div"(gui.widgets[:tankno]), 1, 1) settings_element = setindex_(settings_element, dom"div"(gui.widgets[:mode]), 2, 1) settings_element = setindex_(settings_element, dom"div"(gui.widgets[:rbox]), 3, 1) settings_element = setindex_(settings_element, dom"div"(gui.widgets[:u]), 4, 1) + settings_element = setindex_(settings_element, p_element, 5, 1) + settings_element = setindex_(settings_element, i_element, 6, 1) + settings_element = setindex_(settings_element, d_element, 7, 1) - io_element = Node(:div, attributes=Dict("display"=>"inlineBlock"), - gui.widgets[:run], - gui.widgets[:cali], - gui.widgets[:expcsv]) - - corner_element = setindex_(corner_element, settings_element, 1, 1) - corner_element = setindex_(corner_element, p_element, 1, 2) - corner_element = setindex_(corner_element, i_element, 1, 3) - corner_element = setindex_(corner_element, d_element, 1, 4) - - left_element = setindex_(left_element, corner_element, 1, 1) - left_element = setindex_(left_element, graphic2, 2, 1) - layout = setindex_(layout, left_element, 1, 1) - layout = setindex_(layout, Node(:div, graphic1, dummygraphic1, dummygraphic2, io_element, + layout = setindex_(layout, graphic2, 1, 1) + layout = setindex_(layout, Node(:div, graphic1, dummygraphic1, dummygraphic2, attributes = tankattr), 1, 2) + layout = setindex_(layout, settings_element, 1, 3) LabGUI.set!(gui, layout)