1
- module ModiatorServer
1
+ export ModiatorServer
2
2
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
9
7
10
8
# ----------------------------------------------------------------------------------------
11
-
12
9
function saveJSON (req)
13
10
jsonString = String (req. body);
14
11
index = findfirst (" %25NAMEEND%25" , jsonString);
15
12
name = jsonString[1 : index[1 ]- 1 ]
16
13
println (" Saving " , name)
17
14
jsonString = jsonString[index[end ] + 1 : end ]
18
- jsonString = unescape (jsonString)
15
+ jsonString = URIParser . unescape (jsonString)
19
16
println (jsonString)
20
17
io = open (string (name, " .json" ), " w" );
21
18
write (io, jsonString);
@@ -48,7 +45,7 @@ function saveOBJ(req)
48
45
name = objString[1 : index[1 ]- 1 ]
49
46
println (" Saving " , name)
50
47
objString = objString[index[end ] + 1 : end ]
51
- objString = unescape (objString)
48
+ objString = URIParser . unescape (objString)
52
49
io = open (string (name, " .obj" ), " w" );
53
50
write (io, objString);
54
51
close (io)
@@ -105,7 +102,7 @@ function simulateModel(req)
105
102
return HTTP. Response (200 , headers)
106
103
end
107
104
model = String (req. body);
108
- model = unescape (model);
105
+ model = URIParser . unescape (model);
109
106
experiment = JSON. parse (model);
110
107
@time json = generateSimulationResult (experiment);
111
108
# open("SimRes.txt", "w") do f
@@ -116,7 +113,6 @@ function simulateModel(req)
116
113
return response;
117
114
end
118
115
119
- @usingModiaPlot
120
116
121
117
function generateSimulationResult (experiment)
122
118
println ()
@@ -169,29 +165,36 @@ function unknownRequest(req)
169
165
return HTTP. Response (200 , " OK" )
170
166
end
171
167
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
194
195
195
- HTTP. serve (ROUTER, " 127.0.0.1" , 8000 )
196
+ function julia_main ():: Cint
197
+ ModiatorServer ()
198
+ return 0
199
+ end
196
200
197
- end
0 commit comments