[aravis] Re: Debugging latency & long pause issues with Blackfly camera...

  • From: Emmanuel Pacaud <emmanuel@xxxxxxxxx>
  • To: aravis@xxxxxxxxxxxxx
  • Date: Tue, 15 Apr 2014 18:09:02 +0200

Le mardi 15 avril 2014 à 10:17 -0400, Patrick Doyle a écrit :
> On Tue, Apr 15, 2014 at 9:52 AM, Emmanuel Pacaud <emmanuel@xxxxxxxxx> wrote:
> > Hi,
> > The problem with the blackfly camera I own (a BFLY-PGE-14S2C-CS) is the
> > camera timestamp is wrong. The camera send in the image packet a
> > timestamp expressed as timing ticks. Aravis then use the content of the
> > register TimingTickFrequency in order to compute the timestamp in
> > nanosecond. Unfortunately, TimingTickFrequency register returns a wrong
> > value, and then the timestamp in nanosecond is also wrong.
> >
> I notice in arvgvdevice.c that you read the timestamp tick frequency
> as 2 32-bit numbers (a high & a low).
> 
> But I notice that arv-tool-0.4 reports a GevTimestampTickFrequency as
> a single 32-bit integer for my Blackfly camera (a BFLY-PGE-03S2M-CS).
> I was going to go investigate this further -- what is it that you do
> when you call arv_device_read_register() for those two 32-bit
> registers, and how does that differ from reading the 32-bit integer
> through whatever interface arv-tool-0.4 uses.

I don't know if you camera model is the same as mine, but in my case
GevTimestampTickFrequency is actually a 64 bit value, even if the
maximum value is 4294967295.

Here's the relevant genicam data:

<Integer Name="GevTimestampTickFrequency" NameSpace="Standard">
<ToolTip>
Indicates the number of timestamp ticks in 1 second (frequency in Hz).
</ToolTip>
<Description>
Indicates the number of timestamp ticks in 1 second (frequency in Hz).
</Description>
<DisplayName>GEV Timestamp Tick Frequency</DisplayName>
<Visibility>Expert</Visibility>
<ImposedAccessMode>RO</ImposedAccessMode>
<pValue>GevTimestampTickFrequencyValue</pValue>
<Min>0</Min>
<Max>4294967295</Max>
<Representation>PureNumber</Representation>
</Integer>
<IntSwissKnife Name="GevTimestampTickFrequencyValue">
<pVariable Name="HIGH">pGevTimestampTickFrequencyHighReg</pVariable>
<pVariable Name="LOW">pGevTimestampTickFrequencyLowReg</pVariable>
<Formula>(HIGH << 32) | LOW</Formula>
</IntSwissKnife>

Integer node is a 64 bit value.

        Emmanuel.


Other related posts: