Commit the buffer

Hello world

I want to test the effectiveness of the implementation of the headers in the buffer validation. To do this, I need a function that doesn't use JCSystem.beginTransaction () and JCSystem.commitTransaction () in JC API 222, fill a table. Here is the code I am using
//Variables Initialization
MaxCapacity = JCSystem.getMaxCommitCapacity();
Arraysize = (short)(9/10*MaxCapacity);
ExpectedUnusedCapacity = (short)(MaxCapacity - Arraysize);
InBuffer = new byte[Arraysize];
          
//Testing the efficiency of the commit buffer
JCSystem.beginTransaction();
random.generateData(InBuffer, (short)0,(short) InBuffer.length); //getting in trouble here since generateData function seems to use JCSystem.beginTransaction/commitTransaction
UnusedCapacity = JCSystem.getUnusedCommitCapacity();
JCSystem.commitTransaction();
EfficiencyRatio = UnusedCapacity /ExpectedUnusedCapacity ;
Such a function exists? If this isn't the case, you have an idea to test this application?

See you soon,.
Cyril

You must wrap your code in a try/catch that you have an unhandled exception. With the help of arryCopy within a transaction is a valid test. You code is probably greater than the capacity of validation of transaction and throw a TransactionException. You should try to copy the less data.

The following code works fine for me with a buffer of 1024 bytes and copies 16 bytes in there.

case 0x01:
    JCSystem.beginTransaction();
    short space = JCSystem.getUnusedCommitCapacity();
    Util.arrayCopy(buf, (short) 0, buffer, (short) 0, inlen);
    space -= JCSystem.getUnusedCommitCapacity();
    JCSystem.commitTransaction();

    Util.setShort(buf, (short) 0, space);
    apdu.setOutgoingAndSend((short) 0, (short) 2);
    break;

Output:

 => 00 01 00 00 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00
 <= 00 19 90 00

See you soon,.
Shane

Tags: Java

Similar Questions

  • Why the blocks of temporary tables are placed in the buffer cache?

    I read the following statement, which seems quite plausible to me: "Oracle7.3 and generates from close db file sequential reading of the events when a dedicated server process reads data from temporary segment of the disc." Older versions of Oracle would read temporary segment data in the database buffer cache using db file scattered reads. Releases latest exploit heuristics that data of temporary segment is not likely to be shareable or revisited, then reads it directly to a server process programs global (PGA). »

    To verify this statement (and also for the pleasure of seeing one of these rare close db file sequential read events), I ran a little experiment on my Oracle 10.2 Linux (see below). Not only it seems that different this v above, the blocks of temporary tables are placed in the buffer cache, but also$ BH. OBJD for these blocks does not refer to an object in the database's existing (at least not one that is listed in DBA_OBJECTS). Either incidentally, I traced the session and have not seen any file db close sequential read events.

    So, I have the following questions:
    (1) is my experimental set-up and correct my conclusions (i.e. are blocks of temporary tables really placed in the buffer cache)?
    (2) if so, what is the reason for placing blocks of temporary tables in the buffer cache? As these blocks contain private session data, the blocks in the buffer cache can be reused by another session. So why do all cache buffer management fees to the blocks in the buffer cache (and possibly remove) rather than their caching in a private in-memory session?
    (3) what V$ BH. OBJD consult for blocks belonging to temporary tables?

    Thanks for any help and information
    Kind regards
    Martin

    Experience I ran (on 10.2 /Linux)
    =============================
    SQL*Plus: Release 10.2.0.1.0 - Production on Sun Oct 24 22:25:07 2010
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    
    SQL> create global temporary table temp_tab_4 on commit preserve rows as select * from dba_objects;
    
    Table created.
    
    SQL> alter system flush buffer_cache;
    
    System altered.
    
    SQL> select count(*), status from v$bh group by status order by 1 desc;
    
      COUNT(*) STATUS
    ---------- -------
          4208 free
          3 xcur
    
    SQL> select count(*) from temp_tab_4;
    
      COUNT(*)
    ----------
         11417
    
    SQL> -- NOW THE BUFFER CACHE CONTAINS USED BLOCKS, THERE WAS NO OTHER ACTIVITY ON THE DATABASE
    select count(*), status from v$bh group by status order by 1 desc;
    SQL> 
      COUNT(*) STATUS
    ---------- -------
          4060 free
           151 xcur
    
    SQL> -- THE BLOCKS WITH THE "STRANGE" OBJD HAVE BLOCK# THAT CORRESPOND TO THE TEMPORARY SEGMENT DISPLAYED
    -- IN V$TEMPSEG_USAGE
    select count(*), status, objd from v$bh where status != 'free' group by status, objd order by 1 desc;
    SQL> SQL> 
      COUNT(*) STATUS      OBJD
    ---------- ------- ----------
           145 xcur       4220937
          2 xcur        257
          2 xcur        237
          1 xcur        239
          1 xcur    4294967295
    
    SQL> -- THE OBJECT REFERENCED BY THE NEWLY USED BLOCKS IS NOT LISTED IN DBA_OBJECTS
    select * from dba_objects where object_id = 4220937 or data_object_id = 4220937;
    
    SQL> 
    no rows selected
    
    SQL> SQL> -- THE BLOCKS WITH THE "STRANGE" OBJD ARE MARKED AS TEMP IN V$BH
    select distinct temp from v$bh where objd = 4220937;
    SQL> 
    T
    -
    Y
    
    SQL> 
    Edited by: user4530562 the 25.10.2010 01:12

    Edited by: user4530562 the 25.10.2010 04:57

    The reason to put the blocks to the global temporary table in the buffer cache is the same thing why you put ordinary table blocks in the cache buffers-> you want some of them to be in memory.

    If you ask why don't keep us somehow temporary tables in the PGA - well what happens if this temporary table will be 50 GB? 32-bit platforms cannot even handle this and you do not want a process of becoming uncontrollable so great.

    Moreover, TWG will allow you to restore, back to a backup (or savepoint implied when an error occurs during a call DML), and this requires protection by the cancellation. Place lines / revenge in PGA would have complicated the implementation even further... now GTT is almost of the regular tables which just happened to reside in temporary files.

    If you really want to put data in the PGA only, then you can create collections of PL/SQL and even access through the use of SQL (coll CAST AS xyz_type) where xyz_type is a TABLE of an object any.

    --
    Tanel Poder
    New online seminars!
    http://tech.e2sn.com/Oracle-training-seminars

  • What are the data size of the buffer on PX1394E - 3 50

    Hello

    I bought this drive a few days ago and I'm a little confused on the
    the size of the data buffer. The box indicates 16 MB, Toshiba web page says 8 MB, etc...

    Nobody knows, what are the data buffer size of this model?
    Is there a SW or the request to meet with whom?

    BTW, great car, fast, noise, however, extremely when it comes to finding large files.

    Thank you
    Francisco

    Hello

    I have lurked around a bit and it seems that your drive has buffer of 16 MB that is absolutely definitely sure. To check the details of your computer, you can use the tool "Sisoft Sandra". You can download [url href = http://www.sisoftware.net/index.html?dir=&location=downandbuy&langx=en&a=] here [/ URL].

    After download, just install it and you will get all information about your computer, as the size of the buffer of your external hard drive.

    Welcome them

  • Problem writing to the buffer of the device

    Hello

    I have a problem with writing the values to an analogue output. You can see the following code.

    So my problem is, when I call the function PostHolding (0.004), I put a few values in a table and the end of this function, I write the table in the buffer of the device to the analog output.

    The call is the following: DAQmxErrChk (DAQmxWriteAnalogF64 (taskHandle, (PostHoldingTime * sampling rate), 0, 10.0, DAQmx_Val_GroupByScanNumber, PostHoldingArray, NULL, NULL));

    I checked the table and the number of values for each channel, and there is all right.

    So now I come to the loop and the if clause (table a good values). With generatePatter(), I generate a pattern, it is a global. The return value shows me how many values are in the model. When I call now DAQmxErrChk (DAQmxWriteAnalogF64 (taskHandle, (newPointer-g_Pointer), 0, 10.0, DAQmx_Val_GroupByScanNumber, g_TotalPattern, NULL, NULL)); He should write my new model similarly in the buffer of the device. When I start the task I would see the first table in the PostHolding function, then the second table of the second function. And here is the problem that I always see the table from the PostHolding function, but not the second of the generatePattern(). I don't know where is the failure.

    I have the same problem, when I call the function (green in the picture) PostHolding after calling generatePatter(). Here, I see the signal from the generatePatter() function but not the signal of the PostHolding function.

    I hope someone can help me?

    Best regards

    Hello

    Thank you for your response. I already found the failure. When you create a channel, you must say how many samples gets channels. I forgot to calculate additional examples to my first sample.

    DAQmxCfgSampClkTiming (taskHandle, "", DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, SampleRate, samples);

    Best regards

  • A reading from an arbitrary point in the buffer

    With the help of the DAQmx API, is there a way to read part of the buffer from some indexes (non-zero) to aribitrary?  I would like to combine this technique with the recall of DAQmxRegisterEveryNSamplesEvent, so that I can post a video screen to the GUI of what the system during a long acquisition.

    There are two properties in DAQmx can be useful for you: the Offset and the RelativeTo property.  Changes in parameters offset in memory where read buffer begins, and the RelativeTo parameter determines what is this offset with respect to (for example the first sample or the most recent sample).

    Int32 __CFUNC DAQmxSetReadRelativeTo (TaskHandle taskHandle, data int32);

    Int32 __CFUNC DAQmxSetReadOffset (TaskHandle taskHandle, data int32);

    -Christina

  • How to use the buffer circulation

    Hello!

    I am a new user of DasyLAB. I use DasyLAB 12. I want to use the cirular buffer, but I do not understand what it does? I want to not write that measured data the past 60 seconds (for a testrun) in an output file and from the thought that the circular buffer would do. But he has an entrance and an exit. There is no record actually works. What is the circular buffer for and how can I write the measured data of the last 60 seconds? I tried to connect a file block directly writing to the output of the buffer, but it does not work.

    Thanks a lot, and what concerns the best.

    Hilby

    DASYLab written stream of data in the buffer. You must use module action to free the data. To understand how, use a switch to trigger an 'event' manually. For an example, see the attached sheet.

    You can use a time-module base to generate a "pulse per minute" to make the data once per minute.

    Another idea: use the multi-file-option to Write Data-module:

    Length of the index = a number, the first digit 0, last number 1

    «Using a time-module "Impulses per minute" and fix an action-module: target is the writing data module, the action is then "file".»

    DASYLab written now a minute of data to the first file. Data from the second minute will be written in the second file. Data from the third minute overwrites the first file, the data from the fourth minute crushes the second file.

    And so on.

    See attachment 'multifile.zip '.

  • all samples n transferred from the buffer

    Hi all

    I have a question for every N samples transferred DAQmx event buffer. By looking at the description and the very limited DevZones and KBs on this one, I am inclined to believe that the name is perfectly descriptive of what must be his behavior (i.e. all samples N transferred from the PC buffer in the DAQmx FIFO, it should report an event). However, when I put it into practice in an example, either I have something misconfigured (wouldn't be the first time) or I have a basic misunderstanding of the event itself or how DAQmx puts in buffer work with regeneration (certainly wouldn't be the first time).

    In my example, I went out 10 samples from k to 1 k rate - so 10 seconds of data. I recorded for every N samples transferred from the event of the buffer with a 2000 sampleInterval. I changed my status of application of transfer of data within the embedded memory in full with the hope that it will permanently fill my buffer with samples regenerated (from this link ). My hope would be that after 2000 samples had been taken out by the device (e.g., take the 2 seconds) 2000 fewer items in the DMA FIFO, it would have yielded 2000 samples of the PC for the FIFO DMA buffer and so the event fires. In practice it is... not to do so. I have a counter on the event that shows it fires once 752 almost immediately, then lights up regularly after that in spurts of 4 or 5. I am at a loss.

    Could someone please shed some light on this for me - both on my misunderstanding of what I'm supposed to be to see if this is the case and also explain why I see what I see now?

    LV 2013 (32 bit)
    9.8.0f3 DAQmx
    Network of the cDAQ chassis: 9184
    cDAQ module: 9264

    Thank you

    There is a large (unspecced, but the order of several MB) buffer on the 9184.  He came several times on the forum, here a link to an another discussion about this.  Quote me:

    Unfortunately, I don't know the size of this buffer on the 9184 on the top of my head and I don't think it's in the specifications (the buffer is also shared between multiple tasks).  This is not the same as the sample of 127 by buffer slot AO which is present on all chassis cDAQ - controller chassis ethernet / wireless contains an additional buffer which is not really appropriate I can say in published specifications (apparently it's 12 MB on the cDAQ wireless chassis).

    The large number of events that are triggered when you start the task is the buffer is filled at startup (if the on-board buffer is almost full, the driver will send more data — you end up with several periods of your waveform output in the built-in buffer memory).  So in your case, 752 events * 2000 samples/event * 2 bytes per sample = ~ 3 MB of buffer memory allocated to your task AO.  I guess that sounds reasonable (again would really a spec or KB of...) I don't know how the size of the buffer is selected).

    The grouping of events is due to data sent in packages to improve efficiency because there is above with each transfer.

    The large buffer and the consolidation of the data are used optimizations by NOR to improve flow continuously, but can have some strange side effects as you saw.  I might have a few suggestions if you describe what it is you need to do.

    Best regards

  • Ignoring the buffer overflow

    Is there a way of 'ignore' the buffer overflow error and leave the buffer to be overwritten without having to close and the process of acquisition and retune the radio report?

    I know that the first question is: "are you * sure * you do not want to do? '... But yes, I'm sure!

    ---

    Brandon

    Hey Brandon,.

    I'm glad you asked on this subject!  We have just posted our latest driver OR USRP, version 1.3.  You can download it here:

    http://www.NI.com/download/NI-USRP-1.3/4711/en/

    One of the features of this driver is a new node property that allows you to cost overruns and overflows as warnings rather than errors.  "You can find the Configuration property' advanced search ' WARNING policy.  Then, you can wire the constant return warnings:

    Please note, after updating your driver, you must also update the FW and FPGA on your USRP image.

  • Size of the buffer of size/write DAQmx

    What is the strategy privileged in regards to writing data in the buffer output for a digital output or analog DAQmx?

    I ask this because in the old days pre-DAQmx, you were supposed to flow of data in the buffer in buffer half lengths, so you would write buffer_len samples on the first entry, begin the proofreading work then write half puts in memory buffer on subsequent writing, the idea being that you write half a buffer while the output card has been reading of the other half.

    It doesn't seem to be something to indicate this technique is even longer when you use DAQmx, but he still linger of links that mention the teqchnique.

    What is the way NOR recommended, and if it has changed, why?

    Thank you

    Hi ToeCutter,

    Currently there is no need to think about buffers at a level very down the DAQmx digital to analog output.

    DAQmx handles it for you as soon as you call the function "Write DAQmx".

    You can provide data to write DAQmx in a variety of forms (from waveforms and ending with the raw data).

    It may be different depending on the application.

    Please take a look in the manual of DAQmx writing VI:

    http://zone.NI.com/reference/en-XX/help/370469AA-01/lvdaqmx/mxwrite/

    Kind regards

  • Current playback position exceeds the buffer size? VB6 with NIDAQmx 9

    I have an application written in VB6 that does HAVE and AO, with both using the Ctr0 internal as the clock to check that they are in sync.   It seems to work very well.  I use a USB-6212 and a recent version of NIDAQmx.

    I am tracking the current playback Position by calling DAQmxGetReadCurrReadPos_VB6 in the EveryNCallback routine.

    Strangely, the value for each call correctly increases the number of returned samples (for example, 128), but instead of round package when it reaches the upper limit of the buffer (for example 16 * 128) it keeps growing to infinity.  No error is reported by the call to DAQmxGetReadCurrReadPos_VB6 or anything else.

    Am I misunderstood something?  This function seems to be to just return the total number of samples read, not the position in the buffer.

    What I expect the value of the current to be playback Position:

    128, 256, 384, etc..  the limit of the buffer for example 16 x 128 = 2048 how he could start over at 1 (or zero depending on the way which you set up your berries).

    Van

    Hi afmstm,

    The behavior you're seeing is indeed good, and I agree that the description that it is misleading.  The current description says:

    "In the samples per channel, shows the current position in the.
    buffer.

    The description should be interpreted as:

    "In the samples per channel shows the current position the acquisition."

    So yes, for a relative position within your stamp, you must perform a modulo operation.

    That being said, it's not the same thing as 'total number of readings/a. Since the beginning of the program' as you say.  This would be the attribute Total of samples by acquired chain .  It is rarely a chance where these two alignment attributes.  For example, to read N samples successfully the following must be satisfied:

       Total samples by acquired channel - current read Position = N

    Another distinction is that you, the user can change the current Position of playback using the properties relative to and Offset .  By default you will read from the current playback Position , which creates the behavior your described.

    I know it can be confusing, but this level of manipulation of streaming is a very advanced concept of DAQmx.  Let me know if this raises questions or concerns more!

  • The data read into the buffer HAVE lack samples at the beginning

    I use a box USB-6251. The program implements two channels of AI (read I and Q) on a single task and one channel on another task. The channel uses the ai\SampleClock as its clock, so that both are synchronized. C creates a digital pulse periodic rising edge (a clock basically) which is used as a trigger on an external function generator. The signal from the unit after going through some material, external signal processing is ultimately what is read by the channel of GOT it.

    We know from the relevant signals, they seem to be correctly synchronized scope. IE, the analog signal to read arrived on the channel of the AI of the acquisition of data more or less instananeously when the trigger is activated. If there is a delay, it is of the order of microseconds.

    However, when I read in the buffer of HAVE (repeated FiniteSamples), waveform, I always come back has a section of samples at the beginning that seem to be returned of the first actually read data-point (see attached image). This delay is of the order of milliseconds (it varies with each series).

    I want to totally eliminate this delay. The signal should be a sinusoid which begins to sample 0 and is continuous through until the last sample read.

    I put the code below.

    Installation program:

    Create analog read the task
    analogReadTask = new Task ("analogReadTask");

    Create the virtual channel for the component I
    analogReadTask.AIChannels.CreateVoltageChannel (initParams.AddrI.ChannelAddress, 'I', AITerminalConfiguration.Differential,-4, 4, AIVoltageUnits.Volts);

    Create the virtual channel for the Q component
    analogReadTask.AIChannels.CreateVoltageChannel (initParams.AddrQ.ChannelAddress, 'Q', AITerminalConfiguration.Differential,-4, 4, AIVoltageUnits.Volts);

    To set the clock for the analog readings
    analogReadTask.Timing.ConfigureSampleClock (string. Empty, initParams.SamplingRateHz, SampleClockActiveEdge.Rising, SampleQuantityMode.FiniteSamples, Totalechantillons);

    Create the mult-channel drive
    analogReader = new AnalogMultiChannelReader (analogReadTask.Stream);
    analogReader.SynchronizeCallbacks = false;

    pulseWriterTask = new Task ("pulseWriterTask");

    Creating a digital output channel that provides the trigger to the U/S system
    pulseWriterTask.DOChannels.CreateChannel (initParams.AddrUsTrigger.PortLineAddress, "US trigger", ChannelLineGrouping.OneChannelForEachLine ");
    pulseWriterTask.Timing.ConfigureSampleClock ("/ SampleClock/AI/Dev1", initParams.SamplingRateHz, SampleClockActiveEdge.Rising, SampleQuantityMode.ContinuousSamples, samplesPerPulse);
    pulseWriterTask.Stream.Buffer.OutputBufferSize = samplesPerPulse;
    pulseWriterTask.Stream.WriteRegenerationMode = WriteRegenerationMode.AllowRegeneration;

    pulseWriter = new DigitalSingleChannelWriter (pulseWriterTask.Stream);

    pulseWaveform = new DigitalWaveform (samplesPerPulse, 1, DigitalState.ForceDown);
    pulseWaveform.Signals [0]. The States [0] = DigitalState.ForceUp;

    analogReadTask.Control (TaskAction.Verify);
    pulseWriterTask.Control (TaskAction.Verify);

    From reading:

    analogReadTask.Start ();

    Start writing the digital pulse, however it will not start
    until the AI/SampleClock begins, so implicitly synchronizing the two tasks
    pulseWriter.WriteWaveform (pulseWaveform, true);

    analogReader.BeginReadWaveform (Totalechantillons, readerCallback, analogReadTask);

    Result (should be a sinusoid from end to end)

    Always seems to solve these problems, shortly after their validation.

    The problem has start the digital task AFTER the analog task. In the small delay between the two lines of code running, read analog had already begun, and so some of the impulses of the AI/SampleClock were missed by the task. The order of departure between the two tasks of switching solves the problem.

  • the buffer copied into the buffer entry with Rs232

    Hello

    I have a problem with serial port and do not know what to think

    I send commands to a device (hmp231) and when I read the message on the entry stamp I retrieve the command

    only one thing that I've ever met, it would be a coding error? everybody respected this disorder?

    I thought that it could be specific to the device, but when you use hyperterminal just retrieve the response with the command...

    Concerning

    Tinnitus

    Your instrument has an echo, but then it should also be the case in hyperterminal or you have set the hyperterminal do echo off the coast.

    Or fill you the buffer via a shiftregister yourself. Please send the vi that you use to check this.

  • have I not the buffer in the right place

    I need to know if I have the buffer in the right place. I don't get the right buffer size when I use it on an other vi.


  • Range the range must belong to the size of the buffer.

    Hello

    I'm pretty stumped on this problem. I have a chart with a picture of Chartcollections. The tables are filled in at the same time. Sometimes, quite randomly, I get this exception. In this case, I had three parcels posted:

    System.ArgumentOutOfRangeException was unhandled
    HResult =-2146233086
    Message = range slice must belong to the size of the buffer.
    Parameter name: length
    Real value was 3.
    Source = NationalInstruments.Common
    ParamName = length
    StackTrace:
    to NationalInstruments.Restricted.Guard'1.Satisfies (Boolean condition, Func 4 exceptionCreator, String format, Object [] args)
    NationalInstruments.Restricted.NIValidation.IsInRange [T] (1 keep, Boolean isInRange, format String, Object [] args)
    to NationalInstruments.DataInfrastructure.Primitives.RawDataStore'1.Slice (Int32 startIndex, Int32 length)
    to NationalInstruments.DataInfrastructure.Buffer'1.Slice (Int32 startIndex, Int32, Func 2 traitFilter length)
    to NationalInstruments.DataInfrastructure.Buffer'1.NationalInstruments.DataInfrastructure.IBuffer.Slice (Int32 startIndex, Int32 length)
    at NationalInstruments.Controls.Internal.DefaultAdjusterStep.a (IDictionary 2 A_0)
    at NationalInstruments.Controls.Internal.DefaultAdjusterStep.c (IDictionary 2 A_0)
    at NationalInstruments.Controls.Internal.DefaultPipelineDataProcessor.a (DefaultDataItemDescription [] A_0)
    at NationalInstruments.Controls.Internal.DefaultPipelineDataProcessor.a)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall (Int32 numArgs, delegate callback, object args)
    to the millisecond. Internal.Threading.ExceptionFilterHelper.TryCatchWhen (Object source, method Delegate, Object args, Int32 numArgs, delegate catchHandler)
    at System.Windows.Threading.DispatcherOperation.InvokeImpl)
    at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext (Object state)
    at System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Windows.Threading.DispatcherOperation.Invoke)
    at System.Windows.Threading.Dispatcher.ProcessQueue)
    at System.Windows.Threading.Dispatcher.WndProcHook (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & handled)
    to the millisecond. Win32.HwndWrapper.WndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & handled)
    to the millisecond. Win32.HwndSubclass.DispatcherCallbackOperation (Object o)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall (Int32 numArgs, delegate callback, object args)
    to the millisecond. Internal.Threading.ExceptionFilterHelper.TryCatchWhen (Object source, method Delegate, Object args, Int32 numArgs, delegate catchHandler)
    to System.Windows.Threading.Dispatcher.LegacyInvokeImpl (priority DispatcherPriority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
    to the millisecond. Win32.HwndSubclass.SubclassWndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
    to the millisecond. Win32.UnsafeNativeMethods.DispatchMessage (MSG & msg)
    at System.Windows.Threading.Dispatcher.PushFrameImpl (DispatcherFrame frame)
    at System.Windows.Threading.Dispatcher.PushFrame (DispatcherFrame frame)
    at System.Windows.Threading.Dispatcher.Run)
    at System.Windows.Application.RunDispatcher(Object ignore)
    System.Windows.Application.RunInternal (window)
    System.Windows.Application.Run (window)
    at System.Windows.Application.Run)
    at MyProject.FinalTest.Specific.GUI.App.Main (c:\Sandbox\Specific2\MyProject.FinalTest.Specific.GUI\obj\Debug\App.g.cs:line 0)
    at System.AppDomain._nExecuteAssembly (RuntimeAssembly assembly, String [] args)
    at System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args)
    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly)
    at System.Threading.ThreadHelper.ThreadStart_Context (Object state)
    at System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Threading.ThreadHelper.ThreadStart)
    InnerException:

    I don't know even where to start looking! Can someone please give me some advice? Thank you!

    I found the problem!

    I had a timer by calling the method, which has updated the plots of a queue. If there is too many signals, emptying of the queue can take longer than the next call timer, and two threads try to access the graphics paralel. I know that set the idle timer for the queue reading and turn it on after and looks of problem solved!

    Thanks for the idea of bouncing, that's the direction I had to start looking!

  • Problems with emptying the buffer for profile motion; Errors-70061-and-70137

    I'm trying to generate a movement code that synchronizes a motion profile with data acquisition using breakpoints; the VI (joint) is loosely based on the 25229.vi provided on ni.com.  I use a PXI-7354 controller and running Labview 2011.  I can run the VI once (successfully), complete the desired query, trigger the breakpoint and take data with no error message.  Then if I try to run the same VI immediately after, the engine will move only steps 5 and 6 and then stops. No data is collected, and no error message is displayed.  Then when I run it it a third time, movement and data acquisition complete, but I get error messages in the clear Buffer.vi saying that the buffer is used (error-70061).  I also have error-70137 to the CheckBuffer.vi, which I think is because it is still monitoring the buffer after the failure of the ClearBuffer.vi.

    Do I need to include a clearing of additional buffer somewhere initialization?

    Thank you

    Matt

    Hi MattCS,

    I think you see this undesirable behavior because you are not initializing your shift registers. Data of your last run are still saved in your shift registers so the next time you run it will start where it left off. So if you press stop during execution of the time VI the first it stops and everything works, but then the second time you run the VI the loop will stop after its first iteration since its listing, the old value of the shift register. Also if you ever get an error in the while loop will continue to be there every time that you run the VI. Please try the changes circled in the picture below and see if that helps.

    Tim O

Maybe you are looking for

  • Change of existing network name and password for my WNR 2000

    Hello When I had no internet connection and tried to connect to my normal connection, I was unable to find it anywhere. I muddled around until I tried to connect to a network and it take me through the steps that set up my router with a new name and

  • Operating temperature

    Hello What is the temperature of operation for the myRIO? Can be used in sous-zero temperatures (-20 C, 0C)? The plan is to use it to record temperatures in a cold laboratory to calculate the heat loss. I found the following specifications in the use

  • Automotive diagnostic command Api DLL File set

    Hello I am new to this community and have just one simple question.I installed the OR Automotive Diagnostic Command Set and activated online. I need some funktions in the .NET Framework and so I need the NIdiagCS.dll but I can't. Can someone tell me

  • printer door/door open, cannot print / photosmart D110 Windows 7

    I have a photosmart D110a all in one series printer... Won't let me print the hp window informs you that the lid is open... Not the case... Door open/closed several times, turned the computer off & several times, actually a restart the computer & pri

  • error code (80070718)

    just replaced a power supply after several months down... now try to update... only able to install some updates after rebooting several times... always get this error code-80070718.