Hello Pierre,
Thank you for your detailed explanation of the requirements.
-An awful solution (for me) would be to add another DmaToPC in order to send bytes instead of "event" in case of tag signal. ...
Any help is welcome.
really want to avoid modifying the image pixels to store information, or even worse (for me), adding data at the end of the image.
From my point of view adding a header or footer to a DMA Transfer is a possible solution,
but since you do not like/prefer this approach I would like to make the following proposal:
There is a simple and reliable way of getting FG related timestamps:
You can use the ImageMonitor operator...
FGevent_Time.png
Above you can see an example of event generation and frame grabber (FG) time stamp transfer.
When you register a software callback so that you will have a function getting called when the edge on the trigger input occurs.
A very precise FG timestamp is sampled for each trigger here and waits in FIFO until ImageMonitor (link to docu) reads it. You can add more data blocks (image-number, counters, ...) and use several of these in the design. This is named "Image"Monitor but here we simply use it for data "structure".
The event data (FG time stamp) can be read through register/ImageMonitor interface. If you want to have some sample C++ code for that feel free to contact me.
FGevent_Clocker.png
Above you can see how a FG time can be generated using 64bit... You can modify the data-type to your personal preference.
Current FG Time is shown by GetStatus to Register interface.
VA DESIGN: FG_TimeStamps_TimeDataForEvent.va
In case of questions do not hesitate to contact me.
Best regards,
Björn