Exemple #1
0
 def do_work(self):
     error = None
     try:
         log.msg("Doing scan")
         cache = bluetooth.discover_devices(lookup_names=True)
         log.msg(cache)
         self.scancache = [{
                 'address':x[0], 
                 'name':x[1], 
                 'state': CameraFactory.isConnected(x[0])}
                 for x in cache]
         log.msg(self.scancache)
         remove = []
         print self.waiting
         for request in self.waiting:
             request.setHeader('Content-Type', 'application/json')
             request.setHeader('Cache-Control', 'no-cache')
             request.setHeader('Connection', 'close')
             request.write(json.dumps(self.scancache))
             request.finish()
         if len(self.waiting)==0:
             return server.NOT_DONE_YET
     except Exception, err:
         log.err(err)
         error = err
Exemple #2
0
 def do_work(self):
     error = None
     try:
         log.msg("Doing scan")
         cache = bluetooth.discover_devices(lookup_names=True)
         log.msg(cache)
         self.scancache = [{
             'address': x[0],
             'name': x[1],
             'state': CameraFactory.isConnected(x[0])
         } for x in cache]
         log.msg(self.scancache)
         remove = []
         print self.waiting
         for request in self.waiting:
             request.setHeader('Content-Type', 'application/json')
             request.setHeader('Cache-Control', 'no-cache')
             request.setHeader('Connection', 'close')
             request.write(json.dumps(self.scancache))
             request.finish()
         if len(self.waiting) == 0:
             return server.NOT_DONE_YET
     except Exception, err:
         log.err(err)
         error = err
Exemple #3
0
 def scan(self, request):
     try:
         log.msg("Doing scan")
         cache = bluetooth.discover_devices(lookup_names=True)
         log.msg(cache)
         out = {
             "devices": [{
                 'address': x[0],
                 'name': x[1],
                 'state': CameraFactory.isConnected(x[0])
             } for x in cache]
         }
         log.msg(out)
         return out
     except Exception, err:
         log.err(err)
         return {"error": str(err)}
Exemple #4
0
 def render_POST(self, request):
     try:
         request.setHeader('Content-Type', 'application/json')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         address = request.args["address"][0]
         if CameraFactory.isConnected(address):
             CameraFactory.disconnect(address)
             return json.dumps({"result": "disconnected"})
         else:
             CameraFactory.connect(address)
             return json.dumps({"result": "connecting"})
     except Exception, err:
         request.setHeader('Content-Type', 'text/html')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         request.setResponseCode(500, str(err))
         return "<html><h1>ERROR:</h1>\n<pre>%s</pre></html>" % (traceback.format_exc())
Exemple #5
0
 def render_GET(self, request):
     try:
         request.setHeader('Content-Type', 'application/json')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         if len(request.postpath) > 0 and len(request.postpath[0])>0:
             address=request.postpath[0].replace("_", ":")
             if not CameraFactory.isConnected(address):
                 return json.dumps({"result": "Not Connected"})
             CameraFactory.disconnect(address)
             return json.dumps({"result": "Disconnected"})
         return json.dumps({"result": "No Address"})
     except Exception, err:
         request.setHeader('Content-Type', 'text/html')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         request.setResponseCode(500, str(err))
         return "<html><h1>ERROR:</h1>\n<pre>%s</pre></html>" % (traceback.format_exc())
Exemple #6
0
 def render_GET(self, request):
   address = request.path.split("/",2)[-1].replace("_", ":")
   request.transport.socket.settimeout(5)
   multipart = MultiPartStream(request)
   multipart.process()
   multipart.target = address
   if len(address) == 17:
       ready = CameraFactory.isConnected(address) or CameraFactory.isPending(address)
       if multipart.thumbnail and not ready:
           multipart.sendPart("")
           return
       if not ready:
           method = request.args.get("method", ["RFCOMM",])[-1]
           try:
               CameraFactory.connect(address, 1, method)
           except Exception, err:
               log.msg("Failed while trying to connect")
               log.err(err)
Exemple #7
0
 def render_POST(self, request):
     try:
         request.setHeader('Content-Type', 'application/json')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         address = request.args["address"][0]
         if CameraFactory.isConnected(address):
             CameraFactory.disconnect(address)
             return json.dumps({"result": "disconnected"})
         else:
             CameraFactory.connect(address)
             return json.dumps({"result": "connecting"})
     except Exception, err:
         request.setHeader('Content-Type', 'text/html')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         request.setResponseCode(500, str(err))
         return "<html><h1>ERROR:</h1>\n<pre>%s</pre></html>" % (
             traceback.format_exc())
Exemple #8
0
 def render_GET(self, request):
     try:
         request.setHeader('Content-Type', 'application/json')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         if len(request.postpath) > 0 and len(request.postpath[0]) > 0:
             address = request.postpath[0].replace("_", ":")
             if not CameraFactory.isConnected(address):
                 return json.dumps({"result": "Not Connected"})
             CameraFactory.disconnect(address)
             return json.dumps({"result": "Disconnected"})
         return json.dumps({"result": "No Address"})
     except Exception, err:
         request.setHeader('Content-Type', 'text/html')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         request.setResponseCode(500, str(err))
         return "<html><h1>ERROR:</h1>\n<pre>%s</pre></html>" % (
             traceback.format_exc())
Exemple #9
0
 def scan(self, request):
     try:
         log.msg("Doing scan")
         cache = bluetooth.discover_devices(lookup_names=True)
         log.msg(cache)
         out = {"devices":
                 [{
                   'address':x[0],
                   'name':x[1],
                   'state': CameraFactory.isConnected(x[0])
                 }
                     for x in cache
                 ]
             }
         log.msg(out)
         return out
     except Exception, err:
         log.err(err)
         return {"error": str(err)}
Exemple #10
0
 def render_GET(self, request):
     address = request.path.split("/", 2)[-1].replace("_", ":")
     request.transport.socket.settimeout(5)
     multipart = MultiPartStream(request)
     multipart.process()
     multipart.target = address
     if len(address) == 17:
         ready = CameraFactory.isConnected(
             address) or CameraFactory.isPending(address)
         if multipart.thumbnail and not ready:
             multipart.sendPart("")
             return server.NOT_DONE_YET
         if not ready:
             method = CameraFactory.getCamera(address).get(
                 "transport", "rfcomm")
             method = request.args.get("method", [
                 method,
             ])[-1].upper()
             try:
                 CameraFactory.connect(address, method=method)
             except Exception, err:
                 log.msg("Failed while trying to connect")
                 log.err(err)