Hardware trigger for camera in Argus framework


I am tring to implement a hardware trigger with the argus framework.
The use case is:

  • We start an application.
  • Start connect to the cameras,
  • Wait for a hardware trigger to trigger multiple sensors a the same time with high precision (sub milisecond) (possibly connected to different devices)
  • Read the frames taken at the triggers and process them.

Is there any way in the Argus framework to wait for a hardware trigger?

We also tried a workarround.

  • Starting a camera stream.
  • Pausing the sensor from otside source, until hardware trigger.
  • resuming the camera feed at trigger.
    The problem with this approach was that the Argus Framework times out after 1 second of wating for the camera.
(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 266)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 368)

Possibly is there any way to disable the timeout in the low level Argus?

hello vargalg,

you’re able to configure Argus::TIMEOUT_INFINITE to have infinite timeout settings to camera stack.
you may restart nvargus-deamon by adding enableCanInifiniteTimeout=1 to configure the settings.

however, the internal camera stack expect all coming frames to fill capture buffers without failures, if there’s frame corruption or some unknown errors, it’s Argus Error Resiliency to allow user-space crash, it could handles error events and shutdown the app gracefully. this error handling keeps system in the steady state instead of kernel panic, or any unexpected failures.

1 Like

Thank you!

The enableCanInifiniteTimeout=1 solved it.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.