Installed a stable release (0.8.21) onto my Linux machine. After building/installing, we pulled down the c examples and began running the few examples that came with them. Ran across the following error and have been struggling to pin down the exact issue.
(Error: Controller privilege required for streaming control)
Thoughts? Advice? Insight?
The GigEVision protocol has a heartbeat based access control mechanism. A client has to request for control access, and then has to regularly communicate with the camera in order to keep its control access, before a given timeout. When the client does not need the control access anymore, it has to relinquish its control privilege.
If for some reason (a crash for example) the control access is not released by the client, it will not be possible to regain the control access until the heartbeat timeout has expired.
The value is usually available as a GevHeartbeatTimeout feature (expressed as ms). For example:
arv-tool-0.8 control GevHeartbeatTimeout
GevHeartbeatTimeout = 3000 min:0 max:4294967295
Thanks for the insight Emmanuel.
I wasn’t able to receive a similar response.
The remainder of the arv-tool-0.8 commands (genicam, features, values, etc.) look to be functioning. It looks like my sensor doesn’t support a GevHeartbeatTimeout as a defined feature.
I did see your post regarding alternative access method: How to restart after "control-lost" signal - #6 by Emmanuel
The Emergent_HR-20000 sensors have their GevHeartbeatTimeout specified by the following instead (using “arv-tool-0.8 values”):
Category : ‘TransportLayerControl’
Integer : ‘PayloadSize’ = 19660800
Boolean : ‘GevSCPSDoNotFragment’ = true
Boolean : ‘GevSCPSBigEndian’ = false
Integer : ‘GevSCPSPacketSize’ = 9000
Integer : ‘TLParamsLocked’ = 0
Integer : ‘HBTimeout’ = 5000
Boolean : ‘HBDisable’ = true
It looks like the GevHeartbeatTimeout = HBTimeout, but the heartbeat is disabled at the moment (HBDisable).