dummy_cam.py 1006 B

1234567891011121314151617181920212223242526
  1. import socket
  2. import argparse
  3. def main():
  4. parser = argparse.ArgumentParser(description="Dummy VISCA PTZ Camera")
  5. parser.add_argument("--ip", type=str, default="127.0.0.1", help="IP to bind to")
  6. parser.add_argument("--port", type=int, default=52381, help="UDP port to bind to")
  7. parser.add_argument("--name", type=str, default="Cam", help="Name for log outputs")
  8. args = parser.parse_args()
  9. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  10. sock.bind((args.ip, args.port))
  11. print(f"[{args.name}] Listening for VISCA UDP packets on {args.ip}:{args.port}...")
  12. try:
  13. while True:
  14. data, addr = sock.recvfrom(1024)
  15. # Format the output as spaced hex for easy reading (e.g., 81 01 06 01 ...)
  16. hex_data = ' '.join(f'{b:02X}' for b in data)
  17. print(f"[{args.name}] Received from {addr}: {hex_data}")
  18. except KeyboardInterrupt:
  19. print(f"\n[{args.name}] Shutting down.")
  20. if __name__ == "__main__":
  21. main()