nouveau fichier: Doxyfile

nouveau fichier: doc/html/annotated.html
 	nouveau fichier: doc/html/annotated.js
 	nouveau fichier: doc/html/bc_s.png
 	nouveau fichier: doc/html/bdwn.png
 	nouveau fichier: doc/html/classes.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error-members.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.js
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.png
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf-members.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.html
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.js
 	nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.png
 	nouveau fichier: doc/html/classm_1_1log_1_1_log-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_log.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_log.js
 	nouveau fichier: doc/html/classm_1_1log_1_1_log.png
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.html
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.js
 	nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.png
 	nouveau fichier: doc/html/classm_1_1log_1_1bcolors-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1bcolors.html
 	nouveau fichier: doc/html/classm_1_1log_1_1lvl-members.html
 	nouveau fichier: doc/html/classm_1_1log_1_1lvl.html
 	nouveau fichier: doc/html/classm_1_1login_1_1_login-members.html
 	nouveau fichier: doc/html/classm_1_1login_1_1_login.html
 	nouveau fichier: doc/html/classm_1_1login_1_1_login.js
 	nouveau fichier: doc/html/classm_1_1login_1_1_login.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_global_vars-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_global_vars.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.png
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler-members.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.html
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.js
 	nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.png
 	nouveau fichier: doc/html/closed.png
 	nouveau fichier: doc/html/dir_060e062f70a4a7965197b0046a5699c1.html
 	nouveau fichier: doc/html/dir_b9f9e361513c934f24957ae0a3633a41.html
 	nouveau fichier: doc/html/dir_cc95ad066e2e041bbee057a78f4a0df2.html
 	nouveau fichier: doc/html/doxygen.css
 	nouveau fichier: doc/html/doxygen.png
 	nouveau fichier: doc/html/dynsections.js
 	nouveau fichier: doc/html/ftv2blank.png
 	nouveau fichier: doc/html/ftv2cl.png
 	nouveau fichier: doc/html/ftv2doc.png
 	nouveau fichier: doc/html/ftv2folderclosed.png
 	nouveau fichier: doc/html/ftv2folderopen.png
 	nouveau fichier: doc/html/ftv2lastnode.png
 	nouveau fichier: doc/html/ftv2link.png
 	nouveau fichier: doc/html/ftv2mlastnode.png
 	nouveau fichier: doc/html/ftv2mnode.png
 	nouveau fichier: doc/html/ftv2mo.png
 	nouveau fichier: doc/html/ftv2node.png
 	nouveau fichier: doc/html/ftv2ns.png
 	nouveau fichier: doc/html/ftv2plastnode.png
 	nouveau fichier: doc/html/ftv2pnode.png
 	nouveau fichier: doc/html/ftv2splitbar.png
 	nouveau fichier: doc/html/ftv2vertline.png
 	nouveau fichier: doc/html/functions.html
 	nouveau fichier: doc/html/functions_func.html
 	nouveau fichier: doc/html/hierarchy.html
 	nouveau fichier: doc/html/hierarchy.js
 	nouveau fichier: doc/html/index.html
 	nouveau fichier: doc/html/jquery.js
 	nouveau fichier: doc/html/link lol.gif
 	nouveau fichier: doc/html/md__r_e_a_d_m_e.html
 	nouveau fichier: doc/html/namespaces.html
 	nouveau fichier: doc/html/namespaces.js
 	nouveau fichier: doc/html/namespacesuper_tornado.html
 	nouveau fichier: doc/html/namespacesuper_tornado.js
 	nouveau fichier: doc/html/nav_f.png
 	nouveau fichier: doc/html/nav_g.png
 	nouveau fichier: doc/html/nav_h.png
 	nouveau fichier: doc/html/navtree.css
 	nouveau fichier: doc/html/navtree.js
 	nouveau fichier: doc/html/navtreeindex0.js
 	nouveau fichier: doc/html/open.png
 	nouveau fichier: doc/html/pages.html
 	nouveau fichier: doc/html/resize.js
 	nouveau fichier: doc/html/search/all_0.html
 	nouveau fichier: doc/html/search/all_0.js
 	nouveau fichier: doc/html/search/all_1.html
 	nouveau fichier: doc/html/search/all_1.js
 	nouveau fichier: doc/html/search/all_2.html
 	nouveau fichier: doc/html/search/all_2.js
 	nouveau fichier: doc/html/search/all_3.html
 	nouveau fichier: doc/html/search/all_3.js
 	nouveau fichier: doc/html/search/all_4.html
 	nouveau fichier: doc/html/search/all_4.js
 	nouveau fichier: doc/html/search/all_5.html
 	nouveau fichier: doc/html/search/all_5.js
 	nouveau fichier: doc/html/search/all_6.html
 	nouveau fichier: doc/html/search/all_6.js
 	nouveau fichier: doc/html/search/all_7.html
 	nouveau fichier: doc/html/search/all_7.js
 	nouveau fichier: doc/html/search/all_8.html
 	nouveau fichier: doc/html/search/all_8.js
 	nouveau fichier: doc/html/search/all_9.html
 	nouveau fichier: doc/html/search/all_9.js
 	nouveau fichier: doc/html/search/all_a.html
 	nouveau fichier: doc/html/search/all_a.js
 	nouveau fichier: doc/html/search/all_b.html
 	nouveau fichier: doc/html/search/all_b.js
 	nouveau fichier: doc/html/search/all_c.html
 	nouveau fichier: doc/html/search/all_c.js
 	nouveau fichier: doc/html/search/all_d.html
 	nouveau fichier: doc/html/search/all_d.js
 	nouveau fichier: doc/html/search/classes_0.html
 	nouveau fichier: doc/html/search/classes_0.js
 	nouveau fichier: doc/html/search/classes_1.html
 	nouveau fichier: doc/html/search/classes_1.js
 	nouveau fichier: doc/html/search/classes_2.html
 	nouveau fichier: doc/html/search/classes_2.js
 	nouveau fichier: doc/html/search/classes_3.html
 	nouveau fichier: doc/html/search/classes_3.js
 	nouveau fichier: doc/html/search/classes_4.html
 	nouveau fichier: doc/html/search/classes_4.js
 	nouveau fichier: doc/html/search/classes_5.html
 	nouveau fichier: doc/html/search/classes_5.js
 	nouveau fichier: doc/html/search/classes_6.html
 	nouveau fichier: doc/html/search/classes_6.js
 	nouveau fichier: doc/html/search/classes_7.html
 	nouveau fichier: doc/html/search/classes_7.js
 	nouveau fichier: doc/html/search/classes_8.html
 	nouveau fichier: doc/html/search/classes_8.js
 	nouveau fichier: doc/html/search/classes_9.html
 	nouveau fichier: doc/html/search/classes_9.js
 	nouveau fichier: doc/html/search/close.png
 	nouveau fichier: doc/html/search/functions_0.html
 	nouveau fichier: doc/html/search/functions_0.js
 	nouveau fichier: doc/html/search/functions_1.html
 	nouveau fichier: doc/html/search/functions_1.js
 	nouveau fichier: doc/html/search/functions_2.html
 	nouveau fichier: doc/html/search/functions_2.js
 	nouveau fichier: doc/html/search/functions_3.html
 	nouveau fichier: doc/html/search/functions_3.js
 	nouveau fichier: doc/html/search/functions_4.html
 	nouveau fichier: doc/html/search/functions_4.js
 	nouveau fichier: doc/html/search/functions_5.html
 	nouveau fichier: doc/html/search/functions_5.js
 	nouveau fichier: doc/html/search/functions_6.html
 	nouveau fichier: doc/html/search/functions_6.js
 	nouveau fichier: doc/html/search/functions_7.html
 	nouveau fichier: doc/html/search/functions_7.js
 	nouveau fichier: doc/html/search/mag_sel.png
 	nouveau fichier: doc/html/search/namespaces_0.html
 	nouveau fichier: doc/html/search/namespaces_0.js
 	nouveau fichier: doc/html/search/nomatches.html
 	nouveau fichier: doc/html/search/pages_0.html
 	nouveau fichier: doc/html/search/pages_0.js
 	nouveau fichier: doc/html/search/search.css
 	nouveau fichier: doc/html/search/search.js
 	nouveau fichier: doc/html/search/search_l.png
 	nouveau fichier: doc/html/search/search_m.png
 	nouveau fichier: doc/html/search/search_r.png
 	nouveau fichier: doc/html/sync_off.png
 	nouveau fichier: doc/html/sync_on.png
 	nouveau fichier: doc/html/tab_a.png
 	nouveau fichier: doc/html/tab_b.png
 	nouveau fichier: doc/html/tab_h.png
 	nouveau fichier: doc/html/tab_s.png
 	nouveau fichier: doc/html/tabs.css
 	nouveau fichier: doc/latex/Makefile
 	nouveau fichier: doc/latex/annotated.tex
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.eps
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.pdf
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.tex
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.eps
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.pdf
 	nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1_log.eps
 	nouveau fichier: doc/latex/classm_1_1log_1_1_log.pdf
 	nouveau fichier: doc/latex/classm_1_1log_1_1_log.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.eps
 	nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.pdf
 	nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1bcolors.tex
 	nouveau fichier: doc/latex/classm_1_1log_1_1lvl.tex
 	nouveau fichier: doc/latex/classm_1_1login_1_1_login.eps
 	nouveau fichier: doc/latex/classm_1_1login_1_1_login.pdf
 	nouveau fichier: doc/latex/classm_1_1login_1_1_login.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_global_vars.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.tex
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.eps
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.pdf
 	nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.tex
 	nouveau fichier: doc/latex/dir_060e062f70a4a7965197b0046a5699c1.tex
 	nouveau fichier: doc/latex/dir_b9f9e361513c934f24957ae0a3633a41.tex
 	nouveau fichier: doc/latex/dir_cc95ad066e2e041bbee057a78f4a0df2.tex
 	nouveau fichier: doc/latex/doxygen.sty
 	nouveau fichier: doc/latex/hierarchy.tex
 	nouveau fichier: doc/latex/md__r_e_a_d_m_e.tex
 	nouveau fichier: doc/latex/namespaces.tex
 	nouveau fichier: doc/latex/namespacesuper_tornado.tex
 	nouveau fichier: doc/latex/refman.tex
 	nouveau fichier: doc/link lol.gif
 	nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_m_.3
 	nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_v_.3
 	nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_v_js_.3
 	nouveau fichier: doc/man/man3/m_loadConf_ConfigError.3
 	nouveau fichier: doc/man/man3/m_loadConf_LoadConf.3
 	nouveau fichier: doc/man/man3/m_log_Log.3
 	nouveau fichier: doc/man/man3/m_log_SingleLevelFilter.3
 	nouveau fichier: doc/man/man3/m_log_bcolors.3
 	nouveau fichier: doc/man/man3/m_log_lvl.3
 	nouveau fichier: doc/man/man3/m_login_Login.3
 	nouveau fichier: doc/man/man3/md__r_e_a_d_m_e.3
 	nouveau fichier: doc/man/man3/superTornado.3
 	nouveau fichier: doc/man/man3/superTornado_BaseHandler.3
 	nouveau fichier: doc/man/man3/superTornado_DisconnectionHandler.3
 	nouveau fichier: doc/man/man3/superTornado_GlobalVars.3
 	nouveau fichier: doc/man/man3/superTornado_MainHandler.3
 	nouveau fichier: doc/man/man3/superTornado_UnauthorizedHandler.3
 	nouveau fichier: doc/man/man3/superTornado_VideoHandler.3
 	nouveau fichier: doc/man/man3/superTornado_WSocketHandler.3
 	renommé:         m/fichier/autorise -> m/fichier/allow
 	supprimé:        m/fichier/log
 	modifié:         m/loadConf.py
 	modifié:         m/log.py
 	modifié:         m/login.py
 	modifié:         superTornado.py
 	modifié:         v/index.html
 	modifié:         v/video.html
This commit is contained in:
sidya82
2014-03-18 11:36:31 +01:00
parent f6d3e0c6df
commit 34d8a7c6b3
258 changed files with 18029 additions and 59 deletions

View File

@@ -1,4 +1,4 @@
"""Seveur Tornado"""
"""Import Tornado Server"""
import tornado.ioloop
import tornado.web
import tornado.httpserver
@@ -6,47 +6,71 @@ import tornado.websocket
import tornado.options
from tornado.ioloop import PeriodicCallback
"""Autre """
"""Other imports """
import sys
import time
import base64
import socket
import os
from urllib import urlopen
import string
import random
"""Nos Fichier"""
"""Import files"""
from m.loadConf import *
from m.login import *
from m.log import *
"""Global"""
config = LoadConf()
blind = False
ipCamera = ""
portCamera = ""
portServ =""
log = Log()
urlCamera=""
urlSocket=""
class GlobalVars :
"""
Global vars for server
"""
config = LoadConf()
blind = False
ipCamera = ""
portCamera = ""
portServ = ""
log = Log()
urlCamera = ""
urlSocket = ""
authorized = 0
unauthorized = 0
class BaseHandler(tornado.web.RequestHandler):
"""
Define BaseHandler for create the basis for session connection
cookie secure based (sign and timestamp )
"""
def get_current_user(self):
return self.get_secure_cookie("user")
class MainHandler(BaseHandler):
"""
Main web page : / in http sever
"""
def get(self):
"""
GET request -> return index.html where user can login
"""
self.render("v/index.html")
def post(self):
"""
POST request -> try to connect user with parameter POST (iden and paswd)
if connection sucessfull
go to the /video page (VideoHandler)
else
go to the /unauthorized page (UnauthorizedHandler)
"""
iden = self.get_argument("id","")
mdp = self.get_argument("mdp","")
paswd = self.get_argument("paswd","")
login = Login()
autorise = login.connexion(iden, mdp)
autorise = login.checkLogin(iden, paswd)
self.set_secure_cookie("user", iden)
if autorise == True:
self.set_secure_cookie("user", iden,1)
@@ -55,18 +79,43 @@ class MainHandler(BaseHandler):
log.printL("->An unauthorized user try to access : " + self.request.remote_ip,lvl.WARNING)
self.redirect("/unauthorized")
class VideoHandler(BaseHandler):
"""
Video web page : /video in http sever
"""
def get(self):
"""
GET request ->
If user is connected return video.html who
allow with websocket (WSocketHandler) to see the video of the camera
Else
go to main page (MainHandler)
"""
if not self.current_user :
self.redirect("/")
return
self.render("v/video.html", url=urlSocket)
self.render("v/video.html", url=GlobalVars.urlSocket)
class UnauthorizedHandler(BaseHandler):
"""
Unauthorized web page : /unauthorized in http server
"""
def get(self):
"""
GET request -> show the illegal.html page
"""
self.render("v/illegal.html")
def post(self):
"""
POST request ->
if parameter POST force == 1
force acess to camera
else
go to / page (MainHandler)
"""
force = self.get_argument("illegalAccess","")
if force == "1" :
self.set_secure_cookie("user", "IllegalUser",1)
@@ -76,12 +125,30 @@ class UnauthorizedHandler(BaseHandler):
class DisconnectionHandler(BaseHandler):
def post(self):
"""
/disconnection in http server
"""
def get(self):
"""
GET request -> clear session : disconnect user
"""
self.clear_cookie("user")
self.redirect("/")
class WSocketHandler(BaseHandler,tornado.websocket.WebSocketHandler):
"""
/socket in http server
websocket definition
"""
def open(self) :
"""
Open socket request ->
if is a connect user
open connection socket, alert the unhabitant with the good signal
else
don't open connection
"""
if not self.current_user :
self.close()
return
@@ -90,41 +157,60 @@ class WSocketHandler(BaseHandler,tornado.websocket.WebSocketHandler):
if iden != "IllegalUser":
log.printL("->"+iden + " : Authorized user connection : "+self.request.remote_ip,lvl.INFO)
if blind == True:
authorized + 1
log.printL('->Send audio alarm authorized user',lvl.INFO)
self.send_signal_house('maison.request("GET", "micom/say.php?source=toto&text=Connection%20a%20la%20camera%20autorisee")')
else:
authorized + 1
log.printL('->Send visual alarm authorized user',lvl.INFO)
self.send_signal_house('maison.request("GET", "micom/lamp.php?room=salon1&order=1")')
else :
log.printL("->"+iden + ": Unauthorized user connection : " + self.request.remote_ip,lvl.WARNING)
if blind == True:
unauthorized + 1
log.printL('->Send audio alarm unauthorized user',lvl.WARNING)
self.send_signal_house('maison.request("GET", "micom/say.php?source=toto&text=Connection%20a%20la%20camera%20non%20autorisee")')
else:
unauthorized + 1
log.printL('->Send visual alarm unauthorized user',lvl.WARNING)
self.send_signal_house('maison.request("GET", "micom/lamp.php?room=salon1&order=1")')
self.send_image()
def on_message(self,mesg):
"""
Client Ask For Image
"""
log.printL("->Demand Data Receive : " + self.request.remote_ip,lvl.INFO)
self.send_image()
def on_close(self):
"""
Socket connection Connection->
Alert unhabitant with the good signal
"""
log.printL("->Websocket Closed : "+self.request.remote_ip,lvl.SUCCESS)
iden = self.current_user
if iden != "IllegalUser":
authorized - 1
log.printL("->"+iden+" : Authorized User Deconnection : "+self.request.remote_ip,lvl.INFO)
else :
unauthorized - 1
log.printL("->"+iden +" : Unauthorized User Deconnection : "+self.request.remote_ip,lvl.WARNING)
if blind == True:
log.printL('->Send Audio Alarm Deconnection User', lvl.INFO)
self.send_signal_house('maison.request("GET", "micom/say.php?source=toto&text=Connection%20a%20la%20camera%20rompue")')
if (unauthorized == 0) and (authorized == 0):
log.printL('->Send Audio Alarm Deconnection User', lvl.INFO)
self.send_signal_house('maison.request("GET", "micom/say.php?source=toto&text=Connection%20a%20la%20camera%20rompue")')
else:
log.printL('->Send Visual Alarm Deconnection User ...',lvl.INFO)
self.send_signal_house('maison.request("GET", "micom/lamp.php?room=salon1&order=0")')
if (unauthorized == 0) and (authorized == 0):
log.printL('->Send Visual Alarm Deconnection User ...',lvl.INFO)
self.send_signal_house('maison.request("GET", "micom/lamp.php?room=salon1&order=0")')
def send_signal_house(self, pRq) :
"""
Allow send pRq request to the house
"""
log.printL('maison = httplib.HTTPConnection("192.168.16.150", 80)',lvl.DEBUG)
try :
log.printL('maison.request("GET",'+pRq,lvl.DEBUG)
@@ -134,6 +220,9 @@ class WSocketHandler(BaseHandler,tornado.websocket.WebSocketHandler):
log.printL("->Signal To House Send Failed", lvl.FAIL)
def send_image(self) :
"""
Allow send the image in the websocket
"""
try :
socket.setdefaulttimeout(5)
f = urlopen(urlCamera)
@@ -145,6 +234,7 @@ class WSocketHandler(BaseHandler,tornado.websocket.WebSocketHandler):
log.printL(e,lvl.FAIL)
self.write_message("error")
application = tornado.web.Application([
(r"/", MainHandler),
(r"/video", VideoHandler),
@@ -155,16 +245,16 @@ application = tornado.web.Application([
(r"/style/(.*)", tornado.web.StaticFileHandler,{"path":"./v/style"},),
(r"/images/(.*)", tornado.web.StaticFileHandler,{"path":"./v/images"},),
(r"/js/(.*)", tornado.web.StaticFileHandler,{"path":"./v/js"},)],
cookie_secret="1213215656")
cookie_secret=''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(64)))
if __name__ == "__main__":
log.printL("->Loading configuration ... ",lvl.INFO)
try :
blind = config.isBlind()
ipCamera = config.ipCamera()
portCamera = config.portCamera()
ipServ = config.ipServ()
portServ = config.portServ()
GlobalVars.blind = config.isBlind()
GlobalVars.ipCamera = config.ipCamera()
GlobalVars.portCamera = config.portCamera()
GlobalVars.ipServ = config.ipServ()
GlobalVars.portServ = config.portServ()
if blind == "error" :
raise ConfigError("Failed Load Blind Configuration")
if ipCamera == "error" :
@@ -184,19 +274,19 @@ if __name__ == "__main__":
log.printL(" +Blind unhabitant",lvl.INFO)
else :
log.printL(" +Not blind unhabitant",lvl.INFO)
log.printL(" +Ip Camera : " + ipCamera,lvl.INFO)
log.printL(" +Port Camera : " + portCamera,lvl.INFO)
log.printL(" +Ip Server : " + ipServ,lvl.INFO)
log.printL(" +Port Server : " + portServ,lvl.INFO)
log.printL(" +Ip Camera : " + GlobalVars.ipCamera,lvl.INFO)
log.printL(" +Port Camera : " + GlobalVars.portCamera,lvl.INFO)
log.printL(" +Ip Server : " + GlobalVars.ipServ,lvl.INFO)
log.printL(" +Port Server : " + GlobalVars.portServ,lvl.INFO)
print ""
urlSocket = 'ws://'+ipServ+':'+portCamera+'/socket'
urlCamera = 'http://test:a@'+ipCamera+':'+portCamera+'/image.jpg?cidx=791836195'
GlobalVars.urlSocket = 'ws://'+GlobalVars.ipServ+':'+GlobalVars.portCamera+'/socket'
GlobalVars.urlCamera = 'http://test:a@'+GlobalVars.ipCamera+':'+GlobalVars.portCamera+'/image.jpg?cidx=791836195'
log.printL("->Ping camera ...",lvl.INFO)
try :
socket.setdefaulttimeout(30)
f = urlopen(urlCamera)
urlopen(GlobalVars.urlCamera)
log.printL( "->Camera OK ", lvl.SUCCESS)
except Exception, e :
log.printL("->WARNING : Camera Unreachable! Check Camera Configuration!",lvl.FAIL)
@@ -206,7 +296,7 @@ if __name__ == "__main__":
log.printL("->Server Start ...",lvl.INFO)
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(portServ)
http_server.listen(GlobalVars.portServ)
log.printL("->Server Start Successfully !",lvl.SUCCESS)
tornado.ioloop.IOLoop.instance().start()
except Exception, e :