Add time synchronization support for Basler Ace USB cameras and update default scene#3
Conversation
…limit digits for latency and acq frequency
|
First of all thanks for this contribution! The base class Now that I have seen your code it should not be too difficult. The only problem on my side is that I don't have any camera for testing, but likely we can arrange it somehow that you do the test. |
aparenti
left a comment
There was a problem hiding this comment.
It seems to me there are not so many USB-specific lines. It shouldn't be difficult to merge them into the generic Basler device.
| .commit(); | ||
|
|
||
| INT32_ELEMENT(expected) | ||
| .key("tickFrequency") |
There was a problem hiding this comment.
For me to understand in what this class differs from the standard one, this is a device property you added for USB cameras, but the other ones are exactly the same. Is it correct?
| const std::string message("Timestamp synchronization loss -> reset timestamp"); | ||
| KARABO_LOG_WARN << message; | ||
| this->set("status", message); | ||
| arv_camera_execute_command(m_camera, "TimestampReset", nullptr); |
There was a problem hiding this comment.
This also differs for the USB case
| // Get current timestamp on the camera. | ||
| // It has been verified on an acA640-120gm that this takes 1 ms ca., | ||
| // thus this is the precision we can aim to in the synchronization. | ||
| arv_camera_execute_command(m_camera, "TimestampLatch", &error); |
| // thus this is the precision we can aim to in the synchronization. | ||
| arv_camera_execute_command(m_camera, "TimestampLatch", &error); | ||
| if (error == nullptr) { | ||
| m_reference_camera_timestamp = arv_camera_get_integer(m_camera, "TimestampLatchValue", &error); |
| } | ||
|
|
||
| // m_tick_frequency = this->get<int>("gevTimestampTickFrequency"); | ||
| m_tick_frequency = this->get<int>("tickFrequency"); |
We could alternatively also have a joint remote test session (e.g. via Zoom) if you like. |
This request addresses two improvements:
It introduces time synchronization support for Basler Ace USB cameras. So far this feature was only support for Basler Ace Ethernet Cameras. Here the support is added by introducing a new device class for Basler Usb cameras
AravisBaslerUsbCamerawhich is slightly modified variant ofAravisBaslerCamera. It might be also possible to address the changes in a common class that in itself recognizes whether a USB oder Ethernet camera is connected und thus applies the appropriate commands.It updates the default scene with limited float precision for the displayed latency / frame rate and add ability to enable/disable trigger mode besides the trigger input selection
previous scene

updated scene
