diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000000000000000000000000000000000000..5ecfc14be8906e4f220ceec68b0ed7a539737252 --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,699 @@ +# This file is machine-generated - editing it directly is not advised + +[[AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "380e36c66edfa099cd90116b24c1ce8cafccac40" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "0.4.1" + +[[ArrayInterface]] +deps = ["Requires", "Test"] +git-tree-sha1 = "6a1a371393e56f5e8d5657fe4da4b11aea0bfbae" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "0.1.1" + +[[AssetRegistry]] +deps = ["Distributed", "JSON", "Pidfile", "SHA", "Test"] +git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e" +uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893" +version = "0.1.0" + +[[Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[BinDeps]] +deps = ["Compat", "Libdl", "SHA", "URIParser"] +git-tree-sha1 = "12093ca6cdd0ee547c39b1870e0c9c3f154d9ca9" +uuid = "9e28174c-4ba2-5203-b857-d8d62c4213ee" +version = "0.8.10" + +[[BinaryProvider]] +deps = ["Libdl", "SHA"] +git-tree-sha1 = "c7361ce8a2129f20b0e05a89f7070820cfed6648" +uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" +version = "0.5.4" + +[[Blink]] +deps = ["Base64", "BinDeps", "Distributed", "JSExpr", "JSON", "Lazy", "Libdl", "Logging", "MacroTools", "Mustache", "Mux", "Reexport", "Sockets", "Test", "WebIO", "WebSockets"] +git-tree-sha1 = "5b0ca771f6e59bbba820888af8a6edbcc62bc86a" +uuid = "ad839575-38b3-5650-b840-f874b8c74a25" +version = "0.10.1" + +[[BufferedStreams]] +deps = ["Compat", "Test"] +git-tree-sha1 = "5d55b9486590fdda5905c275bb21ce1f0754020f" +uuid = "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d" +version = "1.0.0" + +[[CSSUtil]] +deps = ["Colors", "Compat", "JSON", "Measures", "Pkg", "WebIO"] +git-tree-sha1 = "ff13fd99e4dd54f56eb064815f843bc992a871a2" +uuid = "70588ee8-6100-5070-97c1-3cb50ed05fe8" +version = "0.1.0" + +[[CSTParser]] +deps = ["LibGit2", "Test", "Tokenize"] +git-tree-sha1 = "437c93bc191cd55957b3f8dee7794b6131997c56" +uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" +version = "0.5.2" + +[[Cairo]] +deps = ["BinDeps", "Colors", "Compat", "Graphics", "Homebrew", "Libdl", "WinRPM"] +git-tree-sha1 = "a427098d5aa2808504d94b8ed9fc5740ceaf71d0" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "0.5.6" + +[[Calculus]] +deps = ["Compat"] +git-tree-sha1 = "f60954495a7afcee4136f78d1d60350abd37a409" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.4.1" + +[[ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "10050a24b09e8e41b951e9976b109871ce98d965" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.8.0" + +[[Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Printf", "Reexport", "Test"] +git-tree-sha1 = "9f0a0210450acb91c730b730a994f8eef1d3d543" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.9.5" + +[[CommonSubexpressions]] +deps = ["Test"] +git-tree-sha1 = "efdaf19ab11c7889334ca247ff4c9f7c322817b0" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.2.0" + +[[Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "84aa74986c5b9b898b0d1acaf3258741ee64754f" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "2.1.0" + +[[Conda]] +deps = ["Compat", "JSON", "VersionParsing"] +git-tree-sha1 = "b625d802587c2150c279a40a646fba63f9bd8187" +uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" +version = "1.2.0" + +[[Contour]] +deps = ["LinearAlgebra", "StaticArrays", "Test"] +git-tree-sha1 = "b974e164358fea753ef853ce7bad97afec15bb80" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.5.1" + +[[ControlSystems]] +deps = ["Colors", "DSP", "IterTools", "LaTeXStrings", "LinearAlgebra", "OrdinaryDiffEq", "Plots", "Polynomials", "Printf", "Random", "SparseArrays", "Test"] +git-tree-sha1 = "e5c5452262ea9239fcd5d22fd67c43f811bf387c" +uuid = "a6e380b2-a6ca-5380-bf3e-84a91bcd477e" +version = "0.5.3" + +[[DSP]] +deps = ["AbstractFFTs", "Compat", "FFTW", "LinearAlgebra", "Polynomials", "Random", "Reexport", "SpecialFunctions"] +git-tree-sha1 = "5ec38ebc4ddf6320ad50b826eb8fd7fb521993a5" +uuid = "717857b8-e6f2-59f4-9121-6e50c889abd2" +version = "0.5.2" + +[[DataStructures]] +deps = ["InteractiveUtils", "OrderedCollections", "Random", "Serialization", "Test"] +git-tree-sha1 = "ca971f03e146cf144a9e2f2ce59674f5bf0e8038" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.15.0" + +[[Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[DiffEqBase]] +deps = ["Compat", "DocStringExtensions", "IterativeSolvers", "IteratorInterfaceExtensions", "LinearAlgebra", "MuladdMacro", "Parameters", "RecipesBase", "RecursiveArrayTools", "RecursiveFactorization", "Requires", "Roots", "SparseArrays", "StaticArrays", "Statistics", "SuiteSparse", "TableTraits", "TreeViews"] +git-tree-sha1 = "efc7b2774ca1e962e9b529bb89d2f2f4e72b7516" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "5.8.1" + +[[DiffEqDiffTools]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "14c4ec4f8796e71ba034f5089b6186876574a49d" +uuid = "01453d9d-ee7c-5054-8395-0335cb756afa" +version = "0.10.1" + +[[DiffEqOperators]] +deps = ["DiffEqBase", "ForwardDiff", "LinearAlgebra", "SparseArrays", "StaticArrays", "SuiteSparse"] +git-tree-sha1 = "2884a79a72aac38347b247615ac42eda41aa36e0" +uuid = "9fdde737-9c7f-55bf-ade8-46b3f136cc48" +version = "3.5.0" + +[[DiffResults]] +deps = ["Compat", "StaticArrays"] +git-tree-sha1 = "34a4a1e8be7bc99bc9c611b895b5baf37a80584c" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "0.0.4" + +[[DiffRules]] +deps = ["Random", "Test"] +git-tree-sha1 = "dc0869fb2f5b23466b32ea799bd82c76480167f7" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "0.0.10" + +[[Distances]] +deps = ["LinearAlgebra", "Printf", "Random", "Statistics", "Test"] +git-tree-sha1 = "a135c7c062023051953141da8437ed74f89d767a" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.8.0" + +[[Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[DocStringExtensions]] +deps = ["LibGit2", "Markdown", "Pkg", "Test"] +git-tree-sha1 = "4d30e889c9f106a51ffa4791a88ffd4765bf20c3" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.7.0" + +[[ExponentialUtilities]] +deps = ["LinearAlgebra", "Printf", "Random", "SparseArrays", "Test"] +git-tree-sha1 = "6fad21cd7637d0ad6a7661f8abea1149922d6c9c" +uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" +version = "1.4.0" + +[[FFTW]] +deps = ["AbstractFFTs", "BinaryProvider", "Compat", "Conda", "Libdl", "LinearAlgebra", "Reexport", "Test"] +git-tree-sha1 = "29cda58afbf62f35b1a094882ad6c745a47b2eaa" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "0.2.4" + +[[FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[FixedPointNumbers]] +git-tree-sha1 = "d14a6fa5890ea3a7e5dcab6811114f132fec2b4b" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.6.1" + +[[ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "InteractiveUtils", "LinearAlgebra", "NaNMath", "Random", "SparseArrays", "SpecialFunctions", "StaticArrays", "Test"] +git-tree-sha1 = "4c4d727f1b7e0092134fabfab6396b8945c1ea5b" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.3" + +[[FunctionalCollections]] +deps = ["Test"] +git-tree-sha1 = "04cb9cfaa6ba5311973994fe3496ddec19b6292a" +uuid = "de31a74c-ac4f-5751-b3fd-e18cd04993ca" +version = "0.5.0" + +[[GR]] +deps = ["Base64", "DelimitedFiles", "LinearAlgebra", "Pkg", "Printf", "Random", "Serialization", "Sockets", "Test"] +git-tree-sha1 = "9dff2d231311da78648abfa3287e3458a578d2f8" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.40.0" + +[[GenericSVD]] +deps = ["LinearAlgebra", "Random", "Test"] +git-tree-sha1 = "8aa93c3f3d81562a8962047eafcc5712af0a0f59" +uuid = "01680d73-4ee2-5a08-a1aa-533608c188bb" +version = "0.2.1" + +[[GeometryTypes]] +deps = ["ColorTypes", "FixedPointNumbers", "IterTools", "LinearAlgebra", "StaticArrays"] +git-tree-sha1 = "05796e9ac5a8fb8adfdcdf842fb8737d1cb5924e" +uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb" +version = "0.7.4" + +[[Graphics]] +deps = ["Colors", "Compat", "NaNMath"] +git-tree-sha1 = "e3ead4211073d4117a0d2ef7d1efc5c8092c8412" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "0.4.0" + +[[Gtk]] +deps = ["BinDeps", "Cairo", "Compat", "Graphics", "Homebrew", "Libdl", "Reexport", "Serialization", "Test", "WinRPM"] +git-tree-sha1 = "dd884c7cbd08c8e370172bdd535d6bea45359537" +uuid = "4c0ca9eb-093a-5379-98c5-f87ac0bbbf44" +version = "0.16.5" + +[[HTTP]] +deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"] +git-tree-sha1 = "854fad2a2b9cc6678f70ed15a65fc7e572056d39" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "0.8.2" + +[[HTTPClient]] +deps = ["Compat", "LibCURL"] +git-tree-sha1 = "161d5776ae8e585ac0b8c20fb81f17ab755b3671" +uuid = "0862f596-cf2d-50af-8ef4-f2be67dfa83f" +version = "0.2.1" + +[[Hiccup]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd" +uuid = "9fb69e20-1954-56bb-a84f-559cc56a8ff7" +version = "0.2.2" + +[[Homebrew]] +deps = ["BinDeps", "InteractiveUtils", "JSON", "Libdl", "Test", "Unicode"] +git-tree-sha1 = "f01fb2f34675f9839d55ba7238bab63ebd2e531e" +uuid = "d9be37ee-ecc9-5288-90f1-b9ca67657a75" +version = "0.7.1" + +[[IniFile]] +deps = ["Test"] +git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" +uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" +version = "0.5.0" + +[[InspectDR]] +deps = ["Cairo", "Colors", "Graphics", "Gtk", "NumericIO", "Pkg", "Printf", "Random", "Test"] +git-tree-sha1 = "93de72344abd5dfd4e0a4c33d9ea987fa29d9140" +uuid = "d0351b0e-4b05-5898-87b3-e2a8edfddd1d" +version = "0.3.4" + +[[Interact]] +deps = ["CSSUtil", "InteractBase", "JSON", "Knockout", "Observables", "OrderedCollections", "Reexport", "Test", "WebIO", "Widgets"] +git-tree-sha1 = "f6531bc554990a6659966afcb8f05543c032068b" +uuid = "c601a237-2ae4-5e1e-952c-7a85b0c7eef1" +version = "0.10.2" + +[[InteractBase]] +deps = ["Base64", "CSSUtil", "Colors", "Dates", "JSExpr", "JSON", "Knockout", "Observables", "OrderedCollections", "Random", "Test", "WebIO", "Widgets"] +git-tree-sha1 = "83fc45f21bfec97e5cd56e790f6945497ab0f095" +uuid = "d3863d7c-f0c8-5437-a7b4-3ae773c01009" +version = "0.10.1" + +[[InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[IterTools]] +deps = ["SparseArrays", "Test"] +git-tree-sha1 = "79246285c43602384e6f1943b3554042a3712056" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.1.1" + +[[IterativeSolvers]] +deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays", "Test"] +git-tree-sha1 = "5687f68018b4f14c0da54d402bb23eecaec17f37" +uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" +version = "0.8.1" + +[[IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[JSExpr]] +deps = ["JSON", "MacroTools", "Observables", "Test", "WebIO"] +git-tree-sha1 = "013bc2143a2e84ea489365cf30db3407deb540c2" +uuid = "97c1335a-c9c5-57fe-bc5d-ec35cebe8660" +version = "0.5.0" + +[[JSON]] +deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"] +git-tree-sha1 = "1f7a25b53ec67f5e9422f1f551ee216503f4a0fa" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.20.0" + +[[Knockout]] +deps = ["JSExpr", "JSON", "Observables", "Pkg", "Test", "WebIO"] +git-tree-sha1 = "5cca7f070f85392cd0f42220c8ea5f7be96dacf4" +uuid = "bcebb21b-c2e3-54f8-a781-646b90f6d2cc" +version = "0.2.2" + +[[LaTeXStrings]] +deps = ["Compat"] +git-tree-sha1 = "7ab9b8788cfab2bdde22adf9004bda7ad9954b6c" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.0.3" + +[[LabConnections]] +deps = ["Serialization", "Sockets"] +path = "/local/home/albheim/.julia/dev/LabConnections" +uuid = "e9ebaa62-f26d-11e8-0a59-692f6511a9a1" +version = "0.1.0" + +[[LabGUI]] +deps = ["Interact", "Mux", "WebIO"] +path = "/local/home/albheim/.julia/dev/LabGUI" +uuid = "31661155-7747-5a32-9846-082300d6a5a6" +version = "0.1.0" + +[[LabProcesses]] +deps = ["ControlSystems", "DSP", "LabConnections", "LinearAlgebra", "Parameters"] +path = "/local/home/albheim/.julia/dev/LabProcesses" +uuid = "ce8ed945-fee5-5b18-bb88-129fae14b07e" +version = "0.1.0" + +[[Lazy]] +deps = ["Compat", "MacroTools", "Test"] +git-tree-sha1 = "aec38c7e7f255a678af22651c74100e3cd39ea20" +uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" +version = "0.13.2" + +[[LibCURL]] +deps = ["BinaryProvider", "Libdl"] +git-tree-sha1 = "5ee138c679fa202ebe211b2683d1eee2a87b3dbe" +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.5.1" + +[[LibExpat]] +deps = ["Compat"] +git-tree-sha1 = "fde352ec13479e2f90e57939da2440fb78c5e388" +uuid = "522f3ed2-3f36-55e3-b6df-e94fee9b0c07" +version = "0.5.0" + +[[LibGit2]] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[Libz]] +deps = ["BufferedStreams", "Random", "Test"] +git-tree-sha1 = "d405194ffc0293c3519d4f7251ce51baac9cc871" +uuid = "2ec943e9-cfe8-584d-b93d-64dcb6d567b7" +version = "1.0.0" + +[[LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf", "Test"] +git-tree-sha1 = "54eb90e8dbe745d617c78dee1d6ae95c7f6f5779" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.0.1" + +[[LinearAlgebra]] +deps = ["Libdl"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[MacroTools]] +deps = ["CSTParser", "Compat", "DataStructures", "Test"] +git-tree-sha1 = "daecd9e452f38297c686eba90dba2a6d5da52162" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.0" + +[[Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[MbedTLS]] +deps = ["BinaryProvider", "Dates", "Distributed", "Libdl", "Random", "Sockets", "Test"] +git-tree-sha1 = "2d94286a9c2f52c63a16146bb86fd6cdfbf677c6" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "0.6.8" + +[[Measures]] +deps = ["Test"] +git-tree-sha1 = "ddfd6d13e330beacdde2c80de27c1c671945e7d9" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.0" + +[[Missings]] +deps = ["SparseArrays", "Test"] +git-tree-sha1 = "f0719736664b4358aa9ec173077d4285775f8007" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "0.4.1" + +[[Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[MuladdMacro]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "41e6e7c4b448afeaddaac7f496b414854f83b848" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.1" + +[[Mustache]] +deps = ["Printf", "Tables"] +git-tree-sha1 = "d27b8b8b99c052ea1fdd40c678bfb2dfaec4e96e" +uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70" +version = "0.5.12" + +[[Mux]] +deps = ["AssetRegistry", "Base64", "HTTP", "Hiccup", "Lazy", "Pkg", "Sockets", "Test", "WebSockets"] +git-tree-sha1 = "5b41f03d63400c290bab4e1a49fb9ac36de1084a" +uuid = "a975b10e-0019-58db-a62f-e48ff68538c9" +version = "0.7.0" + +[[NLSolversBase]] +deps = ["Calculus", "DiffEqDiffTools", "DiffResults", "Distributed", "ForwardDiff", "LinearAlgebra", "Random", "SparseArrays", "Test"] +git-tree-sha1 = "0c6f0e7f2178f78239cfb75310359eed10f2cacb" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.3.1" + +[[NLsolve]] +deps = ["DiffEqDiffTools", "Distances", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Random", "Reexport", "SparseArrays", "Test"] +git-tree-sha1 = "413e54f04a4cbe9804089794eec6b06b2a43bc47" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.0.0" + +[[NaNMath]] +deps = ["Compat"] +git-tree-sha1 = "ce3b85e484a5d4c71dd5316215069311135fa9f2" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "0.3.2" + +[[NumericIO]] +deps = ["Printf", "Test"] +git-tree-sha1 = "eacd69d8b2b97b6689d9d9bf829de57409b063e3" +uuid = "6c575b1c-77cb-5640-a5dc-a54116c90507" +version = "0.3.0" + +[[Observables]] +deps = ["Test"] +git-tree-sha1 = "dc02cec22747d1d10d9f70d8a1c03432b5bfbcd0" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.2.3" + +[[OrderedCollections]] +deps = ["Random", "Serialization", "Test"] +git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.1.0" + +[[OrdinaryDiffEq]] +deps = ["DataStructures", "DiffEqBase", "DiffEqDiffTools", "DiffEqOperators", "ExponentialUtilities", "ForwardDiff", "GenericSVD", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "Parameters", "RecursiveArrayTools", "Reexport", "StaticArrays"] +git-tree-sha1 = "300118c9211d3a11dad71e66bc9eb4a158c39c16" +uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +version = "5.7.0" + +[[Parameters]] +deps = ["Markdown", "OrderedCollections", "REPL", "Test"] +git-tree-sha1 = "70bdbfb2bceabb15345c0b54be4544813b3444e4" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.10.3" + +[[Pidfile]] +deps = ["FileWatching", "Test"] +git-tree-sha1 = "1ffd82728498b5071cde851bbb7abd780d4445f3" +uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" +version = "1.1.0" + +[[Pkg]] +deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[[PlotThemes]] +deps = ["PlotUtils", "Requires", "Test"] +git-tree-sha1 = "f3afd2d58e1f6ac9be2cea46e4a9083ccc1d990b" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "0.3.0" + +[[PlotUtils]] +deps = ["Colors", "Dates", "Printf", "Random", "Reexport", "Test"] +git-tree-sha1 = "8e87bbb778c26f575fbe47fd7a49c7b5ca37c0c6" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "0.5.8" + +[[Plots]] +deps = ["Base64", "Contour", "Dates", "FixedPointNumbers", "GR", "GeometryTypes", "JSON", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "Reexport", "Requires", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] +git-tree-sha1 = "c446e51959578de01b5a4efa72ca6f2460e38196" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "0.25.1" + +[[Polynomials]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "62142bd65d3f8aeb2226ec64dd8493349147df94" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "0.5.2" + +[[Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[Random]] +deps = ["Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[RecipesBase]] +deps = ["Random", "Test"] +git-tree-sha1 = "0b3cb370ee4dc00f47f1193101600949f3dcf884" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "0.6.0" + +[[RecursiveArrayTools]] +deps = ["ArrayInterface", "RecipesBase", "Requires", "StaticArrays", "Statistics", "Test"] +git-tree-sha1 = "187ea7dd541955102c7035a6668613bdf52022ca" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "0.20.0" + +[[RecursiveFactorization]] +deps = ["LinearAlgebra", "Random", "Test"] +git-tree-sha1 = "54410ebd72cbb84d7b7678eb3da643f8e71181fc" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.0.1" + +[[Reexport]] +deps = ["Pkg"] +git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "0.2.0" + +[[Requires]] +deps = ["Test"] +git-tree-sha1 = "f6fbf4ba64d295e146e49e021207993b6b48c7d1" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "0.5.2" + +[[Roots]] +deps = ["Printf", "Statistics", "Test"] +git-tree-sha1 = "7228278e31d6d0e22a1ae0b41ea9a0df2859f33d" +uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" +version = "0.8.1" + +[[SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[Showoff]] +deps = ["Compat"] +git-tree-sha1 = "276b24f3ace98bec911be7ff2928d497dc759085" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "0.2.1" + +[[Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[SortingAlgorithms]] +deps = ["DataStructures", "Random", "Test"] +git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "0.3.1" + +[[SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[SpecialFunctions]] +deps = ["BinDeps", "BinaryProvider", "Libdl", "Test"] +git-tree-sha1 = "0b45dc2e45ed77f445617b99ff2adf0f5b0f23ea" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "0.7.2" + +[[StaticArrays]] +deps = ["InteractiveUtils", "LinearAlgebra", "Random", "Statistics", "Test"] +git-tree-sha1 = "3841b39ed5f047db1162627bf5f80a9cd3e39ae2" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "0.10.3" + +[[Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[StatsBase]] +deps = ["DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] +git-tree-sha1 = "8a0f4b09c7426478ab677245ab2b0b68552143c7" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.30.0" + +[[SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.0" + +[[Tables]] +deps = ["IteratorInterfaceExtensions", "LinearAlgebra", "Requires", "TableTraits", "Test"] +git-tree-sha1 = "351a4b894122e1553c6ed05fda54086ab036adef" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "0.2.5" + +[[Test]] +deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[Tokenize]] +deps = ["Printf", "Test"] +git-tree-sha1 = "3e83f60b74911d3042d3550884ca2776386a02b8" +uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" +version = "0.5.3" + +[[TreeViews]] +deps = ["Test"] +git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" +uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" +version = "0.3.0" + +[[URIParser]] +deps = ["Test", "Unicode"] +git-tree-sha1 = "6ddf8244220dfda2f17539fa8c9de20d6c575b69" +uuid = "30578b45-9adc-5946-b283-645ec420af67" +version = "0.4.0" + +[[UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[VersionParsing]] +deps = ["Compat"] +git-tree-sha1 = "c9d5aa108588b978bd859554660c8a5c4f2f7669" +uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" +version = "1.1.3" + +[[WebIO]] +deps = ["AssetRegistry", "Base64", "Compat", "Distributed", "FunctionalCollections", "JSON", "Logging", "Observables", "Random", "Requires", "Sockets", "UUIDs", "WebSockets", "Widgets"] +path = "/local/home/albheim/.julia/dev/WebIO" +uuid = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29" +version = "0.8.1+" + +[[WebSockets]] +deps = ["Base64", "Dates", "Distributed", "HTTP", "Logging", "Random", "Sockets", "Test"] +git-tree-sha1 = "13f763d38c7a05688938808b49cb29b18b60c8c8" +uuid = "104b5d7c-a370-577a-8038-80a2059c5097" +version = "1.5.2" + +[[Widgets]] +deps = ["Colors", "Dates", "Observables", "OrderedCollections", "Test"] +git-tree-sha1 = "c53befc70c6b91eaa2a9888c2f6ac2d92720a81b" +uuid = "cc8bc4a8-27d6-5769-a93b-9d913e69aa62" +version = "0.6.1" + +[[WinRPM]] +deps = ["BinDeps", "Compat", "HTTPClient", "LibExpat", "Libdl", "Libz", "URIParser"] +git-tree-sha1 = "2a889d320f3b77d17c037f295859fe570133cfbf" +uuid = "c17dfb99-b4f7-5aad-8812-456da1ad7187" +version = "0.4.2" diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000000000000000000000000000000000000..66691533518e441d4ad9c6b24ebe3ef204e6da00 --- /dev/null +++ b/Project.toml @@ -0,0 +1,18 @@ +name = "DoubleTankLab" +uuid = "d2f8a755-70d4-5d1a-adca-8717da4f3191" +authors = ["Jacob Wikmark"] +repo = "https://gitlab.control.lth.se/processes/DoubleTankLab.jl/commits/master" +version = "0.1.0" + +[deps] +Blink = "ad839575-38b3-5650-b840-f874b8c74a25" +DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" +InspectDR = "d0351b0e-4b05-5898-87b3-e2a8edfddd1d" +Interact = "c601a237-2ae4-5e1e-952c-7a85b0c7eef1" +LabConnections = "e9ebaa62-f26d-11e8-0a59-692f6511a9a1" +LabGUI = "31661155-7747-5a32-9846-082300d6a5a6" +LabProcesses = "ce8ed945-fee5-5b18-bb88-129fae14b07e" +Mux = "a975b10e-0019-58db-a62f-e48ff68538c9" +Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +WebIO = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29" diff --git a/REQUIRE b/REQUIRE deleted file mode 100644 index c62678148882e3ac8ad36866d5806f4da3be4557..0000000000000000000000000000000000000000 --- a/REQUIRE +++ /dev/null @@ -1,6 +0,0 @@ -julia 0.6 -InteractNext -LabGUI -Plots -LabConnections -LabProcesses diff --git a/src/DoubleTankLab.jl b/src/DoubleTankLab.jl index 4c488fea570ddcaae5de8dc59405295e9a84f8ea..9763bf8ad331c7366448d745cc40f0a0a119e99e 100644 --- a/src/DoubleTankLab.jl +++ b/src/DoubleTankLab.jl @@ -1,7 +1,6 @@ -using WebIO module DoubleTankLab -using InteractNext, WebIO, Mux, Plots, LabProcesses, LabGUI, Mux, LabConnections#, Blink -const webio_serve = Main.webio_serve +using Interact, WebIO, Plots, InspectDR, LabProcesses, LabGUI, Mux, + LabConnections, DelimitedFiles#, Blink include("tankgraphic.jl") include("doubletank.jl") include("tanklabgui.jl") diff --git a/src/doubletank.jl b/src/doubletank.jl index 7e19db563f3270ea324a59d5f3bf884fea8dad32..6d60b4989dd694fa34a40cc7c075b90613ff1c81 100644 --- a/src/doubletank.jl +++ b/src/doubletank.jl @@ -23,7 +23,7 @@ end ############################################################ # This allows calibration without having to toggle the pump controller -function LabConnections.Computer.send(n::Void, a::Number) +function LabConnections.Computer.send(n::Cvoid, a::Number) nothing end @@ -70,7 +70,7 @@ function (p::PID)(r, y, onv=(1,1,1)) Tot += I end y_old = y - @pack p = P, I, D, Tot, y_old + @pack! p = P, I, D, Tot, y_old Tot end @@ -97,7 +97,7 @@ mutable struct Pump <: PhysicalProcess pid::PID venturirange::Array{Float64, 1} measure::AnalogInput10V - control::Union{AnalogOutput10V, Void} + control::Union{AnalogOutput10V, Cvoid} end function Pump(stream) @@ -222,7 +222,6 @@ end const AbstractDoubleTank = Union{DoubleTank, DoubleTankSimulator} - num_outputs(p::AbstractDoubleTank) = 2 num_inputs(p::AbstractDoubleTank) = 1 outputrange(p::AbstractDoubleTank) = [(0.0,1.0),(0.0,1.0)] @@ -260,7 +259,7 @@ function control(p::DoubleTankSimulator, u::Number) x[2] += (dA2*h)/A x /= scale - @pack p = a1, a2, g, x, A, h + @pack! p = a1, a2, g, x, A, h end diff --git a/src/tankdemo.jl b/src/tankdemo.jl index ebff17489732a41a63633008a245aa22a1cc6815..e0ca0ccd6be5c64955409e7f0652882eae2104f6 100644 --- a/src/tankdemo.jl +++ b/src/tankdemo.jl @@ -25,10 +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:duration @periodically P.h begin y = measure(P)[n] @@ -41,7 +43,7 @@ function runprocess(;simulated=false, webservice=true, port=8000, σ = 0.001, du onv = Int.([gui[s]=="On" for s in [:pOn, :iOn, :dOn]]) rv = pidcontroller(r, y, onv) if gui[:mode]=="Automatic" - gui[:u] = clamp(round(rv,2), 0, 1) #u's constructor has only a dummy graphic so this is fine + gui[:u] = clamp(round(rv,digits=2), 0, 1) #u's constructor has only a dummy graphic so this is fine control(P, rv) elseif gui[:mode]=="Manual" control(P, gui[:u]) @@ -50,6 +52,7 @@ 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) @@ -59,12 +62,12 @@ function runprocess(;simulated=false, webservice=true, port=8000, σ = 0.001, du push!(gui, t, 7) end end - print("The lab time is over, go home! 😊\n") #Easter egg, unlikely to be shown + println("The lab time is over, go home! 😊\n") #Easter egg, unlikely to be shown LabProcesses.finalize(P) end - g1, r1, tp = makegui(R, run_process) + g1, r1, tp = makegui(R, run_process, 1, 1) if webservice webio_serve(page("/", r1), port) diff --git a/src/tankgraphic.jl b/src/tankgraphic.jl index a0ffaa711ed78d79eb6edae133e1643c22000342..c6ee8176fc89d0d38041c2f4e178123b787a48be 100644 --- a/src/tankgraphic.jl +++ b/src/tankgraphic.jl @@ -28,8 +28,8 @@ function stream(width, height, x, y) "to" => "$(y+ht)", "dur" => sp, "repeatCount" => "indefinite") anim1 = dom"svg:animate"(attributes=animate1) anim2 = dom"svg:animate"(attributes=animate2) - stline1 = Node(instanceof(dom"svg:rect"()), anim1, style = smallstyle, attributes = attr_small) - stline2 = Node(instanceof(dom"svg:rect"()), anim2, style = smallstyle, attributes = attr_small) + stline1 = node(instanceof(dom"svg:rect"()), anim1, style = smallstyle, attributes = attr_small) + stline2 = node(instanceof(dom"svg:rect"()), anim2, style = smallstyle, attributes = attr_small) (svg_rect(width, height, x, y, bigstyle), stline1, stline2) end @@ -44,7 +44,7 @@ function water_container(width, height, fill, x=0, y=0) "y" => "$y", "width" => "$width", "height" => "$height") - Node(svgsvg_symb, + node(svgsvg_symb, svg_rect(width, fill_level, 0, height-fill_level, water_style), svg_rect(wall_thickness, height, 0, 0, wall_style), svg_rect(wall_thickness, height, width-wall_thickness, 0, wall_style), @@ -94,7 +94,7 @@ function tank_construct(upper, lower, pump_speed = 1, tnum = 0, r = -1) #The order of svg objects is important, latter elements are laid on top of existing ones - Node(svgsvg_symb, + node(svgsvg_symb, stream(w1, height+50, upper_x+(width-w1)/2, 50)..., stream(w2, height+50, upper_x+(width-w2)/2, height+100)..., stream(w3, 100, upper_x+(width-w3)/2, 2*height+150)..., diff --git a/src/tanklabgui.jl b/src/tanklabgui.jl index 1ea274af796c60f44549291c8d2a08252fa70155..f91a9ed8f934e887e6f0db57e832ba0eff356ed7 100644 --- a/src/tanklabgui.jl +++ b/src/tanklabgui.jl @@ -46,6 +46,7 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) if !endswith(rbox, ".") && rbox != "0" try rv = parse(Float64, rbox) + catch end if 0.0<rv<1.0 observe(r).val = rv @@ -58,9 +59,9 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) svgdummy in checkbox(false, label="This button does nothing") - if observe(tankno)[]=="Upper" + if observe(tankno)[] == "Upper" tankg = tank_construct(measure(P)..., observe(u)[]*ptfr, 1, observe(r).val) - elseif observe(tankno)[]=="Lower" + elseif observe(tankno)[] == "Lower" tankg = tank_construct(measure(P)..., observe(u)[]*ptfr, 2, observe(r).val) else tankg = tank_construct(measure(P)..., observe(u)[]*ptfr) @@ -73,16 +74,16 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) plotdummy in checkbox(false, label="This button does nothing") dataln = length(gui.data[1]) - if dataln>maxplotlength - start = dataln-maxplotlength + if dataln > maxplotlength + start = dataln - maxplotlength else - start=1 + start = 1 end lnv = glnv[1:min(dataln, maxplotlength+1)] - p = plot(layout=(2,1), size=(700, 600), xlabel = "seconds") - plot!(p[1], lnv, gui.data[1][start:end], label="y", ylim = boundsupper) + p = plot(layout=(2,1), size=(700, 600), xlabel="seconds") + plot!(p[1], lnv, gui.data[1][start:end], label="y", ylim=boundsupper) plot!(p[1], lnv, gui.data[2][start:end], label="r") - plot!(p[2], lnv, gui.data[3][start:end], label="P", ylim = boundslower) + plot!(p[2], lnv, gui.data[3][start:end], label="P", ylim=boundslower) plot!(p[2], lnv, gui.data[4][start:end], label="I") plot!(p[2], lnv, gui.data[5][start:end], label="D") plot!(p[2], lnv, gui.data[6][start:end], label="Tot", color=:black) @@ -170,8 +171,8 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) LabGUI.set!(gui, layout) - LabGUI.animate(gui, :svgdummy, 1/guiframerate) - LabGUI.animate(gui, :plotdummy, 1/plottingframerate) + LabGUI.animate(gui, :svgdummy, 1 / guiframerate) + LabGUI.animate(gui, :plotdummy, 1 / plottingframerate) function responder(req) @async (sleep(1); gui[:rbox] = "0.5") #Inits r textbox, must be done after dom is loaded in browser diff --git a/test/runtests.jl b/test/runtests.jl index 00d00ef6fb98fd632d710095081d21ba95399785..9e39b2724f83851cc7b697b2013f705bb1ac05b5 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,5 +1,5 @@ #using DoubleTank -using LabGUI, InteractNext, Mux, Plots +using DoubleTankLab, LabGUI, Interact, Mux, Plots, WebIO #using Base.Test ## write your own tests here @@ -13,20 +13,20 @@ print("- A plot should be shown somewhere\n\n") gui = GUI() widgets, garbage = @construct for upper in 0:16, lower in 0:16 - Node(:div, "", id = "blarf") + node(:div, "", id = "blarf") end LabGUI.set!(gui, widgets) dummy, graphic = @construct for tankvar in 0:1 - tank_construct(gui[:upper]/16, gui[:lower]/16) + DoubleTankLab.tank_construct(gui[:upper]/16, gui[:lower]/16) end LabGUI.add!(gui, dummy) widgets2, graphic2 = @construct for t in 0:0.1:10 - plot(linspace(0,2pi), sin.(gui[:lower]*linspace(0,2pi))) - plot!(linspace(0,2pi), cos.(gui[:upper]*linspace(0,2pi))) + plot(range(0, stop=2pi,length=50), sin.(gui[:lower]*range(0, stop=2pi, length=50))) + plot!(range(0, stop=2pi, length=50), cos.(gui[:upper]*range(0, stop=2pi, length=50))) end LabGUI.add!(gui, widgets2)