1- module ModiatorServer
1+ export ModiatorServer
22
3- using Modia3D
4- using Modia3D. StaticArrays
5- using Modia3D. JSON
6- using Modia3D. HTTP
7- using Modia3D. URIParser
8- using Base64 # from Base
3+ import JSON
4+ import HTTP
5+ import URIParser
6+ using Base64
97
108# ----------------------------------------------------------------------------------------
11-
129function saveJSON (req)
1310 jsonString = String (req. body);
1411 index = findfirst (" %25NAMEEND%25" , jsonString);
1512 name = jsonString[1 : index[1 ]- 1 ]
1613 println (" Saving " , name)
1714 jsonString = jsonString[index[end ] + 1 : end ]
18- jsonString = unescape (jsonString)
15+ jsonString = URIParser . unescape (jsonString)
1916 println (jsonString)
2017 io = open (string (name, " .json" ), " w" );
2118 write (io, jsonString);
@@ -48,7 +45,7 @@ function saveOBJ(req)
4845 name = objString[1 : index[1 ]- 1 ]
4946 println (" Saving " , name)
5047 objString = objString[index[end ] + 1 : end ]
51- objString = unescape (objString)
48+ objString = URIParser . unescape (objString)
5249 io = open (string (name, " .obj" ), " w" );
5350 write (io, objString);
5451 close (io)
@@ -105,7 +102,7 @@ function simulateModel(req)
105102 return HTTP. Response (200 , headers)
106103 end
107104 model = String (req. body);
108- model = unescape (model);
105+ model = URIParser . unescape (model);
109106 experiment = JSON. parse (model);
110107 @time json = generateSimulationResult (experiment);
111108# open("SimRes.txt", "w") do f
@@ -116,7 +113,6 @@ function simulateModel(req)
116113 return response;
117114end
118115
119- @usingModiaPlot
120116
121117function generateSimulationResult (experiment)
122118 println ()
@@ -169,29 +165,36 @@ function unknownRequest(req)
169165 return HTTP. Response (200 , " OK" )
170166end
171167
172- const ROUTER = HTTP. Router ()
173-
174- HTTP. @register (ROUTER, " POST" , " /Modiator/simulateModel/" , simulateModel)
175- HTTP. @register (ROUTER, " OPTIONS" , " /Modiator/simulateModel/" , simulateModel)
176-
177- HTTP. @register (ROUTER, " POST" , " /Modiator/saveOBJ/" , saveOBJ)
178- HTTP. @register (ROUTER, " POST" , " /Modiator/loadOBJ/" , loadOBJ)
179- HTTP. @register (ROUTER, " POST" , " /Modiator/loadImageBase64/" , loadImageBase64)
180- HTTP. @register (ROUTER, " POST" , " /Modiator/saveJSON/" , saveJSON)
181- HTTP. @register (ROUTER, " POST" , " /Modiator/loadJSON/" , loadJSON)
182- # HTTP.@register(ROUTER, "GET", "/Modiator/public/*", getPublic)
183- # HTTP.@register(ROUTER, "GET", "/Modiator/icons/*", getIcon)
184- HTTP. @register (ROUTER, " GET" , " /*" , unknownRequest)
185- HTTP. @register (ROUTER, " POST" , " /*" , unknownRequest)
186-
187- # println("Precompiling")
188- # precompile(generateSimulationResult, (Dict,))
189- # precompile(HTTP.Router)
190- println (" Server ready" )
191- println (" Listening to: 127.0.0.1:8000" )
192- println ()
193- println (" Note that it might take more than 20 seconds for the first simulation to start." )
168+ function ModiatorServer ():: Nothing
169+ ROUTER = HTTP. Router ()
170+
171+ HTTP. @register (ROUTER, " POST" , " /Modiator/simulateModel/" , simulateModel)
172+ HTTP. @register (ROUTER, " OPTIONS" , " /Modiator/simulateModel/" , simulateModel)
173+
174+ HTTP. @register (ROUTER, " POST" , " /Modiator/saveOBJ/" , saveOBJ)
175+ HTTP. @register (ROUTER, " POST" , " /Modiator/loadOBJ/" , loadOBJ)
176+ HTTP. @register (ROUTER, " POST" , " /Modiator/loadImageBase64/" , loadImageBase64)
177+ HTTP. @register (ROUTER, " POST" , " /Modiator/saveJSON/" , saveJSON)
178+ HTTP. @register (ROUTER, " POST" , " /Modiator/loadJSON/" , loadJSON)
179+ # HTTP.@register(ROUTER, "GET", "/Modiator/public/*", getPublic)
180+ # HTTP.@register(ROUTER, "GET", "/Modiator/icons/*", getIcon)
181+ HTTP. @register (ROUTER, " GET" , " /*" , unknownRequest)
182+ HTTP. @register (ROUTER, " POST" , " /*" , unknownRequest)
183+
184+ # println("Precompiling")
185+ # precompile(generateSimulationResult, (Dict,))
186+ # precompile(HTTP.Router)
187+ println (" Server ready" )
188+ println (" Listening to: 127.0.0.1:8000" )
189+ println ()
190+ println (" Note that it might take more than 20 seconds for the first simulation to start." )
191+
192+ HTTP. serve (ROUTER, " 127.0.0.1" , 8000 )
193+ return nothing
194+ end
194195
195- HTTP. serve (ROUTER, " 127.0.0.1" , 8000 )
196+ function julia_main ():: Cint
197+ ModiatorServer ()
198+ return 0
199+ end
196200
197- end
0 commit comments