3434from program import ProgramEngine , Program
3535from config import Config
3636from cnn_manager import CNNManager
37- from event import EventManager
37+ # from event import EventManager
3838from conversation import Conversation
3939
4040from flask import Flask , render_template , request , send_file , Response , jsonify
@@ -92,8 +92,7 @@ def handle_home():
9292 config = app .bot_config ,
9393 program_level = app .bot_config .get ("prog_level" , "std" ),
9494 cam = cam != None ,
95- cnn_model_names = json .dumps ([[name ] for name in cnn .get_models ().keys ()]))
96-
95+ cnn_model_names = json .dumps ({}))
9796@app .route ("/config" , methods = ["POST" ])
9897def handle_config ():
9998 Config .write (request .form )
@@ -187,6 +186,21 @@ def video_stream(a_cam):
187186 yield frame
188187 yield "\r \n "
189188
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+
190204@app .route ("/video/stream" )
191205def handle_video_stream ():
192206 try :
@@ -198,6 +212,25 @@ def handle_video_stream():
198212 except :
199213 pass
200214
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+
201234@app .route ("/photos" , methods = ["GET" ])
202235def handle_photos ():
203236 logging .info ("photos" )
@@ -280,37 +313,37 @@ def handle_program_status():
280313 prog = app .prog
281314 return json .dumps ({'name' : prog .name , "running" : prog .is_running (), "log" : app .prog_engine .get_log ()})
282315
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})
305333
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)
307340
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)
312345
313- return json .dumps (model_status )
346+ # return json.dumps(model_status)
314347
315348
316349def execute (command ):
@@ -352,8 +385,8 @@ def run_server():
352385 except picamera .exc .PiCameraError :
353386 logging .error ("Camera not present" )
354387
355- cnn = CNNManager .get_instance ()
356- event = EventManager .get_instance ("coderbot" )
388+ # cnn = CNNManager.get_instance()
389+ # event = EventManager.get_instance("coderbot")
357390 conv = Conversation .get_instance ()
358391
359392 if app .bot_config .get ('load_at_start' ) and len (app .bot_config .get ('load_at_start' )):
0 commit comments