Skip to content
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

Event support #491

Open
abrock opened this issue Mar 18, 2021 · 8 comments
Open

Event support #491

abrock opened this issue Mar 18, 2021 · 8 comments
Labels
1. Feature New features or capabilities to be added 5. Genicam Issue in Genicam implementation 5. Gige Issue in the GigEVision implementation 5. Usb3 Issue in USB3Vision implementation
Milestone

Comments

@abrock
Copy link
Contributor

abrock commented Mar 18, 2021

Is your feature request related to a problem? Please describe.

Some cameras send event notifications for events like RisingEdge on some signal input, frame start etc.
For an example see Baumer VLXT documentation, section 7.11 on page 107.
I have problems with triggering those cameras and I'd like to debug it.
I searched the Aravis source code for "event" but didn't find anything that looked like it allowed me to get notified if a camera sends one of those events.

Describe the solution you'd like

I'd like to have some kind of mechanism where I specify a callback function which is then called when an event notification is received. Perhaps similar to the current mechanism for receiving frames g_signal_connect(stream,"new-buffer", G_CALLBACK(my_buffer_handler), &my_cam_data_struct)

@EmmanuelP EmmanuelP added 1. Feature New features or capabilities to be added 5. Genicam Issue in Genicam implementation 5. Gige Issue in the GigEVision implementation 5. Usb3 Issue in USB3Vision implementation labels Mar 18, 2021
@EmmanuelP EmmanuelP changed the title Reacting to events sent by camera Event support Mar 18, 2021
@EmmanuelP EmmanuelP modified the milestones: 1.0, 0.8.0 Apr 12, 2021
@pierce-martin
Copy link

Hi @EmmanuelP

Any plans to support this soon? Thanks.

@1873505600
Copy link

Hello, is the event or event data already in the plan, or is it somewhere else in the source code that I didn't find relevant

@EmmanuelP
Copy link
Contributor

Event support is not implemented, but it is definitely in Aravis project scope. Merge request welcome !

@1873505600
Copy link

Event support is not implemented, but it is definitely in Aravis project scope. Merge request welcome !

Maybe I can try to add the related source code, but I need a genicam protocol file to determine the protocol version. I haven't found the related file link in the wiki and readme file, could you please give me a related file link

@EmmanuelP
Copy link
Contributor

The genicam specification does only define an API for event. The interesting parts are in the GigEVision and USB3Vision protocols, but the use of these specifications for an open source implementation is forbidden, everything has to be done by reverse engineering. If you have read these documents, you can not contribute to the related code in aravis (arv_uv_* and arv_gv_* source code).

To reverse engineer the protocol, one has to capture the data exchanged between the device and a proprietary sdk, using wireshark, and find the packet related to events.

@1873505600
Copy link

The genicam specification does only define an API for event. The interesting parts are in the GigEVision and USB3Vision protocols, but the use of these specifications for an open source implementation is forbidden, everything has to be done by reverse engineering. If you have read these documents, you can not contribute to the related code in aravis (arv_uv_* and arv_gv_* source code).

To reverse engineer the protocol, one has to capture the data exchanged between the device and a proprietary sdk, using wireshark, and find the packet related to events.

Thank you for your answer. I have seen the GigEVision 2.0 standard, but since this standard cannot be used directly for aravis, and I do not have equipment for reverse analysis at the moment, the merge request has to be postponed

@dkogan
Copy link

dkogan commented Mar 13, 2024

Hello. I'm trying to use bulk transfers for my camera (https://aravis-project.discourse.group/t/how-to-execute-bulk-serial-transfers-in-aravis/728, #883).

I have the "correct" packet trace from running the vendor's code, and it's using an Event to get the data back. Should I look at implementing this, or do you want to collaborate? I'm not an expert in this, and it would go much faster if I had help.

Thanks

@EmmanuelP
Copy link
Contributor

Hi Dima,

Any help in trying to implement events would be appreciated. I don't really have time currently to work on this, but I can help in understanding the protocol and designing the API.

If you are willing to work on this feature, it is better to open a draft merge request as soon as possible, don't wait to have something working before. Even a failed attempt can be useful to someone who want to give it a try later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. Feature New features or capabilities to be added 5. Genicam Issue in Genicam implementation 5. Gige Issue in the GigEVision implementation 5. Usb3 Issue in USB3Vision implementation
Projects
None yet
Development

No branches or pull requests

5 participants