34
34
from program import ProgramEngine , Program
35
35
from config import Config
36
36
from cnn_manager import CNNManager
37
- from event import EventManager
37
+ # from event import EventManager
38
38
from conversation import Conversation
39
39
40
40
from flask import Flask , render_template , request , send_file , Response , jsonify
@@ -92,8 +92,7 @@ def handle_home():
92
92
config = app .bot_config ,
93
93
program_level = app .bot_config .get ("prog_level" , "std" ),
94
94
cam = cam != None ,
95
- cnn_model_names = json .dumps ([[name ] for name in cnn .get_models ().keys ()]))
96
-
95
+ cnn_model_names = json .dumps ({}))
97
96
@app .route ("/config" , methods = ["POST" ])
98
97
def handle_config ():
99
98
Config .write (request .form )
@@ -187,6 +186,21 @@ def video_stream(a_cam):
187
186
yield frame
188
187
yield "\r \n "
189
188
189
+ @app .route ("/video" )
190
+ def handle_video ():
191
+ return """
192
+ <html>
193
+ <head>
194
+ <style type=text/css>
195
+ body { background-image: url(/video/stream); background-repeat:no-repeat; background-position:center top; background-attachment:fixed; height:100% }
196
+ </style>
197
+ </head>
198
+ <body>
199
+
200
+ </body>
201
+ </html>
202
+ """
203
+
190
204
@app .route ("/video/stream" )
191
205
def handle_video_stream ():
192
206
try :
@@ -198,6 +212,25 @@ def handle_video_stream():
198
212
except :
199
213
pass
200
214
215
+ def video_stream_cv (a_cam ):
216
+ while not app .shutdown_requested :
217
+ frame = a_cam .get_image_cv_jpeg ()
218
+ yield ("--BOUNDARYSTRING\r \n " +
219
+ "Content-type: image/jpeg\r \n " +
220
+ "Content-Length: " + str (len (frame )) + "\r \n \r \n " +
221
+ frame + "\r \n " )
222
+
223
+ @app .route ("/video/stream/cv" )
224
+ def handle_video_stream_cv ():
225
+ try :
226
+ h = Headers ()
227
+ h .add ('Age' , 0 )
228
+ h .add ('Cache-Control' , 'no-cache, private' )
229
+ h .add ('Pragma' , 'no-cache' )
230
+ return Response (video_stream_cv (cam ), headers = h , mimetype = "multipart/x-mixed-replace; boundary=--BOUNDARYSTRING" )
231
+ except :
232
+ pass
233
+
201
234
@app .route ("/photos" , methods = ["GET" ])
202
235
def handle_photos ():
203
236
logging .info ("photos" )
@@ -280,37 +313,37 @@ def handle_program_status():
280
313
prog = app .prog
281
314
return json .dumps ({'name' : prog .name , "running" : prog .is_running (), "log" : app .prog_engine .get_log ()})
282
315
283
- @app .route ("/cnnmodels" , methods = ["GET" ])
284
- def handle_cnn_models_list ():
285
- logging .info ("cnn_models_list" )
286
- return json .dumps (cnn .get_models ())
287
-
288
- @app .route ("/cnnmodels" , methods = ["POST" ])
289
- def handle_cnn_models_new ():
290
- logging .info ("cnn_models_new" )
291
- data = json .loads (request .get_data (as_text = True ))
292
- cnn .train_new_model (model_name = data ["model_name" ],
293
- architecture = data ["architecture" ],
294
- image_tags = data ["image_tags" ],
295
- photos_meta = cam .get_photo_list (),
296
- training_steps = data ["training_steps" ],
297
- learning_rate = data ["learning_rate" ])
298
-
299
- return json .dumps ({"name" : data ["model_name" ], "status" : 0 })
300
-
301
- @app .route ("/cnnmodels/<model_name>" , methods = ["GET" ])
302
- def handle_cnn_models_status (model_name ):
303
- logging .info ("cnn_models_status" )
304
- model_status = cnn .get_models ().get (model_name )
316
+ #@app.route("/cnnmodels", methods=["GET"])
317
+ #def handle_cnn_models_list():
318
+ # logging.info("cnn_models_list")
319
+ # return json.dumps(cnn.get_models())
320
+
321
+ #@app.route("/cnnmodels", methods=["POST"])
322
+ #def handle_cnn_models_new():
323
+ # logging.info("cnn_models_new")
324
+ # data = json.loads(request.get_data(as_text=True))
325
+ # cnn.train_new_model(model_name=data["model_name"],
326
+ # architecture=data["architecture"],
327
+ # image_tags=data["image_tags"],
328
+ # photos_meta=cam.get_photo_list(),
329
+ # training_steps=data["training_steps"],
330
+ # learning_rate=data["learning_rate"])
331
+ #
332
+ # return json.dumps({"name": data["model_name"], "status": 0})
305
333
306
- return json .dumps (model_status )
334
+ #@app.route("/cnnmodels/<model_name>", methods=["GET"])
335
+ #def handle_cnn_models_status(model_name):
336
+ # logging.info("cnn_models_status")
337
+ # model_status = cnn.get_models().get(model_name)
338
+ #
339
+ # return json.dumps(model_status)
307
340
308
- @app .route ("/cnnmodels/<model_name>" , methods = ["DELETE" ])
309
- def handle_cnn_models_delete (model_name ):
310
- logging .info ("cnn_models_delete" )
311
- model_status = cnn .delete_model (model_name = model_name )
341
+ # @app.route("/cnnmodels/<model_name>", methods=["DELETE"])
342
+ # def handle_cnn_models_delete(model_name):
343
+ # logging.info("cnn_models_delete")
344
+ # model_status = cnn.delete_model(model_name=model_name)
312
345
313
- return json .dumps (model_status )
346
+ # return json.dumps(model_status)
314
347
315
348
316
349
def execute (command ):
@@ -352,8 +385,8 @@ def run_server():
352
385
except picamera .exc .PiCameraError :
353
386
logging .error ("Camera not present" )
354
387
355
- cnn = CNNManager .get_instance ()
356
- event = EventManager .get_instance ("coderbot" )
388
+ # cnn = CNNManager.get_instance()
389
+ # event = EventManager.get_instance("coderbot")
357
390
conv = Conversation .get_instance ()
358
391
359
392
if app .bot_config .get ('load_at_start' ) and len (app .bot_config .get ('load_at_start' )):
0 commit comments