#!/usr/bin/env python3 """Helper command for rtl_433 to visualize a sample file in a web browser.""" from http.server import BaseHTTPRequestHandler, HTTPServer import sys import subprocess import webbrowser hostName = "localhost" serverPort = 8080 def parseToPulseData(filename): ret = subprocess.run(["rtl_433", "-F", "null", "-w", "OOK:-", filename], capture_output=True) return ret.stdout class PulseServer(BaseHTTPRequestHandler): def do_GET(self): global pulsedata self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(bytes(""" I/Q Spectrogram & Pulsedata
""", "utf-8")) if __name__ == "__main__": if len(sys.argv) != 2: print("Usage:\n%s FILENAME.cu8" % (sys.argv[0])) exit(1) filename = sys.argv[1] pulsedata = parseToPulseData(filename) while serverPort < 65536: try: webServer = HTTPServer((hostName, serverPort), PulseServer) break; except OSError as e: if e.errno != 48 or serverPort >= 65535: raise serverPort += 1 # Address already in use print("If the browser doesn't open go to http://%s:%s" % (hostName, serverPort)) try: webbrowser.open("http://%s:%s/" % (hostName, serverPort)) webServer.handle_request() # once except KeyboardInterrupt: pass webServer.server_close() print("done.")