DIAS Camera 0 Hz Framerate

Im trying to get images of a GigE DIAS PyroView 320F Camera. Im getting 0 Hz Framerates.

Running:

arv-camera-test-0.8

I get following output

Looking for the first available camera
No camera found: No supported device found

Running:

arv-tool-0.8 --debug=all

I get following output

[12:28:45.270] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1
[12:28:45.270] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.168.207
[12:28:45.271] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.3.22
[12:28:45.271] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.0.4.15
[12:28:45.271] 🆆 interface> [ArvGVInterface::send_discover_packet] Error: Error sending message: Operation not permitted
[12:28:45.271] 🆆 interface> [ArvGVInterface::send_discover_packet] Error: Error sending message: Operation not permitted
No device found

If i dont give the address then no device is found.

So i run giving name or address as follow

Running:

./arv-device-test --debug=all --name=192.168.254.150

I get following ouput:

Looking for camera ‘192.168.254.150’
[13:02:00.974] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1
[13:02:00.975] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.168.207
[13:02:00.975] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.3.22
[13:02:00.975] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.0.4.15
[13:02:00.976] 🆆 interface> [ArvGVInterface::arv_gv_interface_camera_locate] Error: Error sending message: Invalid argument
[13:02:00.977] 🅸 device> [GvDevice::new] Interface address = 10.0.4.15
[13:02:00.979] 🅸 device> [GvDevice::new] Device address = 192.168.254.150
[13:02:00.980] 🅸 device> [GvDevice::load_genicam] xml url = ‘local:dias_gige_desc.xml;B000;10160’ at 0x200
[13:02:00.981] 🅸 device> [GvDevice::load_genicam] Xml address = 0xb000 - size = 0x10160 - dias_gige_desc.xml
[13:02:01.138] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPHostPort’
[13:02:01.139] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPSDoNotFragment’
[13:02:01.140] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPSBigEndian’
[13:02:01.140] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCDA’
[13:02:01.141] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCSP’
[13:02:01.142] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPAddrCalc’
[13:02:01.145] 🅸 device> [GvDevice::new] Device endianness = big
[13:02:01.145] 🅸 device> [GvDevice::new] Packet resend = no
[13:02:01.145] 🅸 device> [GvDevice::new] Write memory = yes
[13:02:01.145] 🅸 device> [GvDevice::new] Legacy endianness handling = yes
vendor = DIAS Infrared GmbH
model = PyroView
device id = C1112904
sensor width = 320
sensor height = 240
image width = 320 (max:-1)
image height = 240 (max:-1)
[13:02:01.151] 🅸 device> [GvDevice::create_stream] Number of stream channels = 1
[13:02:01.153] 🅸 device> [GvStream::stream_new] Packet size = 676 byte(s)
[13:02:01.156] 🅸 stream> [GvStream::stream_new] Destination stream port = 37975
[13:02:01.156] 🅸 stream> [GvStream::stream_new] Source stream port = 2222
[13:02:01.157] 🅸 stream-thread> [GvStream::stream_thread] Packet timeout = 40 ms
payload size = 153600 (0x25800)
[13:02:01.159] 🅸 stream-thread> stream port = 37975 (37975)
[GvStream::stream_thread] Frame retention = 200 ms
[13:02:01.160] 🅸 stream> [GvStream::loop] Standard socket method
Frame rate = 0 Hz
Frame rate = 0 Hz
^Cstream port = 37975 (37975)
Processed buffers = 0
Failures = 0
Underruns = 0
[13:02:03.972] 🅸 stream> bins ;Buffer r
0; 0
-------------
>= 2000; 0
< 0; 0
min ; n/a
max ; n/a
last max
at: ; 0
Counter = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_completed_buffers = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_failures = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_timeouts = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_aborteds = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_underruns = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_missing_frames = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_size_mismatch_errors = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_received_packets = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_missing_packets = 0
[13:02:03.972] 🅸 stream> [GvStream::finalize] n_error_packets = 0
[13:02:03.973] 🅸 stream> [GvStream::finalize] n_ignored_packets = 0
[13:02:03.973] 🅸 stream> [GvStream::finalize] n_resend_requests = 0
[13:02:03.973] 🅸 stream> [GvStream::finalize] n_resent_packets = 0
[13:02:03.973] 🅸 stream> [GvStream::finalize] n_resend_ratio_reached = 0
[13:02:03.973] 🅸 stream> [GvStream::finalize] n_duplicated_packets = 0
[13:02:03.973] 🅸 stream> [Stream::finalize] Flush 30 buffer[s] in input queue
[13:02:03.973] 🅸 stream> [Stream::finalize] Flush 0 buffer[s] in output queue

Running:

arv-tool-0.8 --debug=all --name=192.168.254.150

I get following output:

[13:16:50.353] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1
[13:16:50.354] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.168.207
[13:16:50.354] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.3.22
[13:16:50.354] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.0.4.15
[13:16:50.355] 🆆 interface> [ArvGVInterface::arv_gv_interface_camera_locate] Error: Error sending message: Invalid argument
[13:16:50.356] 🅸 device> [GvDevice::new] Interface address = 10.0.4.15
[13:16:50.356] 🅸 device> [GvDevice::new] Device address = 192.168.254.150
[13:16:50.357] 🅸 device> [GvDevice::load_genicam] xml url = ‘local:dias_gige_desc.xml;B000;10160’ at 0x200
[13:16:50.357] 🅸 device> [GvDevice::load_genicam] Xml address = 0xb000 - size = 0x10160 - dias_gige_desc.xml
[13:16:50.479] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPHostPort’
[13:16:50.480] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPSDoNotFragment’
[13:16:50.480] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPSBigEndian’
[13:16:50.481] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCDA’
[13:16:50.481] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCSP’
[13:16:50.481] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPAddrCalc’
[13:16:50.484] 🅸 device> [GvDevice::new] Device endianness = big
[13:16:50.484] 🅸 device> [GvDevice::new] Packet resend = no
[13:16:50.484] 🅸 device> [GvDevice::new] Write memory = yes
[13:16:50.484] 🅸 device> [GvDevice::new] Legacy endianness handling = yes
192.168.254.150

Running:

arv-tool-0.8 -n 192.168.254.150 values

I get following output:

Category : ‘Root’
Category : ‘DeviceControl’
StringReg : ‘DeviceVendorName’ = ‘DIAS Infrared GmbH’
StringReg : ‘DeviceModelName’ = ‘PyroView’
StringReg : ‘DeviceManufacturerInfo’ = ‘PYROINC 320F/50HZ/43�X33�’
StringReg : ‘DeviceID’ = ‘C1112904’
StringReg : ‘DeviceVersion’ = ‘1.0’
Integer : ‘DeviceStreamChannelCount’ = 1
Category : ‘ImageFormatControl’
Integer : ‘Width’ = 320
Integer : ‘Height’ = 240
Integer : ‘SensorWidth’ = 320
Integer : ‘SensorHeight’ = 240
Enumeration : ‘PixelFormat’ = ‘Mono16’
Category : ‘AcquisitionControl’
Enumeration : ‘AcquisitionMode’ = ‘Continuous’
Command : ‘AcquisitionStart’
Command : ‘AcquisitionStop’
Enumeration : ‘AcquisitionAveraging’ = ‘AVG_2’
Enumeration : ‘MeasurementRange’ = ‘MB1’
* TemperatureReg
Float : ‘CameraTemperature’ = 33.1156
Float : ‘SensorTemperature’ = 29.85
Command : ‘ZoomFar’
Command : ‘ZoomNear’
Category : ‘Trigger’
Enumeration : ‘Input_Mux_0’ = ‘TriggerSGL’
Enumeration : ‘Input_Mux_1’ = ‘TriggerSEQ’
Enumeration : ‘Output_Mux_0’ = ‘Error’
Enumeration : ‘Output_Mux_1’ = ‘IN1OUT1’
Boolean : ‘Input_Channel_0’ = false
Boolean : ‘Input_Channel_1’ = false
Boolean : ‘Output_Channel_0’ = false
Boolean : ‘Output_Channel_1’ = false
Enumeration : ‘SGL_Trigger_Mode’ = ‘TriggerDisabled’
Enumeration : ‘SEQ_Trigger_Mode’ = ‘TriggerDisabled’
Boolean : ‘SGL_Trigger’ = true
Boolean : ‘SEQ_Trigger’ = true
Category : ‘Shutter’
Command : ‘ShutterNow’
Integer : ‘ShutterDisableTime’ = 0
Integer : ‘ShutterDisable’ = 0
Category : ‘TransportLayerControl’
Integer : ‘PayloadSize’ = 153600
Integer : ‘GevVersionMajor’ = 1
Integer : ‘GevVersionMinor’ = 2
Boolean : ‘GevDeviceModeIsBigEndian’ = true
Enumeration : ‘GevDeviceModeCharacterSet’ = ‘UTF8’
Integer : ‘GevInterfaceSelector’ = 0
* GevMACAddress
* GevSupportedIPConfigurationLLA
* GevSupportedIPConfigurationDHCP
* GevSupportedIPConfigurationPersistentIP
* GevCurrentIPConfiguration
* GevCurrentIPAddress
* GevCurrentSubnetMask
* GevCurrentDefaultGateway
* GevPersistentIPAddress
* GevPersistentSubnetMask
* GevPersistentDefaultGateway
Integer : ‘GevMACAddress’ = 346858390633
Boolean : ‘GevSupportedIPConfigurationLLA’ = true
Boolean : ‘GevSupportedIPConfigurationDHCP’ = true
Boolean : ‘GevSupportedIPConfigurationPersistentIP’ = true
Enumeration : ‘GevCurrentIPConfiguration’ = ‘DHCP’
Integer : ‘GevCurrentIPAddress’ = 3232300694
Integer : ‘GevCurrentSubnetMask’ = 4294967040
Integer : ‘GevCurrentDefaultGateway’ = 0
Integer : ‘GevPersistentIPAddress’ = 3232300694
Integer : ‘GevPersistentSubnetMask’ = 4294967040
Integer : ‘GevPersistentDefaultGateway’ = 0
StringReg : ‘GevFirstURL’ = ‘local:dias_gige_desc.xml;B000;10160’
StringReg : ‘GevSecondURL’ = ‘file:dias_gige_desc.xml’
Integer : ‘GevNumberOfInterfaces’ = 1
Integer : ‘GevMessageChannelCount’ = 0
Integer : ‘GevStreamChannelCount’ = 1
Boolean : ‘GevSupportedOptionalCommandsUserDefinedName’ = false
Boolean : ‘GevSupportedOptionalCommandsSerialNumber’ = true
Boolean : ‘GevSupportedOptionalCommandsEVENTDATA’ = false
Boolean : ‘GevSupportedOptionalCommandsEVENT’ = false
Boolean : ‘GevSupportedOptionalCommandsPACKETRESEND’ = false
Boolean : ‘GevSupportedOptionalCommandsWRITEMEM’ = true
Boolean : ‘GevSupportedOptionalCommandsConcatenation’ = true
Integer : ‘GevHeartbeatTimeout’ = 3000
Integer : ‘GevStreamChannelSelector’ = 0
* GevSCPInterfaceIndex
* GevSCPSPacketSize
* GevSCPD
Integer : ‘GevSCPInterfaceIndex’ = 0
Integer : ‘GevSCPSPacketSize’ = 676
Integer : ‘GevSCPD’ = 0

Im running aravis 0.8.10 on a Ubuntu machine.

I give all of this information since i have been reading all topics and i saw that this this information was many times asked for. I have been trying with many of the examples given in the documentation and also reading, like i already mentioned, all topics to see what could be the reason. The firewall/iptables are open as well.

The problem is always the 0 Hz Framerates. Any thoughts what could be wrong? Is there a pre-configuration that has to me made? Using the Software provided with the Camera from DIAS, im able to get the images, so the camera is working properly.

Thanks in advance

Hi,

I don’t understand theses errors. Could you share your network configuration ? Which version of ubuntu are you using ? Which plaftorm ? Have you some custom network configuration ?

These errors could be related to the fact Aravis does not receive any stream packets.

What is the output of ./arv-device-test --debug=all:3 --name=192.168.254.150 ?

Hi Emmanuel,

The output from

./arv-device-test --debug=all:3 --name=192.168.254.150

is 11.000 lines long.

Is there a way to upload a log file? When i try to upload it shows that only format for images are authorized…

Here is the output without the thousands of lines containing only hex values and “dom>”:

1 Looking for camera ‘192.168.254.150’
2 [12:28:07.593] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1
3 [12:28:07.593] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.168.207
4 [12:28:07.593] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.3.22
5 [12:28:07.593] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.0.4.15
6 [12:28:07.594] 🆆 interface> [ArvGVInterface::arv_gv_interface_camera_locate] Error: Error sending message: Invalid argument
7 [12:28:07.596] 🅸 device> [GvDevice::new] Interface address = 10.0.4.15
8 [12:28:07.596] 🅸 device> [GvDevice::new] Device address = 192.168.254.150
9 [12:28:07.597] 🅸 device> [GvDevice::load_genicam] xml url = ‘local:dias_gige_desc.xml;B000;10160’ at 0x200
10 [12:28:07.597] 🅸 device> [GvDevice::load_genicam] Xml address = 0xb000 - size = 0x10160 - dias_gige_desc.xml
11 [12:28:07.731] 🅳 misc> [GvDevice::load_genicam] Raw data size = 0x10160
12 00000000 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 <?xml version="1 13 00000010 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 .0" encoding="ut 14 00000020 66 2d 38 22 3f 3e 0d 0a 3c 3f 78 6d 6c 2d 73 74 f-8"?>…<?xml-st
15 00000030 79 6c 65 73 68 65 65 74 20 74 79 70 65 3d 22 74 ylesheet type="t


only hex numbers


4127 00010130 3e 0d 0a 09 3c 2f 49 6e 74 53 77 69 73 73 4b 6e >…</IntSwissKn
4128 00010140 69 66 65 3e 09 09 0d 0a 0d 0a 3c 2f 52 65 67 69 ife>…</Regi
4129 00010150 73 74 65 72 44 65 73 63 72 69 70 74 69 6f 6e 3e sterDescription>
4130
4131 [12:28:08.055] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’
4132
4133 ’
4134 [12:28:08.055] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘RegisterDescription’
4135 [12:28:08.055] 🅳 genicam> [Gc::register_feature_node] Register node ‘Root’ [Category]
4136 [12:28:08.055] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’
4137 ’
4138 [12:28:08.055] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘Category’
4139 [12:28:08.055] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘DeviceControl’
4140 [12:28:08.055] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’
4141 ’
4142 [12:28:08.055] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘Category’
4143 [12:28:08.055] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘ImageFormatControl’
4144 [12:28:08.055] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’
4145 ’


only “dom>” and sometimes “genicam>”


10944 [12:28:09.610] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘MaskedIntReg’
10945 [12:28:09.610] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘Unsigned’
10946 [12:28:09.610] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10947 [12:28:09.610] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘MaskedIntReg’
10948 [12:28:09.610] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘BigEndian’
10949 [12:28:09.610] 🅸 genicam> [Gc::set_default_node_data] Add ‘GevSCPAddrCalc’
10950 [12:28:09.610] 🅳 evaluator> [Evaluator::set_double_variable] PI = 3.14159
10951 [12:28:09.610] 🅳 evaluator> [Evaluator::set_double_variable] E = 2.71828
10952 [12:28:09.610] 🅳 genicam> [Gc::register_feature_node] Register node ‘GevSCPAddrCalc’ [IntSwissKnife]
10953 [12:28:09.610] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10954 [12:28:09.610] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘IntSwissKnife’
10955 [12:28:09.610] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘ArvGevStreamChannelSelector’
10956 [12:28:09.610] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10957 [12:28:09.610] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘IntSwissKnife’
10958 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘SEL * 0x40’
10959 [12:28:09.611] 🅳 genicam> [Gc::register_feature_node] Register node ‘ArvGevStreamChannelSelector’ [Integer]
10960 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10961 [12:28:09.611] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘Integer’
10962 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘0’
10963 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10964 [12:28:09.611] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘Integer’
10965 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘0’
10966 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10967 [12:28:09.611] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘Integer’
10968 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘ArvGevStreamChannelSelectorMax’
10969 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10970 [12:28:09.611] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘Integer’
10971 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘1’
10972 [12:28:09.611] 🅳 evaluator> [Evaluator::set_double_variable] PI = 3.14159
10973 [12:28:09.611] 🅳 evaluator> [Evaluator::set_double_variable] E = 2.71828
10974 [12:28:09.611] 🅳 genicam> [Gc::register_feature_node] Register node ‘ArvGevStreamChannelSelectorMax’ [IntSwissKnife]
10975 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10976 [12:28:09.611] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘IntSwissKnife’
10977 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘NumberOfStreamChannels’
10978 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ’ ’
10979 [12:28:09.611] 🅳 dom> [ArvDomNode::append_child] Can’t append ‘#text’ to ‘IntSwissKnife’
10980 [12:28:09.611] 🅳 dom> [ArvDomCharacterData::set_data] Value = ‘N_STREAM_CHANNELS - 1’
10981 [12:28:09.613] 🅸 device> [GvDevice::new] Device endianness = big
10982 [12:28:09.613] 🅸 device> [GvDevice::new] Packet resend = no
10983 [12:28:09.613] 🅸 device> [GvDevice::new] Write memory = yes
10984 [12:28:09.613] 🅸 device> [GvDevice::new] Legacy endianness handling = yes
10985 [12:28:09.614] 🅳 genicam> [GcRegisterNode::get] 0x48,32
10986 vendor = DIAS Infrared GmbH
10987 [12:28:09.615] 🅳 genicam> [GcRegisterNode::get] 0x68,32
10988 model = PyroView
10989 [12:28:09.616] 🅳 genicam> [GcRegisterNode::get] 0xd8,16
10990 device id = C1112904
10991 [12:28:09.617] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xa004, value = 0x140
10992 sensor width = 320
10993 [12:28:09.618] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xa008, value = 0xf0
10994 sensor height = 240
10995 [12:28:09.619] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xa004, value = 0x140
10996 image width = 320 (max:-1)
10997 [12:28:09.619] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xa008, value = 0xf0
10998 image height = 240 (max:-1)
10999 [12:28:09.620] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0x904, value = 0x1
11000 [12:28:09.620] 🅸 device> [GvDevice::create_stream] Number of stream channels = 1
11001 [12:28:09.621] 🅳 genicam> [GcRegisterNode::_get_integer_value] reglsb = 31, regmsb, 16, lsb = 0, msb = 15
11002 [12:28:09.621] 🅳 genicam> [GcRegisterNode::_get_integer_value] value = 0x400002a4
11003 [12:28:09.621] 🅳 genicam> [GcRegisterNode::_get_integer_value] mask = 0x0000ffff
11004 [12:28:09.622] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xd04, value = 0x2a4
11005 [12:28:09.622] 🅳 genicam> [GcRegisterNode::_get_integer_value] reglsb = 31, regmsb, 16, lsb = 0, msb = 15
11006 [12:28:09.622] 🅳 genicam> [GcRegisterNode::_get_integer_value] value = 0x400002a4
11007 [12:28:09.622] 🅳 genicam> [GcRegisterNode::_get_integer_value] mask = 0x0000ffff
11008 [12:28:09.622] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xd04, value = 0x2a4
11009 [12:28:09.622] 🅸 device> [GvStream::stream_new] Packet size = 676 byte(s)
11010 [12:28:09.622] 🅳 evaluator> [Evaluator::set_int64_variable] SEL = 0
11011 [12:28:09.622] 🅳 evaluator> [Evaluator::evaluate_as_int64] Expression = ‘SEL * 0x40’
11012 [12:28:09.622] 🅳 evaluator> [Evaluator::parse_expression] SEL * 0x40
11013 [12:28:09.622] 🅳 evaluator> [Evaluator::parse_expression] Found 3 items in expression
11014 [12:28:09.622] 🅳 evaluator> [Evaluator::parse_expression] 0 items in garbage list
11015 [12:28:09.622] 🅳 evaluator> [Evaluator::parse_expression] 3 items in token list
11016 [12:28:09.622] 🅳 evaluator> [Evaluator::evaluate_as_int64] Parsing status = 0
11017 [12:28:09.622] 🅳 evaluator> (var) SEL = 0
11018 [12:28:09.622] 🅳 evaluator> (int64) 64
11019 [12:28:09.622] 🅳 evaluator> (operator) *
11020 [12:28:09.623] 🅳 evaluator> [Evaluator::evaluate] Result = (int64) 0
11021 [12:28:09.623] 🅳 evaluator> [Evaluator::evaluate_as_int64] Expression = ‘SEL * 0x40’
11022 [12:28:09.623] 🅳 evaluator> (var) SEL = 0
11023 [12:28:09.623] 🅳 evaluator> (int64) 64
11024 [12:28:09.623] 🅳 evaluator> (operator) *
11025 [12:28:09.623] 🅳 evaluator> [Evaluator::evaluate] Result = (int64) 0
11026 [12:28:09.623] 🅳 genicam> [GcRegisterNode::_set_integer_value] address = 0xd18, value = 0xa00040f
11027 [12:28:09.623] 🅳 evaluator> [Evaluator::evaluate_as_int64] Expression = ‘SEL * 0x40’
11028 [12:28:09.623] 🅳 evaluator> (var) SEL = 0
11029 [12:28:09.623] 🅳 evaluator> (int64) 64
11030 [12:28:09.623] 🅳 evaluator> (operator) *
11031 [12:28:09.623] 🅳 evaluator> [Evaluator::evaluate] Result = (int64) 0
11032 [12:28:09.624] 🅳 genicam> [GcRegisterNode::_set_integer_value] reglsb = 31, regmsb, 16, lsb = 0, msb = 15
11033 [12:28:09.624] 🅳 genicam> [GcRegisterNode::_set_integer_value] value = 0x0000864e
11034 [12:28:09.624] 🅳 genicam> [GcRegisterNode::_set_integer_value] mask = 0x0000ffff
11035 [12:28:09.624] 🅳 evaluator> [Evaluator::evaluate_as_int64] Expression = ‘SEL * 0x40’
11036 [12:28:09.624] 🅳 evaluator> (var) SEL = 0
11037 [12:28:09.624] 🅳 evaluator> (int64) 64
11038 [12:28:09.624] 🅳 evaluator> (operator) *
11039 [12:28:09.624] 🅳 evaluator> [Evaluator::evaluate] Result = (int64) 0
11040 [12:28:09.624] 🅳 genicam> [GcRegisterNode::_set_integer_value] address = 0xd00, value = 0x864e
11041 [12:28:09.625] 🅳 evaluator> [Evaluator::evaluate_as_int64] Expression = ‘SEL * 0x40’
11042 [12:28:09.625] 🅳 evaluator> (var) SEL = 0
11043 [12:28:09.625] 🅳 evaluator> (int64) 64
11044 [12:28:09.625] 🅳 evaluator> (operator) *
11045 [12:28:09.625] 🅳 evaluator> [Evaluator::evaluate] Result = (int64) 0
11046 [12:28:09.626] 🅳 genicam> [GcRegisterNode::_get_integer_value] reglsb = 31, regmsb, 16, lsb = 0, msb = 15
11047 [12:28:09.626] 🅳 genicam> [GcRegisterNode::_get_integer_value] value = 0x000008ae
11048 [12:28:09.626] 🅳 genicam> [GcRegisterNode::_get_integer_value] mask = 0x0000ffff
11049 [12:28:09.626] 🅳 evaluator> [Evaluator::evaluate_as_int64] Expression = ‘SEL * 0x40’
11050 [12:28:09.626] 🅳 evaluator> (var) SEL = 0
11051 [12:28:09.626] 🅳 evaluator> (int64) 64
11052 [12:28:09.626] 🅳 evaluator> (operator) *
11053 [12:28:09.626] 🅳 evaluator> [Evaluator::evaluate] Result = (int64) 0
11054 [12:28:09.626] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xd1c, value = 0x8ae
11055 [12:28:09.626] 🅸 stream> [GvStream::stream_new] Destination stream port = 34382
11056 [12:28:09.626] 🅸 stream> [GvStream::stream_new] Source stream port = 2222
11057 [12:28:09.626] 🅸 stream-thread> [GvStream::stream_thread] Packet timeout = 40 ms
11058 [12:28:09.626] 🅸 stream-thread> [GvStream::stream_thread] Frame retention = 200 ms
11059 [12:28:09.626] 🅸 stream> [GvStream::loop] Standard socket method
11060 [12:28:09.627] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xa004, value = 0x140
11061 [12:28:09.627] 🅳 evaluator> [Evaluator::set_int64_variable] WIDTH = 320
11062 [12:28:09.627] 🅳 genicam> [GcRegisterNode::_get_integer_value] address = 0xa008, value = 0xf0
11063 [12:28:09.627] 🅳 evaluator> [Evaluator::set_int64_variable] HEIGHT = 240
11064 [12:28:09.627] 🅳 evaluator> [Evaluator::evaluate_as_int64] Expression = ‘WIDTH * HEIGHT * 2’
11065 [12:28:09.627] 🅳 evaluator> [Evaluator::parse_expression] WIDTH * HEIGHT * 2
11066 [12:28:09.627] 🅳 evaluator> [Evaluator::parse_expression] Found 5 items in expression
11067 [12:28:09.627] 🅳 evaluator> [Evaluator::parse_expression] 0 items in garbage list
11068 [12:28:09.627] 🅳 evaluator> [Evaluator::parse_expression] 5 items in token list
11069 [12:28:09.627] 🅳 evaluator> [Evaluator::evaluate_as_int64] Parsing status = 0
11070 [12:28:09.627] 🅳 evaluator> (var) WIDTH = 320
11071 [12:28:09.627] 🅳 evaluator> (var) HEIGHT = 240
11072 [12:28:09.628] 🅳 evaluator> (operator) *
11073 [12:28:09.628] 🅳 evaluator> (int64) 2
11074 [12:28:09.628] 🅳 evaluator> (operator) *
11075 [12:28:09.628] 🅳 evaluator> [Evaluator::evaluate] Result = (int64) 153600
11076 payload size = 153600 (0x25800)
11077 stream port = 34382 (34382)
11078 [12:28:09.631] 🅳 genicam> [GcRegisterNode::_set_integer_value] address = 0xa000, value = 0x1
11079 [12:28:09.631] 🅳 genicam> [GcCommand::execute] AcquisitionStart (0x1)
11080 [12:28:18.501] 🅳 device> [GvDevice::Heartbeat] Ack value = 2
11081 Frame rate = 0 Hz
11082 [12:28:19.503] 🅳 device> [GvDevice::Heartbeat] Ack value = 2
11083 Frame rate = 0 Hz
11084 [12:28:20.505] 🅳 device> [GvDevice::Heartbeat] Ack value = 2
11085 Frame rate = 0 Hz
11086 Processed buffers = 0
11087 Failures = 0
11088 Underruns = 0
11089 [12:28:20.948] 🅳 genicam> [GcRegisterNode::_set_integer_value] address = 0xa000, value = 0x0
11090 [12:28:20.949] 🅳 genicam> [GcCommand::execute] AcquisitionStop (0x0)
11091 [12:28:20.949] 🅸 stream> bins ;Buffer r
11092 0; 0
11093 -------------
11094 >= 2000; 0
11095 < 0; 0
11096 min ; n/a
11097 max ; n/a
11098 last max
11099 at: ; 0
11100 Counter = 0
11101 [12:28:20.949] 🅸 stream> [GvStream::finalize] n_completed_buffers = 0
11102 [12:28:20.949] 🅸 stream> [GvStream::finalize] n_failures = 0
11103 [12:28:20.949] 🅸 stream> [GvStream::finalize] n_timeouts = 0
11104 [12:28:20.949] 🅸 stream> [GvStream::finalize] n_aborteds = 0
11105 [12:28:20.949] 🅸 stream> [GvStream::finalize] n_underruns = 0
11106 [12:28:20.949] 🅸 stream> [GvStream::finalize] n_missing_frames = 0
11107 [12:28:20.949] 🅸 stream> [GvStream::finalize] n_size_mismatch_errors = 0
11108 [12:28:20.950] 🅸 stream> [GvStream::finalize] n_received_packets = 0
11109 [12:28:20.950] 🅸 stream> [GvStream::finalize] n_missing_packets = 0
11110 [12:28:20.950] 🅸 stream> [GvStream::finalize] n_error_packets = 0
11111 [12:28:20.950] �� stream> [GvStream::finalize] n_ignored_packets = 0
11112 [12:28:20.950] 🅸 stream> [GvStream::finalize] n_resend_requests = 0
11113 [12:28:20.950] 🅸 stream> [GvStream::finalize] n_resent_packets = 0
11114 [12:28:20.950] 🅸 stream> [GvStream::finalize] n_resend_ratio_reached = 0
11115 [12:28:20.950] 🅸 stream> [GvStream::finalize] n_duplicated_packets = 0
11116 [12:28:20.950] 🅸 stream> [Stream::finalize] Flush 30 buffer[s] in input queue
11117 [12:28:20.950] 🅸 stream> [Stream::finalize] Flush 0 buffer[s] in output queue

Ignore the time difference of aprox 10s when “Ack value = 2, FrameRate = 0Hz” starts.
For some reason the last part of the output is not saved in the log file. So i had to run the same command a second time and copy and append it manually from the console to the end of the log file…

The distribution is Linux Mint, sorry for the confusion about Ubuntu.
Here is the information about the remote linux machine where im trying to use Aravis:

Virtualization : oracle
Operating System : Linux Mint 20.
Kernel : Linux 5.8.0-50-generic
Architecture : x86-64

While debugging i have notice in “arvdevicetest.c” (lines 186 - 234) :

	stream = arv_device_create_stream (device, NULL, NULL, NULL);
	if (arv_option_auto_buffer)
		g_object_set (stream,
			      "socket-buffer", ARV_GV_STREAM_SOCKET_BUFFER_AUTO,
			      "socket-buffer-size", 0,
			      NULL);

	node = arv_gc_get_node (genicam, "PayloadSize");
	value = arv_gc_integer_get_value (ARV_GC_INTEGER (node), NULL);
	g_print ("payload size  = %d (0x%x)\n", value, value);

	for (i = 0; i < 30; i++)
		arv_stream_push_buffer (stream, arv_buffer_new (value, NULL));

	if (ARV_IS_GV_DEVICE (device)) {
		arv_device_read_register (device, ARV_GVBS_STREAM_CHANNEL_0_PORT_OFFSET, &value, NULL);
		g_print ("stream port = %d (%d)\n", value, arv_gv_stream_get_port (ARV_GV_STREAM (stream)));
	}

	arv_device_read_memory (device, 0x00014150, 8, memory_buffer, NULL);
	arv_device_read_memory (device, 0x000000e8, 16, memory_buffer, NULL);
	arv_device_read_memory (device,
				ARV_GVBS_USER_DEFINED_NAME_OFFSET,
				ARV_GVBS_USER_DEFINED_NAME_SIZE, memory_buffer, NULL);

	node = arv_gc_get_node (genicam, "AcquisitionStart");
	arv_gc_command_execute (ARV_GC_COMMAND (node), NULL);

	signal (SIGINT, set_cancel);

	start_time = g_get_real_time ();
	do {
		g_usleep (100000);

		do  {
			buffer = arv_stream_try_pop_buffer (stream);
			if (buffer != NULL) {
				arv_stream_push_buffer (stream, buffer);
				buffer_count++;
			}
		} while (buffer != NULL);

		time = g_get_real_time ();
		if (time - start_time > 1000000) {
			printf ("Frame rate = %d Hz\n", buffer_count);
			buffer_count = 0;
			start_time = time;
		}
	} while (!cancel);

That In this while loop:

	start_time = g_get_rea> l_time ();
	do {
		g_usleep (100000);

		do  {
			buffer = arv_stream_try_pop_buffer (stream);
			if (buffer != NULL) {
				arv_stream_push_buffer (stream, buffer);
				buffer_count++;
			}
		} while (buffer != NULL);

		time = g_get_real_time ();
		if (time - start_time > 1000000) {
			printf ("Frame rate = %d Hz\n", buffer_count);
			buffer_count = 0;
			start_time = time;
		}
	} while (!cancel);

buffer is always NULL.

After that i have added the following code:

{
gint n_input_buffers;
gint n_output_buffers;
arv_stream_get_n_buffers(stream, &n_input_buffers, &n_output_buffers);
g_print (“input_buffer = %d\t\toutput_buffers = %d\n”, n_input_buffers, n_output_buffers);
}

and i realized that the value of “n_input_buffers” is correct (it is the amount of buffers that have been push into the stream), but the “n_output_buffers” has the value of 0 and it never increments. Maybe this is the reason why the variable “buffer” in the do-while loop:

buffer = arv_stream_try_pop_buffer (stream);

has the return value of NULL.

Hi Emmanuel,

the problem is somewhere in our network. I have now tried Aravis in a machine directly (without any switches or interfaces in between) connected to the camera and im getting the expected 25Hz!