[aravis] Re: JAI Go USB stops acquiring frames

  • From: Chris Johnson <chris@xxxxxxxxxxxxx>
  • To: aravis@xxxxxxxxxxxxx
  • Date: Sat, 31 Mar 2018 18:16:27 +0100

Dear Emmanuel,

-[Could you share your changes, please ?]-
The code I'm using at the moment is a kludge (I just wanted to get it
working before putting the code into the
arv_camera_get/set_frame_rate[_bounds] functions), so probably easiest if I
just give the relevant arv_device commands:

Camera identification:
arv_camera_get_vendor_name returns "JAI Ltd., Japan"
arv_camera_get_model_name returns "GO-5000C-USB"
----------------------------------------------------------------------
Get frame rate in microseconds per frame:
arv_device_get_integer_feature_value (camera->priv->device,
"AcquisitionFrameRateRaw");
----------------------------------------------------------------------
Set frame rate in microseconds per frame:
arv_device_set_string_feature_value (camera->priv->device,
"TriggerSelector", "FrameStart");
arv_device_set_string_feature_value (camera->priv->device, "TriggerMode",
"Off");
arv_device_set_integer_feature_value (camera->priv->device,
"AcquisitionFrameRateRaw", usPerFrame);
I'm not sure whether the first two lines are necessary, but am using them
based on the other examples in arv_camera_set_frame_rate
----------------------------------------------------------------------
Get minimum and maximum bounds on number of microseconds per frame given
current camera settings:
arv_device_get_integer_feature_bounds (camera->priv->device,
"AcquisitionFrameRateRaw", min, max);



-[Could you try to run your software with ARV_DEBUG set to 'sp:3']-
At the end of this email is the debug output with sp:3 around the time of a
failure (triggered in this case by a buffer underrun). I've uploaded
wireshark/usbmon packet captures of the same run to
http://www.maths.manchester.ac.uk/~cjohnson/files/jai_go_packets.txt ;(plain
text headers)
http://www.maths.manchester.ac.uk/~cjohnson/files/jai_go_packets.pcapng
(wireshark format)

Best wishes,
Chris



Asking for 52 bytes
Received 52 bytes
packet_type  = leader
size         = 52
frame id     = 51
payload_type = image
pixel format = video/x-bayer, format=(string)grbg
width        = 128
height       = 128
x_offset     = 1216
y_offset     = 0
Asking for 16384 bytes
Received 16384 bytes
packet_type  = image
Asking for 32 bytes
Received 32 bytes
packet_type  = trailer
size         = 32
frame id     = 51
payload_size = 16384
Asking for 52 bytes
Received 52 bytes
packet_type  = leader
size         = 52
frame id     = 52
payload_type = image
pixel format = video/x-bayer, format=(string)grbg
width        = 128
height       = 128
x_offset     = 1216
y_offset     = 0
Asking for 16384 bytes
Received 16384 bytes
packet_type  = image
Asking for 32 bytes
Received 32 bytes
packet_type  = trailer
size         = 32
frame id     = 52
payload_size = 16384
Asking for 52 bytes
Received 52 bytes
packet_type  = leader
size         = 52
frame id     = 53
payload_type = image
pixel format = video/x-bayer, format=(string)grbg
width        = 128
height       = 128
x_offset     = 1216
y_offset     = 0
Asking for 16384 bytes
Received 16384 bytes
packet_type  = image
Asking for 32 bytes
Received 32 bytes
packet_type  = trailer
size         = 32
frame id     = 53
payload_size = 16384
Asking for 52 bytes
Received 52 bytes
packet_type  = leader
size         = 52
frame id     = 54
payload_type = image
pixel format = video/x-bayer, format=(string)grbg
width        = 128
height       = 128
x_offset     = 1216
y_offset     = 0
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
Asking for 52 bytes
....









On 31 March 2018 at 10:50, Emmanuel Pacaud <emmanuel.pacaud@xxxxxxxxxxxxx>
wrote:

Hi Chris,

Le jeu. 29 mars 2018 à 19:17, Chris Johnson <chris@xxxxxxxxxxxxx> a écrit
:

I'm new to aravis and am using it with a JAI Go-5000C camera over USB.
With some minor changes to arvcamera to accommodate the way that frame
rates are set, this is working well for the most part.


Could you share your changes, please ?

However, I'm getting an intermittent error during a capture, where the
camera sometimes seems to stop acquiring frames, rapidly leading to
arv_stream_timeout_pop_buffer failing by returning NULL.

This always happens if there is a buffer underrun, but also
intermittently at other times during a continuous capture. After it has
occurred, the camera will not acquire frames again until it is unplugged
and plugged in again -- even if the program is restarted.


Probably a USB transfer error that blocks any further action. Could you
try to run your software with ARV_DEBUG set to 'sp:3':

export ARV_DEBUG=sp:3

Thanks.

Cheers,

   Emmanuel.



Other related posts: