Been trying out this library and seems to be so promising. The Point
Grey Research / Flea3 FL3-FW-03S1M camera was recognized easily
enough, but when I start to take a picture, it just hangs, I have to
kill it otherwise cannot stop. The examples hung as well. Now I'm
basically trying to write the one-shot example from scratch to know
how things work, with the code at [1]. When I issue a camera.start() I
have an warning message of "libdc1394 warning: iso allocation not
available in this kernel, using channel 0...", then it carries own and
gets stuck in a bit (before returning any picture). Running the trace,
it ends here:
beamprofile.py(17): matrix = cam0.shot()
--- modulename: camera, funcname: shot
camera.py(707): if not self.running:
--- modulename: camera, funcname: running
camera.py(864): self._running_lock.acquire()
camera.py(865): rv = self._running
camera.py(866): self._running_lock.release()
camera.py(867): return rv
camera.py(709): if not self._queue:
camera.py(712): return self._queue.get()
--- modulename: Queue, funcname: get
Queue.py(161): self.not_empty.acquire()
Queue.py(162): try:
Queue.py(163): if not block:
Queue.py(166): elif timeout is None:
Queue.py(167): while not self._qsize():
--- modulename: Queue, funcname: _qsize
Queue.py(201): return len(self.queue)
Queue.py(168): self.not_empty.wait()
--- modulename: threading, funcname: wait
threading.py(236): if not self._is_owned():
--- modulename: threading, funcname: _is_owned
threading.py(229): if self.__lock.acquire(0):
threading.py(233): return True
threading.py(238): waiter = _allocate_lock()
threading.py(239): waiter.acquire()
threading.py(240): self.__waiters.append(waiter)
threading.py(241): saved_state = self._release_save()
--- modulename: threading, funcname: _release_save
threading.py(221): self.__lock.release() # No state
to save
threading.py(242): try: # restore state no matter what
(e.g., KeyboardInterrupt)
threading.py(243): if timeout is None:
threading.py(244): waiter.acquire()
If I don't do .shot(), just .start() and .stop(), it hangs at the same
point, just after somewhat longer trace.
Any ideas what's going on and how to fix it?
Thanks a lot,
Greg
[1] https://github.com/imrehg/labhardware/blob/master/projects/beamprofile/beamprofile.py
In this case the problems were solved by passing on isospeed=800 to
the camera constructor, everything worked like a charm. I guess the
lesson is that other isospeeds are good to check if such camera-
computer communication problem pops up.
Cheers,
Greg
> [1]https://github.com/imrehg/labhardware/blob/master/projects/beamprofil...