AravisProject / aravis

A vision library for genicam based cameras
GNU Lesser General Public License v2.1
865 stars 324 forks source link

PointGrey BFLY-PGE-14S2C-CS packet size adjustement support #425

Open EmmanuelP opened 3 years ago

EmmanuelP commented 3 years ago

arv_gv_device_auto_packet_size doesn't work with this device, while GevSCPSFireTestPacket seems to be supported and to work at least once:

Sources/aravis/build on  wip/packet-size-check [$] took 3s ❯ ./tests/arv-camera-test -d device -j always
Looking for the first available camera
[GvDevice::new] Interface address = 192.168.0.114
[GvDevice::new] Device address = 192.168.0.96
[GvDevice::load_genicam] xml url = 'Local:GRS_GEV_v003.zip;7F1D0040;6C52' at 0x200
[GvDevice::load_genicam] Xml address = 0x7f1d0040 - size = 0x6c52 - GRS_GEV_v003.zip
[GvDevice::load_genicam] Zipped xml data
[GvDevice::new] Packet resend = yes
[GvDevice::new] Write memory = yes
[GvDevice::new] Legacy endianness handling = yes
vendor name           = Point Grey Research
model name            = Blackfly BFLY-PGE-14S2C
device id             = 13125101
image width           = 1296
image height          = 1032
horizontal binning    = 1
vertical binning      = 1
payload               = 1337472 bytes
exposure              = 16650.4 µs
gain                  = 8 dB
[GvDevice::create_stream] Number of stream channels = 1
[GvDevice::auto_packet_size] Try packet size = 1400
[GvDevice::auto_packet_size] Try packet size = 810
[GvDevice::auto_packet_size] Try packet size = 515
[GvDevice::auto_packet_size] Try packet size = 367
[GvDevice::auto_packet_size] Try packet size = 293
[GvDevice::auto_packet_size] Try packet size = 256
[GvDevice::auto_packet_size] Try packet size = 238
[GvDevice::auto_packet_size] Try packet size = 229
[GvDevice::auto_packet_size] Packet size set to 1500 bytes
[GvStream::stream_new] Packet size = 1500 byte(s)
gv n_stream channels  = 1
gv current channel    = 0
gv packet delay       = 3200 ns
gv packet size        = 1500 bytes
 56 frames/s -    74.9 MiB/s - 1 error
^C 60 frames/s -    80.2 MiB/s
Completed buffers = 116
Failures          = 1
Underruns         = 0
EmmanuelP commented 3 years ago

Here, initial check works:

wip/packet-size-check [$] took 3s ❯ ./tests/arv-camera-test -d device
Looking for the first available camera
[GvDevice::new] Interface address = 192.168.0.114
[GvDevice::new] Device address = 192.168.0.96
[GvDevice::load_genicam] xml url = 'Local:GRS_GEV_v003.zip;7F1D0040;6C52' at 0x200
[GvDevice::load_genicam] Xml address = 0x7f1d0040 - size = 0x6c52 - GRS_GEV_v003.zip
[GvDevice::load_genicam] Zipped xml data
[GvDevice::new] Packet resend = yes
[GvDevice::new] Write memory = yes
[GvDevice::new] Legacy endianness handling = yes
vendor name           = Point Grey Research
model name            = Blackfly BFLY-PGE-14S2C
device id             = 13125101
image width           = 1296
image height          = 1032
horizontal binning    = 1
vertical binning      = 1
payload               = 1337472 bytes
exposure              = 16650.4 µs
gain                  = 8 dB
[GvDevice::create_stream] Number of stream channels = 1
[GvDevice::auto_packet_size] Current packet size check successfull (1500 bytes)
[GvStream::stream_new] Packet size = 1500 byte(s)
gv n_stream channels  = 1
gv current channel    = 0
gv packet delay       = 3200 ns
gv packet size        = 1500 bytes
^C 59 frames/s -    78.9 MiB/s
Completed buffers = 59
Failures          = 0
Underruns         = 0
EmmanuelP commented 3 years ago

By inserting a 1 or 2 second sleep between FireTestPacket commands, it seems to work, but not reliably.

When it does not, g_poll times out, with n_events == 0. None of the feature access command return an error.

May be a firmware issue ?

EmmanuelP commented 3 years ago

May be a firmware issue ?

Firmware updated with latest release, the issues persists.

Auto packet size adjustement does not display errors on Flycap Windows, but also does not seem to really adjust anything.