NI Home
Cart Cart | Help
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Reply
Member
Penny
Posts: 101
0 Kudos
Accepted Solution

Error BFFA4018 on USB 5132 using NI FetchForever in C#

Hello again,

I am trying out some high sampling rates (25 Ms/s) on our USB 5132 using the NI shipping example FetchForever in VS 2008 C#.NET .  Something is not optimized because even if I only grab 1 point per Fetch, the example crashes after a few hundred Fetches with:  

 

Error BFFA4018.
Possible Reasons: 
The requested data has been overwritten in memory so it is no longer available for fetching.
Status Code: -200004 . 

 

Can I tweak the Fetch timeout, or do a Thread.Sleep, or something like that?  Or, am I going to have to close the session to the 5132 between Fetches as was suggested in this post at http://forums.ni.com/t5/High-Speed-Digitizers/StreamToDisk-with-repeated-fetching/td-p/1727894 ?

 

Thanks,

Penny

 

Member
Penny
Posts: 101
0 Kudos

Re: Error BFFA4018 on USB 5132 using NI FetchForever in C#

Hi,

It seems to me that a 'trigger hold' would be helpful in this situation, so that I could finish acquiring before the next (immediate) trigger.  However I see that the 5132 does not support trigger holds, as in http://zone.ni.com/reference/en-XX/help/370592N-01/digitizers/features_supported_smc_pxie/ .  Is there some other way that I can have immediate triggers from the 5132 without running into this problem?

Thanks,

Penny

 

Member
Penny
Posts: 101
0 Kudos

Re: Error BFFA4018 on USB 5132 using NI FetchForever in C#

I just added a 15 second Thread.Sleep in my code after the call to                      sampleScopeSingleRecordReader.MemoryOptimizedFetchFromMultipleChannelsAsync() and got the same error.  Any other suggestions would be greatly appreciated.


Thanks,

Penny



Member
Penny
Posts: 101
0 Kudos

Re: Error BFFA4018 on USB 5132 using NI FetchForever in C#

Hi,

OK, it is all fixed now.  I went back to what I understand to be 'single record' acquisition, and then added a polling loop after the Fetch:

scopeSingleRecordReader.FetchFromMultipleChannelsAsync(channelNameTextBox.Text, 0, sampleScopeSession.Timing.ActualRecordLength, PrecisionTimeSpan.FromSeconds(50), null);

do { MessageBox.Show("fetched. waiting for scope session to close."); Thread.Sleep(1000); } while (sampleScopeSession.IsOpen);

 Sorry for clogging up the boards.  These digitizers are tricky.

 

Regards,

Penny

 

By using this web site, you accept the Terms of Use for this web site. Please read these Terms of Use carefully before using any part of this site. Please go here for information on ni.com's copyright infringement policy.
My Profile | Privacy | Legal | Contact NI © 2011 National Instruments Corporation. All rights reserved.    |    E-Mail this Page E-Mail this Page