Start snapshot recorder.
(camera, freq=1.0, maxrate=None, loglevel=0,
logfile=None, pidfile=None, timer=None, app=None,
**kwargs)
| 84 | |
| 85 | |
| 86 | def evcam(camera, freq=1.0, maxrate=None, loglevel=0, |
| 87 | logfile=None, pidfile=None, timer=None, app=None, |
| 88 | **kwargs): |
| 89 | """Start snapshot recorder.""" |
| 90 | app = app_or_default(app) |
| 91 | |
| 92 | if pidfile: |
| 93 | platforms.create_pidlock(pidfile) |
| 94 | |
| 95 | app.log.setup_logging_subsystem(loglevel, logfile) |
| 96 | |
| 97 | print(f'-> evcam: Taking snapshots with {camera} (every {freq} secs.)') |
| 98 | state = app.events.State() |
| 99 | cam = instantiate(camera, state, app=app, freq=freq, |
| 100 | maxrate=maxrate, timer=timer) |
| 101 | cam.install() |
| 102 | conn = app.connection_for_read() |
| 103 | recv = app.events.Receiver(conn, handlers={'*': state.event}) |
| 104 | try: |
| 105 | try: |
| 106 | recv.capture(limit=None) |
| 107 | except KeyboardInterrupt: |
| 108 | raise SystemExit |
| 109 | finally: |
| 110 | cam.cancel() |
| 111 | conn.close() |