23 from http.server import BaseHTTPRequestHandler
30 ctrl = CameraControl()
31 ctrl.setCaptureStill(True)
33 def get_ip_address(ifname):
34 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
35 return socket.inet_ntoa(fcntl.ioctl(
37 -1071617759, # SIOCGIFADDR
38 struct.pack('256s', ifname[:15].encode())
41 class HTTPHandler(BaseHTTPRequestHandler):
44 self.send_response(200)
46 self.wfile.write(b'<h1>[DepthAI] Hello, world!</h1><p>Click <a href="img">here</a> for an image</p>')
47 elif self.path == '/img':
48 node.io['out'].send(ctrl)
49 jpegImage = node.io['jpeg'].get()
50 self.send_response(200)
51 self.send_header('Content-Type', 'image/jpeg')
52 self.send_header('Content-Length', str(len(jpegImage.getData())))
54 self.wfile.write(jpegImage.getData())
56 self.send_response(404)
58 self.wfile.write(b'Url not found...')
60 with socketserver.TCPServer(("", PORT), HTTPHandler) as httpd:
61 node.warn(f"Serving at {get_ip_address('re0')}:{PORT}")
65 cam->still.link(jpeg->input);
66 script->outputs["out"].link(cam->inputControl);
67 jpeg->bitstream.link(script->inputs[
"jpeg"]);
72 this_thread::sleep_for(chrono::milliseconds(1000));