| 109 | |
| 110 | |
| 111 | def parse_args(): |
| 112 | p = argparse.ArgumentParser(description="Camera Telemetry for Serial Studio") |
| 113 | p.add_argument( |
| 114 | "--camera", |
| 115 | type=int, |
| 116 | default=0, |
| 117 | metavar="INDEX", |
| 118 | help="Camera device index (default: 0)", |
| 119 | ) |
| 120 | p.add_argument( |
| 121 | "--port", |
| 122 | type=int, |
| 123 | default=UDP_PORT, |
| 124 | metavar="PORT", |
| 125 | help="UDP destination port (default: 9000)", |
| 126 | ) |
| 127 | p.add_argument( |
| 128 | "--fps", |
| 129 | type=float, |
| 130 | default=TARGET_FPS, |
| 131 | metavar="FPS", |
| 132 | help="Target frame rate (default: 30)", |
| 133 | ) |
| 134 | p.add_argument( |
| 135 | "--quality", |
| 136 | type=int, |
| 137 | default=JPEG_QUALITY, |
| 138 | metavar="Q", |
| 139 | help="JPEG quality 1-100 (default: 85)", |
| 140 | ) |
| 141 | p.add_argument( |
| 142 | "--no-camera", |
| 143 | action="store_true", |
| 144 | help="Use synthetic test pattern instead of camera", |
| 145 | ) |
| 146 | return p.parse_args() |
| 147 | |
| 148 | |
| 149 | def open_camera(index, fps): |