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
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
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)}
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())
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())
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)
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())
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())
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)}
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)