Circular buffer error with DIO32HS

Hello,
I am using a DIO32HS in pattern buffered I/O with external clock in Labview and in Visual C.
I lose a sample when the circular buffer has wrapped the first time. It is always the 17th sample after a full buffer. If I change the buffer size, it moves along.
I tested it in Labview 6i and with Visual C. I can repeat the test and the error is always in the same spot. There are no error warnings, not in Labview or in C.
I tried it with another DIO32HS and it makes no difference.
Has anyone seen this before?
How can I solve the problem?

Hello,
I am not sure where the problem lies in your application, but here is one test you can run to see if the card is working correctly and it may be something that we are missing in the programming of the card.
You can open the Pattern Input example and the Pattern Output example VIs in labview.
Next, tie all the data lines of port 0,1 to the data lines of port 2,3. Also tie REQ1 to REQ2 (clock line). Then you can start one example with the settings of external clock, then start the other program using the internal clock. This will insure that we start the slave ports first, then the master ports will start the transfer of data after the slave ports are ready.
Hope fully you do not see the same behavior, but if you do, you may wish to contact NI technical
support. For contact information visit www.ni.com.

Similar Messages

  • Htp buffer error with xmltype

    Dear folks
    I wrote a procedure (print_large_objects) to print clobs on a web page. It works well.
    But when I fetch and request for print by that procedure, I get 'htp buffer too small ... error' when it exceeds 4000 character.
    The code is like this:
    CREATE OR REPLACE PROCEDURE "SCOTT"."GET_XMLTYPE_4"
    IS myxml integer;
    i integer:=1;
    result clob;
    Cursor doc_cursor IS
    select a.xmltype_column.extract('/rec').getclobval()
    from scott.xmltype_table a
    where contains(th,'people inpath (/rec/abstract)')>0;
    begin
    htp.print('<begin>');
    open doc_cursor;
    loop
    fetch doc_cursor into result;
    exit when doc_cursor%notfound;
    scott.print_large_objects(result);
    end loop;
    htp.print('</begin>');
    end;
    and this is the print_large_objects:
    CREATE OR REPLACE PROCEDURE "SCOTT"."PRINT_LARGE_OBJECTS"
    (l_ob in clob) IS result clob;
    output_str varchar2(4000);
    offset_var integer:=1;
    i integer:=1;
    buf_size integer:=100;
    begin
    while offset_var<dbms_lob.getlength(l_ob) loop
    dbms_lob.read(l_ob, buf_size, offset_var, output_str);
    htp.prn(output_str);
    offset_var :=offset_var + buf_size;
    end loop;
    end;
    any suggestions?
    Thanks in advance for your help

    Which DB version do you use?

  • Audio Buffer error with command line app

    I run a program called SBAGEN, which is a binaural beat frequency program that runs from Terminal.app - lately, when I invoke one of the scripts for this program, I get this error:
    Set audio output buffer size failed, status = 1852797029
    any ideas as to how to solve this?
    Thanks

    Resolved this issue on my own:
    *SYSTEM PREF—-> SOUND —–> SOUND EFFECTS*
    I needed to make sure that under +SOUND EFFECTS+, that the following was selected in the drop down menu +“Play sounds and alerts from”+: *SELECTED SOUND OUTPUT DEVICE*

  • Enumeration with Circular Buffer

    Hi, im having trouble with the enumeration of Circular Buffer .
    I had compilation errors with the Ring Buffer Class, it keeps pointing to public Enumeration elements () {return new RingBufferEnumeration(this);}
    Any advice ? Thanks
    This is the RingBufferEnumeration Class code
    public class RingBufferEnumeration implements Enumeration {
    private RingBufferNode firstFree, firstFilled;
         public RingBufferEnumeration(RingBufferNode a) {
              firstFree = new RingBufferNode(a);
              firstFilled = firstFree;
              firstFree.next = firstFree;
    public boolean hasMoreElements(){
      return firstFilled != firstFree;
    public Object nextElement () {
    return firstFilled= firstFilled.next;
    }this is the Ring Buffer Code
    public class RingBufferQueue implements Queue {
          * initialize an empty ring buffer queue
         public RingBufferQueue () {
              firstFree = new RingBufferNode(firstFilled);
              firstFilled = firstFree;
              firstFree.next = firstFree;
         private RingBufferNode firstFree, firstFilled;
          * Determines whether the collection is empty
          * @return true if the collection is empty
         public boolean isEmpty() { return firstFilled == firstFree; }
          * Determines number of elements in collection
          * @return number of elements in collection as integer
         public int size () {
              int count = 0;
              RingBufferNode p = firstFilled;
              for (; p != firstFree; p = p.next) count++;
              return count;
          * Yields enumerator for collection
          * @return an <code>Enumeration</code> that will yield the elements of the collection
          * @see java.util.Enumeration
         public Enumeration elements () {return new RingBufferEnumeration(this);}
          * add a new value to end of the collection
          * @param value element to be inserted into collection
         public synchronized void addLast (Object val) {
              if (firstFree.next == firstFilled)
                   firstFree.next = new RingBufferNode(firstFree.next);
              firstFree.value = val;
              firstFree = firstFree.next;
          * access the first value in collection
          * @return element at front of collection
          * @exception java.util.NoSuchElementException no matching value
         public Object getFirst () {
              if (firstFilled == firstFree) throw new NoSuchElementException();
              return firstFilled.value; }
          * remove first value in collection
          * @exception java.util.NoSuchElementException no matching value
         public synchronized void removeFirst () {
              if (firstFilled == firstFree) throw new NoSuchElementException();
              firstFilled = firstFilled.next;
    class RingBufferNode {
         public Object value;
         public RingBufferNode next;
         public RingBufferNode (RingBufferNode n)
              { next = n; }
    }

    im not sure is it a RingBufferNode but, im sure it is not indexed data for ring Buffer
    My IndexDeque is working correctly
    public Enumeration elements () { return new IndexedEnumeration(this); }IndexedEnumeration
    public class IndexedEnumeration implements Enumeration {
          * initialize newly created IndexedEnumeration
          * @param d collection to enumerate over
         public IndexedEnumeration (Indexed d) { data = d; }
         private Indexed data;
         private int index = 0;
          * see if enumeration should continue
          * @return true if enumeration has at least one more element
         public boolean hasMoreElements () { return index < data.size(); }
          * get next element in enumeration
          * @return value of next element in enumeration
         public Object nextElement () { return data.elementAt(index++); }
    }

  • Problem with circular buffer

    Hi,
    For some reason, whenever my circular buffer is filled and wraps around, right at that moment, my graph screws up for a split second by drawing a line across the graph. But for some reason, this doesn't happen all the time, only sometimes.
    The picture is below:
    Attachments:
    graph jump.JPG ‏105 KB

    Sorry, made a new thread since that one showed "Solved".
    It seems the buffer works fine, something is wrong with the data being inserted in there. I don't know why it only messes up with that data.
    I managed to capture some messed u p data. I will post it below. 
    Message Edited by Bilal_J on 04-12-2010 02:46 PM
    Attachments:
    Circular Buffer Debug.vi ‏17 KB
    Circular Buffer.vi ‏39 KB
    Circular Buffer Action Enum Typedef.ctl ‏5 KB

  • I'd like to know how I can acquire a waveform on a loop and do a circular buffer with this waveforms I will acquire, cause I want to reduce the noise.

    I'm using trigger for this data acquisition.

    deco,
    If you really want a circular buffer, how much data do you want it to hold? One acquisition? Two? Three? Once this is decided, you will need to create the waveform and then continuously strip the old data out and place the new data in. This will add a bit of overhead to your VI.
    There are also software noise filters in LabVIEW that you can use to reduce the noise in your signal.
    Lastly, if there is a lot of noise, you may want to consider an SCXI system which will filter out most of the noise as the data is being acquired.
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://www.ni.com/ask

  • App-V 5 SP1: Error with SAP GUI 7.3

    Hallo!
    We work on a project to use SAP GUI 7.3 with latest fixes with App-V 5. This works fine so far with the exception of only one transaction in SAP - SWDD. This windows shows no icons on top. After waiting for a while this transaction stops working and SAP
    GUI crashes. SAP support says it's an error with App-V. So we tried to find some error with process monitor. We are able to see many of these errors:
    Date & Time: 19.11.2013 11:02:26
    Event Class: Registry
    Operation: RegOpenKey
    Result: NAME NOT FOUND
    Path: HKU\S-1-5-21-1393060369-1102717077-1881041405-25977_CLASSES\AppV\Client\Packages\4782139E-FD11-4C4D-84FB-57E849A8B823\Registry\Machine\Software\Classes\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}\ExtendedErrors
    TID: 10504
    Duration: 0.0000049
    Desired Access: Maximum Allowed
    Date & Time: 19.11.2013 11:02:31
    Event Class: Registry
    Operation: RegEnumKey
    Result: BUFFER TOO SMALL
    Path: HKCR\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}\ExtendedErrors
    TID: 10504
    Duration: 0.0000021
    Index: 0
    Length: 0
    Date & Time: 19.11.2013 11:02:31
    Event Class: Registry
    Operation: RegOpenKey
    Result: NAME NOT FOUND
    Path: HKLM\SOFTWARE\Microsoft\AppV\Client\Packages\4782139E-FD11-4C4D-84FB-57E849A8B823\Versions\E7BFC8A3-BB43-4739-A7A8-604AA3A68E84\Registry\Machine\Software\Classes\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}\ExtendedErrors
    TID: 10504
    Duration: 0.0000123
    Desired Access: Maximum Allowed
    There are hundreds of these entries. What are these NAME NOT FOUND errors? Did anyone of you successful sequence SAP Gui 7.3 with App-V 5?
    Thanks for help.
    Dietmar

    Hello,
    See this topic which explains BUFFER TO SMALL.
    http://blogs.technet.com/b/markrussinovich/archive/2005/05/17/buffer-overflows.aspx
    The Name not found indicates that it is looking for a registry key (location is the path) and not finding it. That may not be a problem, as it usually traverses multiple locations (HKCU and / or HKLM, native and virtual..).
    First question is;
    On a machine with SAP installed natively - is there an entry named;
    HKLM\Software\Classes\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}\ExtendedErrors
    or
    HKCU\Software\Classes\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}\ExtendedErrors
    If yes, does it exist in the package?
    Nicke Källén | The Knack| Twitter:
    @Znackattack

  • Error with Download JDBC Drivers page

    There appears to be an error with the JDBC Drivers download page. When navigating from the top-level download page, all I'm seeing is '<SCRIPT LANGUAGE="javascri'. Is there another page from which I can download the driver?
    Guy Heathcote
    Ordnance Survey
    UK

    The 10g and later drivers trade memory for performance. They use much more memory than the 9i drivers, but are much faster. If you look at the JDBC FAQ here on OTN there is some more info on where the memory is going. The stack trace you posted is what I would expect to see from buffer allocation described in the FAQ.
    Douglas

  • Htp buffer error when using non-ascii characters

    Hello, and my question:
    When I issue the following command, 10000 times to print on web it works well:
    htp.prn('&lt;a&gt;this is a test&lt;/a&gt;');
    But when I issue this command by just substituting "this is a test" with characters that their ASCII codes are between 128 to 255, I can not print more than 100 times and I get htp buffer error!
    could you please solve this puzzle for me?
    Thanks in advance and
    Regards

    You should try the DB forum for better help. This is really an HTP package issue.

  • Data Buffer error USER_AUTH_FAILED: User account for logonid "SYSTEM"

    All,  I have the following errors on both the Quality and the Production system in our data buffer job.
    com.sap.security.api.NoSuchUserException: USER_AUTH_FAILED: User account for logonid "SYSTEM" not found!
    These entries will not process because they are generating an error about the loginid for the Username SYSTEM is not found.
    So I am thinking that somehow the MII system is not capturing the correct username when they are being added into the Data Buffer Jobs, or there is something I am overlooking when I set up the databuffering.
    Other entries that were in the data buffer jobs were listed as using the RS1000SVC-QMUSBATCH, RS1630SVC-PMIIBATCH User accounts.  These are the accounts that our scheduled tasks run under.
    Those entries process OK out of the data buffer jobs.
    I did notice a similarity between the data buffer jobs in the quality and production systems as it pertains to the following transactions.
    Production MII ver 12.0.7 (Build 20)
    Muscatine%2FIntegration%2FSAP%2FPROD_CONFIRMED_INPUT_InsertQuery
    Which is called from the MIIC1043_IDOC Message Processing Rule.
    Muscatine%2FIntegration%2FSAP%2FHEADER_InsertQuery
    Which is called from the MIIC1043_Control_Recipe_Download Message Processing Rule.
    Quality MII 12.0.11 (Build 14)
    Muscatine%2FIntegration%2FSAP%2FPROD_CONFIRMED_INPUT_InsertQuery
    Which is called from the MIIC1043_IDOC Message Processing Rule.
    So the commonality is that these transactions are being initaiated by the Message processing rules.
    Are there known issues with data buffering from transactions initiated with Message Processing Rules?
    Is anyone sucessfully using data buffering of transactions called by message processing rules?
    Any help is appreciated.
    Bob

    Jeremy,  Thanks for your reply.
    There doesn't seem to be much detailed information on the use of Catagories with Processing rules in Help or in the forums.  So let me see if I understand your suggestion correctly.
    On the MII server create a processing rule for the message using a category instead of using a transaction,  The message received by the message listener will be placed in a buffer.  I am assuming these messages whould show up in the message monitor and not in the  Data Buffer jobs/entries.
    So in my transaction which normally processes this data I could add logic to access the message data; using the Message Service (Query, Read, Update and Delete) action blocks.  I could pare down the selection by selecting messages based on the MessageCategory that I defined in the message processing rule.   This will allow me to access the stored message data.
    Finally use a scheduled Job to execute the transaction.  The scheduled job would be run with a valid userID and Password so if it connection to the external database failed the enteries would be placed in the data buffer jobs with a valid userID credentials.
    Does this sound like what you had in mind?

  • Fastest array operations on a 2D circular buffer

    I'm trying to create a a type of circular buffer on large-ish set of 2d data which are samples of voltage from a data acquisition board.  The boards are Measurement Computing and a lot of the nice programming features built into DAQmx for NI boards aren't easily available to me.
    I'm grabbing chunks of samples, 1000 per channel * 64 channels, every 100ms.  I'm calling this a 'page'.  For each page of samples I take a median for noise filtering and then I publish this median for multiple threads to use.  I also want to be able to string together pages of samples as if it were one longer data acquisition, for up to 30 seconds.  I'm doing it this way because the threads that are expecting their data every ~100ms can't release these AI boards for long periods of time to allow other threads to use them to perform long scans.  The data coming back from my boards is a 2D array.
    I have enough RAM available to pre-allocate the memory to hold all these pages and I've been playing with the In Place structures for awhile now and I haven't been able to land on the magical combination that will allow me to replace any page in the buffer.  It's easy enough using the subarray option of the in Place to replace either the first page or the last page but it gets more complicated to do a page somewhere in the middle without having to resort to Case statements.  I tried to do it with nested In Place structures but it seems as if the subarrays that get created in the lower levels already go out of scope by the time the top level gets it assigned and I just get jibberish on the output side.  Does this make sense?

    SmokeMonster wrote:
    I tried to do it with nested In Place structures but it seems as if the subarrays that get created in the lower levels already go out of scope by the time the top level gets it assigned and I just get jibberish on the output side.  Does this make sense?
    Sorry, but at least to me, this doesn't make sense.  Can you post your code?  I can't see how "out of scope" is a concept that applies here - LabVIEW keeps track of the memory for you and should never lose track of memory that's still in use.
    I posted one approach to a 2D circular buffer; maybe it's of some use to you.

  • How to buil a circular buffer of message

    Hi, I have a GPS that sends me their information every 30 seconds, I'm receiving this information for the serial port and I should send this information by another serial port, but every 90 seconds or more, the transfer time is variable according to the performs of the microcontroller, we need to know how buil a circular buffer of tx message so as not to miss any reading that I sent me the GPS.

    One way would be to have the serial port read in one loop, placing the received messages onto a queue, with the writing done in another loop, popping the messages off the queue as needed. Of course, if you are "loading" the queue every 30 seconds, and "unloading" the same amount only every 90 seconds, you will eventually run out of storage, filling up the predefined queue size. So you will need to determine how long that would be, and how you want to handle it. This is a problem that will occur with whatever method you use, also understanding that the longer you run, the further behind the actual GPS location data you will be. In LabVIEW 8.x, click "File" and New, there is an example of a producer/consumer architecture.
    Message Edited by LV_Pro on 01-27-2009 01:28 PM
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • How to ignore DAQmx buffer errors ?

    Hi,
    In my application, I have to start the data acquisition of analog inputs (PCI 6025E)so that it could be read when the uses wishes to through a user interface VI. In addition to this, I also have a background thread that reads two of these AI ports every 250 msecs. However, by the time the buffer is read it has probably been overwritten atleast once and then it throws this error window saying buffer was overwritten etc. I think the buffer is a circular buffer and if so buffer being overwritten doesn't affect my application. So, is there a way I can avoid this error window from popping up ?
    Thanks,
    Sharmila

    There might be a couple of ways out of this. If you create a functional global (also known as a LabVIEW2 style global)you can have it written too by your DAQ portion, and read from elsewhere. You can make this LV2 global act as a circular buffer, allowing you to read from it when ever you need to, but allowing the DAQ to write to it when ever it needs to. There has been a lot of discussion on the construction of LV2 globals, so you should be able to find the information.
    Additionally, in the recent versions of LabVIEW there is an option (under the tools/option/block diagram menu pulldown) that allows enabling automatic error handling. What this does is cause an error dialog box to pop-up on any vi you use that has error handling that you haven't "handled" by wiring the error out to something else. Unchecking this may prevent the popup, I don't know whether the vi generating it will then just continue or whether it will need to have it or some earlier vi "reset". This is a useful feature, particularly in development and debugging, although I prefer to intentionally handle errors when I'm designing my code as it forces you to think about the various possible input cases that might fall outside of what you really wanted to happen.
    Putnam Monroe
    Certified LabVIEW Developer
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Circular buffer

    I am using circular buffer as provided here to store 2D array of DBL data.
    Is there a way to have multiple buffer of same type? Need three circular buffer of DBL type to acquire and save data to its respective circular buffers.
    Reason to store the data separate from each module is to use the respective buffer during analysis.
    Any suggestions, thanks.

    This is sounding more and more like what you really want is a Producer/Consumer architecture with many consumers.  Use a different queue for each consumer.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Phantom circular reference errors in spreadsheet

    I'm getting phantom circular reference errors in one of my Appleworks spreadsheets.
    I'm trying to compute the average of several sets of pairs of numbers, I have max of three pairs per line, and I'm using COUNT to determine how many pairs are present. I'm getting "can't resolve circular reference" errors occasionally when I fill down and add data for a new line, even though there aren't any circular references.
    Columns
    A= date, B=average X, C=averageY, D=number of pairs for this line
    E F = first pair, G H = second pair, I J = third pair.
    The second and third pair don't occur every day.
    These are the formulas I'm using,
    B average_X =(E_line# + G_line# + Iline#)/Dline#
    C average_Y =(F_line# + H_line# + Jline#)/Dline#
    D numPairs =COUNT(Eline#...Jline#)/2
    I add a new line each day.
    Its worked just fine until I went over 100 lines and now I occasionally get "can't resolve circular reference" erros, and the calculation cells, but there AREN'T any circular references.
    Anyone have any idea whats going on?

    I'm using AW 6.2.7 I'm on OS X 10.3.9
    I tried it with removing the AVERAGE and COUNT functions and it still happens.
    Seems like its somehow related to any references to columns J and K, even if there's no data in those cells, and no references to other cells.
    Its related to the COUNT function.
    If I drop off the last two columns it all seems to work ok.
    =(F153+H153)/(E153/2)
    where E153 is =COUNT(F153..I153)
    But if I try to use the last pair (columns J and K) it gets errors
    =(F153H153I153)/(E153/2)
    where E153 is =COUNT(F153..K153)
    DOES the COUNT function have a limitation to how many cells it can reference?
    It seems like for some reason the J column is corrupted. sometimes if there is any number in colum J it gets "circular reference error" EVEN though there is NO circulare reference only a number.
    BUT when I delete the number from Column J the error goes away.

Maybe you are looking for