-
-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
arv-camera-test encounters missing packets for nearly all frames #434
Comments
Hi, Did you try the following tweaks:
What is the CPU consumption ? |
Hi @EmmanuelP, Thanks for your quick reply! I must admit, I'm not certain how to tweak socket buffer size or how to use packet socket. I'll look into how to tweak those. If you have a guide you would share, I would appreciate it. For the MTU increase, I have tried changing the value from automatic to 8000, 9000, and 9014. None of those helped. I don't know how to change it on the camera. Is there a setting in Aravis I need to also change? For CPU consumption, one of the 6 cores goes to 100% and the other 5 cores increase to around 50% when I run arv-camera-test. Thanks again! |
I discovered arv-tool just now, but don't really know how to use it. I also found an example in the issue tracker for changing the camera MTU to match what I'm using in Ubuntu Network settings. That doesn't help. The only other thing I discovered how to set is the image size. I set it to the minimum (32x4) and now am receiving frames. It seems like I'm headed in the right direction by accident, but I'm not sure how best to proceed. Here's a sample of the output:
|
Please try:
And:
And attach the console output. |
Console output running arv-camera-test without 'sudo': camera_test_log_bobcat_d_device_stream_auto_f_10.txt Console output running arv-camera-test with 'sudo': camera_test_log_bobcat_sudo_d_device_stream_auto_f_10.txt |
Hi @EmmanuelP, I was wondering if you had an opportunity to look at the console output you asked me to collect last week. Thanks! |
When arv-camera-test runs using sudo, packet_socket is enabled. In this case there is not missing packets. But for some reason, the transfers stop after 80 images. May be there is a parameter that limits the acquisition sequence to 80 images. Also, there can be an issue when you are trying to transmit bigger images, because in this case the actual packet size may exceed what is supported by the network hardware on the path to the camera. Before running arv-camera-test, try to run tests/arv-auto-packet-size, which should sets the maximum camera packet size to what is possible on your network. |
@EmmanuelP, thanks for helping me investigate this problem! As you suggested, I ran tests/arv-auto-packet_size_test before running arv-camera-test. The output said it set the packet size to 1500 bytes. I then set the MTU size of the network adapter to 1500 bytes before running tests/arv-camera-test with sudo. It looks like acquisition stops after 49-69 frames on multiple tries. This is the output for when acquisition stopped after 69 frames: Where would you suggest I look to see if there is a parameter that's interfering with image acquisition? |
In the camera documentation. Something that can explain a stop of the streaming is the heartbeat packet that must be sent by aravis to the camera before a given timeout. Aravis by default sends the heartbeat packet every second, but there is a compile time option to send it faster. It would help if you can attach a network capture using wireshark. |
Describe the bug
arv-camera-test appears to receive no frames from the camera because of missing packet errors. Representative debug information:
[GvStream::missing_packet_check] Resend request at dt = 6837, packet id = 1008 (1216 packets/frame)
[GvStream::send_packet_request] frame_id = 66 (from packet 1007 to 1007)
packet_type = cmd
packet_flags = none
command = packet-resend-cmd
size = 12
id = 8048
00000000 42 00 00 40 00 0c 1f 70 00 00 00 42 00 00 03 ef B..@...p...B....
00000010 00 00 03 ef ....
[GvStream::missing_packet_check] Resend request at dt = 6885, packet id = 1010 (1216 packets/frame)
[GvStream::send_packet_request] frame_id = 66 (from packet 1009 to 1009)
packet_type = cmd
packet_flags = none
command = packet-resend-cmd
size = 12
id = 8049
00000000 42 00 00 40 00 0c 1f 71 00 00 00 42 00 00 03 f1 B..@...q...B....
00000010 00 00 03 f1 ....
[GvStream::process_data_block] Received resent packet 187 for frame 66
[GvStream::process_data_block] Received resent packet 188 for frame 66
[GvStream::process_data_block] Received resent packet 189 for frame 66
[GvStream::process_data_block] Received resent packet 190 for frame 66
[GvStream::process_data_block] Received resent packet 191 for frame 66
[GvStream::process_data_block] Received resent packet 192 for frame 66
[GvStream::process_data_block] Received resent packet 193 for frame 66
[GvStream::process_data_block] Received resent packet 194 for frame 66
[GvStream::process_data_block] Received resent packet 195 for frame 66
[GvStream::process_data_block] Received resent packet 196 for frame 66
[GvStream::process_data_block] Received resent packet 197 for frame 66
[GvStream::process_data_block] Received resent packet 202 for frame 66
[GvStream::missing_packet_check] Resend request at dt = 7030, packet id = 1038 (1216 packets/frame)
[GvStream::send_packet_request] frame_id = 66 (from packet 1011 to 1037)
packet_type = cmd
packet_flags = none
command = packet-resend-cmd
size = 12
id = 8050
00000000 42 00 00 40 00 0c 1f 72 00 00 00 42 00 00 03 f3 B..@...r...B....
00000010 00 00 04 0d ....
[GvStream::check_frame_completion] Timeout for frame 54 at dt = 115629
[GvStream::close_frame] Close frame 54
To Reproduce
Steps to reproduce the behavior:
meson compile
./arv-camera-test --debug all:3
from build/tests directoryExpected behavior
I expect arv-camera-test to successfully receive frames from the camera with no errors.
Camera description:
Platform description:
Additional context
Full output with debug information:
The text was updated successfully, but these errors were encountered: