Reference queue on a DVR?

Hi all

I'm trying to track down a bug in my code without success (so far). I tried to check if my problem is caused by a 'feature' in LabVIEW, while I continue to tear (whats left of) my hair...

Here's what I do:

  • I create my "lines of communication" in my toplevel vi. This is nameless. My toplevel vi is a queue-based state machine. I use OO by reference. The place where I kept my reference is object > DVR > Cluster > queue reference.
  • With the help of the toplevel.vi I run a user interface. I do this using static reference VI > SetVal passes the value of the object/DVR to the UI, then > Run (wait til done wrong) to start the user interface.
  • And here's the problem: when put an element in the queue of the toplevel state machine using the user interface, it is not received by the toplevel state machine.
  • Here's what I looked at in an attempt to find out what the problem
    • The element is placed in the queue without error
    • The references are valid
    • This I noticed is that when I probed the hexadecimal numbers of reference are different - my understanding created a new reference queue by name would give two different references to the same queue in memory (and so they must be closed). But in my case I just create a reference to the queue, put it in my DVR and remove necessary... so, what are the different values?
    • I already used this same architecture in this project, but in this case I did not have references to queue on the DVR - instead I opened new references by name whenever I shared between modules. It worked well... but I'd rather do not restrucutre my code if I can avoid it!

If anyone can offer any suggestions that I can check or even if it is a 'feature' that has developed until I'd appreciate your feedback,

Thank you

Dave

I have it... I produced a second reference to queue and too wrote the original - this update the DVR, but not the queue of State machine. Rookie mistake - doh!

Tags: NI Software

Similar Questions

  • Reference the queue and sub - VI

    Hey everybody.

    Hope you can help me once again. What I need is actually advice, because my code works, it's just that the examples I see around the internet reminds that I could do better.

    So I use QMD inspired by the very nice guide to http://expressionflow.com/2007/10/01/labview-queued-state-machine-architecture/. My question is how to create queue references so that the queue name in the beam by name. The only way I can make it work is by using the function queue to get then turning the queue to a package by name, with this strategy than the unbundle name said only: "queue outside. See attachment (1 VI and two typedefs that are required for the VI to run). Since I have 5 different queues it is tedious to remember in what order I closed the...

    In addition, in my example I didn't a sequence around my Subvi as they do in the guide. Just because my code works fine without. Can someone explain the usefulness of the structure of sequence?

    I hope you can help

    Atamsih

    Hello

    I couldn't open your VI I did not LV 2011. However, I checked the image you posted.

    some of the answers for you:

    the structure of sequence around the slot screws (bottom of photo) is to ensure that the two sub start screw chasing the value False is written in the local output variable. in other words, when the output is initialized with the value false, the while loop and two void screws begin to run.

    to get the names of queue in the cluster, the name just constants reference queue to the function of bundle with the names you want

    to get the structure of package on the front right of the image, simply create constants of all the items you want to group and wire bundle as

  • Issue of happy with DVR

    Recently, I changed a class that uses a single item queue (SEQ) to store data to use a digital recorder. The change was necessary because there was a chance when empty data may be returned using the SS. Anyway, all that was done was to replace a dequeue/queue with a DVR reference. This construction is used in the methods in the class. Performance was good with the SEQ, but he got the bug mentioned above. Replace all with the DVR as shown on the attached photos.

    Updated the code:

    Original code:

    This class is used to store and manage message to a messaging system links. After changing the e-mail system seems loose roads so that the performance of the system has declined. This decline in performance is not acceptable. However, I'm not sure why it does not work as expected. Any thoughts would be appreciated.


  • Queues of LabVIEW and TestStand

    Hello

    I have a VI that uses several loops/queues to acquire data from a data logger and write the data to a csv file.

    What I want to do is start this TestStand VI and run data acquisition/writing until certain conditions require the data logger to be returned to power.

    Is it possible to pass a reference to the queue of the VI running somehow to TestStand and update the queue of TestStand to stop/start datalogging necessary?

    Maybe there's a better way to do it?

    Any help is greatly appreciated!

    Thank you best regards &,.

    Shane.

    TestStand access not directly a queue in LabVIEW.  TestStand and LabVIEW do not share an instance of the application.

    I Assume you called the QMH asynchonously so that the Launcher ends while the QMH continues to run

    Pass the reference queue to TestStand (U32) and call a specific "Enqueue for MySpecific Queue.vi" LabVIEW Module with the appropriate ref and data.  All this presupposes the QMH remains in memory.

    This example gets to be excessively complex, so I tend to use the Action with TestStand engines.  Loading and unloading options need attention though as long as the shift register (and, therefore, private data) leave no memory until you want to close the three-year

  • Publish a queue using the shared variable

    I have a 2D table queue and I would like to publish (the reference) in a shared variable, so that I can pay the items in the queue in an another vi. I tried to create a queue control and used the custom of the shared variable control option, but it gives me an error "invalid data type.

    You try to read from the queue to another computer? Passing the reference to the queue on the network to a another computer will not allow the application to read data from the queue. The queue data is stored only locally.

    I honestly don't know why you get an error trying, however. Other options to access a queue in the world on the same machine are to use a Global Variable, rather than a shared Variable, or to get your reference queue by using a well-known name who know the other parties of the request.

  • queue connection create a Subvi

    Hi, I need to know how the queue can be used to input and output terminal during the creation of a new sub - VI.

    I need to replace a loop by its equivalent scheme in a sub - VI I create, don't know how to include the line between this line and the other loops in the design of Subvi.

    You have the queue in your Subvi thread now?

    Right-click on the reference queue thread and select Create control.  This will create a front panel control, you can join the connector pane to get the reference of the queue.  If you do the same thing and select Create indicator, you can connect this indicator to the connector pane to move the back reference queue.  Of course the wire to the top of the control and the indicator is appropriate in the Subvi.

    If this isn't answering your question, thank you post your VI so we know what you're talking about.

  • reentrant VI copies the entire structure VI (of Subvi) when it is called?

    Hello world

    I would ask each of you about the reentrant VI.

    I have a VI (Thread.vi), which is set to reentrant (Preallocated clone reentrante execution) that is called from the main vi using the method run a VI. Reference of vi is open with all of the option 0 x 8.

    When I call the Thread.vi, the original vi clone is created.

    My question is, when the clone of the first level vi (Thread.vi) is created, all the Subvi contains the Thread.vi is also the Subvi originally clones?

    Going to queue named in the Thread.vi when it is called by using the control property value node and using this queue within the Thread.vi (in sub - VI) to control the Thread.vi.

    My problem is that when two clones are created, I can run, stop, and close the two together. But when I want to close the second clone, the Dequeue function reference to queue the first clone. I do not understand what the queue has been obtained with the name in the main vi and spent in the clone of Thread.vi. When I want to close the first clone, it works as it has reference to the appropriate queue.

    I thought that LabVIEW creates entire hierarchy of the Subvi the reentrant VI so when it is called.

    Thank you for your answers and help.

    Tukan

    I'm using LabVIEW 2014 32 b, Windows 7

    You use named queues, so unless you call your clones several times (rather than, say, calling a clone and get running code in a loop for a "long time"), I would recommend not worrying to pass a reference queue for the Clone, but rather the name of the queue.  Get the Clone of its own queue - if the hand is already done, get queue of the Clone will not allocate a new queue, but returns the reference to the queue already created.

    Screws that are used by the Clones can be "specific clone" (if they are, themselves, marked as Reentrant) or 'universal' and shared by all of the Clones.  There is really nothing wrong with that, as long as you realize that while A Clone uses void-VI X, Clone B will be "blocked" when it tries to use the Subvi, if you want to run in a mode of the Subvi '-and-out ", without blocking.  In particular, not to put any function, for example a Dequeue, who must wait in a common Subvi.

    Bob (who has learned this "rule" with the sad experience) Schor

  • How to get the items on a loop at the same time during the execution of the loop for

    Hello

    I am a student. I would like to know how to get the outside loop counter values For in parallel so that the loop runs rather than obtaining the value finally outside the loop for future prospects for the answers.

    Thank you

    Frederick

    You already said yes, and you have said some of the different ways (registrants, locals, reference, queue, etc.). Since the information was provided to your request, the thread can be considered closed? If you want details about how to implement something, you must provide the details on what you are doing.

  • Subgroup of experts can pass events to the top-level event loop?

    I'm working on a VI that may have up to 1000 controls (Yes, she really need that much).  To reduce the size of the user interface and increase the modularity of code, I partitioned design into subgroups that are loaded in tabs.

    Subgroups are responsible for:

    "VI reference to open"--> "invokes the method: Run VI '--> ' invoke the method: Insert VI»

    (Sorry, I don't know how to incorporate images here, yet)

    The upper level has some of its own controls in addition to the case of the Sub-group of experts, and it will be built on the design of producer-consumer model.  The loop of consumer manages the interaction with the hardware (write-only).  Each sub-group of experts will also have its own event loop to manage coordination of the user interface within the Sub-group of experts and also a preprocessing of data that results from the activity of the user within the Sub-group of experts.

    Here's the problem: go in the subgroup of experts, how do I pass an event up to the top-level event loop so that the hardware access request can be entered into the queue of the consumer?

    At first it seems I could solve this problem in two ways:

    (1) rather than to use an Invoke node to insert the Sub-group of experts, is it possible to connect the frame of the Sub-group of experts against a VI that is instantiated in the block diagram?   If there is, I can simply use dataflow to bring jury secondary to the upper level events.   But for now, it seems there is no way to have a subgroup of experts except by using the Invoke node.

    2) there is another way, that we have found, but this is an ugly hack. The reference to the 'Open VI' VI using, I use ' call method: control value: Get.  Gives me the value of a control in the Sub-group of experts, but there is no case of signaling, so I have to resort to polling stations, which slows down the user interface and breaks the model "Event Loop".

    Y at - it of other ideas for how to get events from the Panel under treaty to the next level?

    (of course, this isn't * all * the events we manage.)  The Sub-group of experts will actually a pre-treatment and then send only the selected events to the highest level user-defined)

    Thank you and best regards,

    J.

    I have not used the secondary method before, so I can't save what I think with real experience.

    But,

    If the Subvi who is put in a secondary control on front panel for a queue reference, I think you'd be able to do the Invoke node to set the reference queue control before calling the functioning of the VI.

    The other idea would be do not to have a reference of queue control to pass.  But use named queues and leave the Subvi in high school to create its own queue reference based on the same name that was created in the main VI.  When it ends, it could destroy its unique queue reference and not to force a destroy all and reference to the queue in the main VI would still be a queue works valid waiting for an another sub - VI at the secondary level to generate his reference to the same queue and sends the data in.

  • Boolean and door - false logic where T + T = F?

    Hello

    I did a VI who somehow gives me an invalid output of an and gate? where T + T = F

    The door controls execution of a while and loop. The local variable is written on one are all loop on "full implementation" of a VI express sigexp

    I thought dataflow in this door would mean that the output should update every time that the inputs to the and the door have been updated?

    Excerpt from VI:

    Any guy of pointers?

    See you soon,.

    Paul

    What sensors look like if you put a breakpoint on the wire just before the machine stop?

    or what happens if you put a structure to sequence around the local variable and AND operator, then the local variable does not play until the PDM code finishes?

    You should know that you shouldn't stop your consumer loop using a local variable at all. This above race condition occurs each time because the real value is not get read in until the next iteration after you press stop, how have no new incoming data. If you close your reference queue after the loop of producer, your consumer loop will throw an error and you can trigger stop the loop in this way.

    Never use the size of the queue of zero to stop the loop either because then you'll never be able to use the timeout feature. If it ever expires, it stops the loop.

    Here's what happens:

    1. Local var Stop false reads in the loop of consumption
    2. Dequeue wait given coming function
    3. The user presses Stop
    4. Producer enqueues loop last data value and stops
    5. Consumer loop removes the last data value, displays a real
    6. AND the operation with the value False that remained in the local variable datawire-> set to False to stop
    7. Next iteration of loop of consumer
    8. Var local Stop reads true loop consumers within the same second as the end of the previous loop iteration
    9. Dequeue function sitting for-ev-er because no new data will be
  • data collection ignores every 0.5 seconds

    Hello

    I use a NI9205 to collect four different load values outputs plus a NI9236 for several values of deformation using the attached VI. For some reason, during check-in for several more seconds, I noticed that the charges on the 9205 jump a single data point every 0.5 seconds. I have a frequency of 100 or 200 points per second recording, but the question is when I try to plot these data. The following values are moving in where gaps should be, so the end of 3 executed same second, the values of load and strain are off by 6 hundredths of a second. When I export the data to an excel file, load values cascade not upward, but variances are always a problem, because they are visible on the drawn line graphs. I know that's not a problem with data acquisition, because I ran a similar program in DasyLab who had no problem jumping of data, but it only happens with the 9205 (not the 9236), so I'm confused here.

    Any help would be appreciated!

    Save the sass, we're all just here to help

    hhart, your loop of consumers is directly dependent on your loop producer via the reference queue and cluster of error. In other words, that they will not work in parallel, since the consumer loop will wait for the loop of producer to stop before handling the queue.

    Here's how the producer/consumer with a queue should look like:

    Programming LabVIEW is based entirely on the data flow and parallelism. It is incredibly powerful and has led to its success over the years (coupled with graphical programming), but is usually one of the first things the new developers stumble on. This is a simple resource to familiarize themselves with its functioning. The function to highlight execution is a great way to watch how your application uses data streams.

  • How to fix and debug an error of access violation.

    Hello

    I'm stuck with an access violation error that requires my exe to stop construction. I tried also to the development environment, but it's the same here. The error occurs after 5-60 minutes.

    I played a bit with the disabling of a portion of the program where it was possible and I think that I am now able to accuse the vi 'gastimer.vi '. But since this vi leads through the measurement procedure, there are some commands coming out which I was not able to map one to one.

    My question is: what are the causes access violation errors? I have no call from dll, no third-party library, the communication of material is made series of COM ports. The principle of the architecture is something adapted from producer to consumer loop, except that I often have more than one consumer, so I called them like loop controller - multiple tasks. Communication within this loop (tasks) are by cluster queue enumerator with a Variant.

    Indictments vi 'gastimer.vi' is passed an older and simpler architecture. This vi works with the structure of sequence and a large number of local variables.

    Since I test the sensors on their reaction to the concentration of gas I have 10 agrees to which I am listening at the same time.

    What styles or architecture are subject to access violations? Where can they go? where should I look more carefully in the code?

    How can I use the desktop execution trace toolkit for more information on the cause of access violation?

    Attached are two different lvlog, but I guess having the same source of error. In the second lvlog are two named vi. What do have to do with the access violation error? Can what information I get these files lvlog?

    Last attachment shows a fatal runtime error that happens quite a bit frequently in the recent time when working with this project. Could there be a connection, probably a vi crashed, typedef or something else?

    Thanks for any help

    U. Siegenthaler

    I solved the problem. The accident moved no more.

    I found a bug in my queue reference interview. I have a record where can I register reference queue and remove them again of this register. The bug was that under certain conditions, I deleted the reference of the bad queue from the registry. This bug had to the fact that there was a reference to queue in the registry that should have been removed. The application now tried to place an element in this Ref queue where, at the same time elsewhere in the application process tried to release this reference to queue. Apparently, if these two events occure at the same time, or when a synchronization that gives an access violation crash.

    My suggestion for all of you with an access violation crash: take a look at your reference to queue maintaince and check if you publish queues at the same time you're items from the queue.

    Best regards and thanks for the help

    URS

  • Developer SQL blocks every time when saving

    Hello, I am using SQL Developer for the last 6 months on the same project, and just recently, I started running into this question.  Everytime I go to save the entire application crashes and this happens without worrying if I use the shortcut (ctrl + s) or click on the button Save real.  I have this problem consistantly when recording, but it will also happen occationaly when I open a menu, compilation or perform a specific function.  I have tried different ideas to solve the problem as the increase in the value of Xms, disable some preferences, used different java sdk, updated and re-installed but nothing has changed.  My friend who did the same as me is having no problem.  Is there anything I can delete temporary data that could help with this?  I've been looking at other positions, but the only one I've seen that's similar to me is not answered and some points in a similar position, but unanswered, Re: Developer SQL does not is this post.

    Here is my error report, it is bigger than my buffer allows then it is cut in the upper part.  I'm working on getting all of this, I just wanted to post this in the meantime.

    Thanks for any help.

            at org.openide.util.RequestProcessor$TickTac.obtainFirst(RequestProcesso
    r.java:2267)
            - locked <0x00000000ce163850> (a java.lang.Class for org.openide.util.Re
    questProcessor$TickTac)
            at org.openide.util.RequestProcessor$TickTac.run(RequestProcessor.java:2
    243)
    
    
    "Active Reference Queue Daemon" daemon prio=2 tid=0x000000000a62b800 nid=0x2184
    in Object.wait() [0x000000000b87f000]
       java.lang.Thread.State: TIMED_WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            - waiting on <0x00000000d2594818> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
            - locked <0x00000000d2594818> (a java.lang.ref.ReferenceQueue$Lock)
            at org.openide.util.lookup.implspi.ActiveQueue$Daemon.run(ActiveQueue.ja
    va:180)
            - locked <0x00000000d2594818> (a java.lang.ref.ReferenceQueue$Lock)
    
    
    "TimerQueue" daemon prio=6 tid=0x000000000a5ed000 nid=0x219c waiting on conditio
    n [0x000000000b67f000]
       java.lang.Thread.State: TIMED_WAITING (parking)
            at sun.misc.Unsafe.park(Native Method)
            - parking to wait for  <0x00000000ce164458> (a java.util.concurrent.lock
    s.AbstractQueuedSynchronizer$ConditionObject)
            at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226
    )
            at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
    .awaitNanos(AbstractQueuedSynchronizer.java:2082)
            at java.util.concurrent.DelayQueue.take(DelayQueue.java:220)
            at javax.swing.TimerQueue.run(TimerQueue.java:171)
            at java.lang.Thread.run(Thread.java:745)
    
    
    "AWT-EventQueue-0" prio=6 tid=0x000000000a3b3000 nid=0x2198 waiting on condition
     [0x000000000ad7a000]
       java.lang.Thread.State: TIMED_WAITING (parking)
            at sun.misc.Unsafe.park(Native Method)
            - parking to wait for  <0x00000000d353fcf0> (a java.util.concurrent.lock
    s.ReentrantReadWriteLock$NonfairSync)
            at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226
    )
            at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared
    Nanos(AbstractQueuedSynchronizer.java:1033)
            at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireShare
    dNanos(AbstractQueuedSynchronizer.java:1326)
            at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.tryLock(Re
    entrantReadWriteLock.java:873)
            at oracle.javatools.buffer.JdkReadWriteLockImplementation.lock(JdkReadWr
    iteLockImplementation.java:189)
            at oracle.javatools.buffer.JdkReadWriteLockImplementation.readLock(JdkRe
    adWriteLockImplementation.java:94)
            at oracle.javatools.buffer.ReadWriteLock.readLock(ReadWriteLock.java:192
    )
            at oracle.javatools.buffer.AbstractTextBuffer.readLock(AbstractTextBuffe
    r.java:948)
            at oracle.javatools.buffer.ReadTextBufferDecorator.readLock(ReadTextBuff
    erDecorator.java:126)
            at oracle.javatools.editor.BasicDocument.readLock(BasicDocument.java:442
    )
            at oracle.javatools.editor.folding.DefaultCodeFoldingModel.readLock(Defa
    ultCodeFoldingModel.java:198)
            at oracle.javatools.editor.folding.CodeFoldingMargin.paintComponent(Code
    FoldingMargin.java:855)
            at javax.swing.JComponent.paint(JComponent.java:1054)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JViewport.paint(JViewport.java:731)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at org.jdesktop.jxlayer.JXLayer.paint(Unknown Source)
            at org.jdesktop.jxlayer.plaf.AbstractLayerUI.paintLayer(Unknown Source)
            at org.jdesktop.jxlayer.plaf.AbstractLayerUI.paint(Unknown Source)
            at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
            at javax.swing.JComponent.paintComponent(JComponent.java:778)
            at org.jdesktop.jxlayer.JXLayer.paint(Unknown Source)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at org.netbeans.swing.tabcontrol.TabbedContainer.paint(TabbedContainer.j
    ava:994)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at org.netbeans.core.windows.view.ui.MultiSplitPane.paint(MultiSplitPane
    .java:341)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at org.netbeans.core.windows.view.ui.MultiSplitPane.paint(MultiSplitPane
    .java:341)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at org.netbeans.core.windows.view.ui.MainWindow$1.paint(MainWindow.java:
    179)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            - locked <0x00000000ce717a18> (a java.awt.Component$AWTTreeLock)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintToOffscreen(JComponent.java:5219)
            at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManag
    er.java:295)
            at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
            at javax.swing.JComponent._paintImmediately(JComponent.java:5167)
            at javax.swing.JComponent.paintImmediately(JComponent.java:4978)
            at javax.swing.RepaintManager$3.run(RepaintManager.java:808)
            at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo
    main.java:76)
            at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
    
    
            at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)
    
    
            at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:7
    18)
            at javax.swing.RepaintManager.access$1100(RepaintManager.java:62)
            at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java
    :1677)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
            at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
            at java.awt.EventQueue.access$200(EventQueue.java:103)
            at java.awt.EventQueue$3.run(EventQueue.java:694)
            at java.awt.EventQueue$3.run(EventQueue.java:692)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo
    main.java:76)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
            at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQu
    eueWrapper.java:169)
            at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQue
    ueWrapper.java:151)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
    ad.java:242)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
    java:161)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:150)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    
    
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    
    
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    
    
    "AWT-Windows" daemon prio=6 tid=0x000000000a3ae000 nid=0x217c runnable [0x000000
    000ab1f000]
       java.lang.Thread.State: RUNNABLE
            at sun.awt.windows.WToolkit.eventLoop(Native Method)
            at sun.awt.windows.WToolkit.run(WToolkit.java:307)
            at java.lang.Thread.run(Thread.java:745)
    
    
    "AWT-Shutdown" prio=6 tid=0x000000000a3ad000 nid=0x2194 in Object.wait() [0x0000
    00000aa1f000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            - waiting on <0x00000000ce2bad18> (a java.lang.Object)
            at java.lang.Object.wait(Object.java:503)
            at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:296)
            - locked <0x00000000ce2bad18> (a java.lang.Object)
            at java.lang.Thread.run(Thread.java:745)
    
    
    "Java2D Disposer" daemon prio=10 tid=0x000000000a3ac000 nid=0x2190 in Object.wai
    t() [0x000000000a91f000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            - waiting on <0x00000000ce27f228> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
            - locked <0x00000000ce27f228> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
            at sun.java2d.Disposer.run(Disposer.java:145)
            at java.lang.Thread.run(Thread.java:745)
    
    
    "Service Thread" daemon prio=6 tid=0x0000000008a5c000 nid=0x2188 runnable [0x000
    0000000000000]
       java.lang.Thread.State: RUNNABLE
    
    
    "C2 CompilerThread1" daemon prio=10 tid=0x0000000008a5a800 nid=0x216c waiting on
     condition [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    
    "C2 CompilerThread0" daemon prio=10 tid=0x0000000008a55800 nid=0x2180 waiting on
     condition [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    
    "Attach Listener" daemon prio=10 tid=0x0000000008a54000 nid=0x1a24 runnable [0x0
    000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    
    "Signal Dispatcher" daemon prio=10 tid=0x0000000008a4d000 nid=0x21d8 waiting on
    condition [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    
    "Finalizer" daemon prio=8 tid=0x00000000089fd000 nid=0x21d4 in Object.wait() [0x
    0000000009d5f000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            - waiting on <0x00000000ce2bb4a8> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
            - locked <0x00000000ce2bb4a8> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
            at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:189)
    
    
    "Reference Handler" daemon prio=10 tid=0x00000000089f2000 nid=0x1dfc in Object.w
    ait() [0x0000000009c5f000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            - waiting on <0x00000000ce2bb630> (a java.lang.ref.Reference$Lock)
            at java.lang.Object.wait(Object.java:503)
            at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
            - locked <0x00000000ce2bb630> (a java.lang.ref.Reference$Lock)
    
    
    "main" prio=6 tid=0x00000000027eb800 nid=0x12ec waiting on condition [0x00000000
    00000000]
       java.lang.Thread.State: RUNNABLE
    
    
    "VM Thread" prio=10 tid=0x00000000089ee000 nid=0xf18 runnable
    
    
    "GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000002801000 nid=0xe38 runnable
    
    
    
    
    "GC task thread#1 (ParallelGC)" prio=6 tid=0x0000000002802800 nid=0x149c runnabl
    e
    
    
    "GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000002804800 nid=0x314 runnable
    
    
    
    
    "GC task thread#3 (ParallelGC)" prio=6 tid=0x0000000002806000 nid=0x1e88 runnabl
    e
    
    
    "VM Periodic Task Thread" prio=10 tid=0x000000000a268800 nid=0x218c waiting on c
    ondition
    
    
    JNI global references: 2254
    
    
    Heap
     PSYoungGen      total 209408K, used 104582K [0x00000000ef500000, 0x00000000ffb8
    0000, 0x0000000100000000)
      eden space 197632K, 47% used [0x00000000ef500000,0x00000000f4fc39f0,0x00000000
    fb600000)
      from space 11776K, 98% used [0x00000000fb600000,0x00000000fc15e118,0x00000000f
    c180000)
      to   space 34816K, 0% used [0x00000000fd980000,0x00000000fd980000,0x00000000ff
    b80000)
     ParOldGen       total 175104K, used 91643K [0x00000000ce000000, 0x00000000d8b00
    000, 0x00000000ef500000)
      object space 175104K, 52% used [0x00000000ce000000,0x00000000d397efd8,0x000000
    00d8b00000)
     PSPermGen       total 84992K, used 84957K [0x00000000be000000, 0x00000000c33000
    00, 0x00000000ce000000)
      object space 84992K, 99% used [0x00000000be000000,0x00000000c32f7468,0x0000000
    0c3300000)
    
    

    Finally figured it out, had to kill the session.  I am embarressed to say that I try to look at user sessions. When I did, I saw there were two for me, one normal and one that screwed up.  It took a few runs for nothing to take, but in the end, it worked, this link helped how kill/terminate a session in Oracle

  • AEs/Single/data queues the value element references

    I'll have my CLD exam in December, and I'm just trying to 'inflate' as much as info that I can of course of the forum, alongside the preparation of the material...

    I also started to read "nuggets" pleasant and interesting too, and I hope I can get clarification for some of my issues that have emerged. (Sorry if I have a question is too noobish, trying to practice for the CLD beside my regular daily workload, and I am a little slow thinker in the night )

    I use often FGVs (and ActionEngines) in my applications, and for some "surfing and learning' on the discussion forum, OR I found this post:

    http://goo.GL/Cz1d0p

    People here recommended that the OP could use screws of wrapper which method has 2 benefits, explained here:

    "Wrap".

    http://goo.GL/J4vEIE

    My 1st question:

    I'm not really sure of what means a VI wrapper? Is this a Subvi, where the certain Subvi AE is called dynamically? I couldn't find examples showing how do (I read the entire post, but the subsequent discussion was more about OBJECT oriented programming...)

    2nd question:

    In the second post of nugget of community, there are a few closing notes, one of them: "AEs do not need a while loop." I thought AEs must also use a shift uninitialized register to store information (such as FGVs), and I need a while loop to have the shift register... Isn't it?

    question 3:

    I fall into the usual dangerous trap, jumping through different related posts, and try to understand everything at the same time but I wonder if there is a kind of basic example, which shows the three solutions (ActionEngines, SingleElementQueue, refs value data) for the same task?

    Thanks a lot for the explanation!

    PS: Sorry for using google URL shortened, but the forum of the site gives me error (Please enter a valid url) when I try to paste the normal URL...

    Martins wrote:

    question 3:

    I fall into the usual dangerous trap, jumping through different related posts, and try to understand everything at the same time but I wonder if there is a kind of basic example, which shows the three solutions (ActionEngines, SingleElementQueue, refs value data) for the same task?

    The single line of the element should not be used anymore.  Its purpose has been simplified with the value of data reference.  The concept between the two is exactly the same (reference to a single piece of memory that is locked when read until edited and rewritten in it).  The DVR uses only the Structure of the elements in Place to include the action-Edit-reading where the SEQ relied on the writer is smart enough to actually write data in the queue.

    I like the Action engines.  They are simple and keep everything in one place.  Read you from a register of offset (or feedback node), do whatever it takes with it and rewrite in the shift register (or feedback node).  The fact that it is inside a non-reentrant VI acts as your lock.

    I personally only used once a DVR in a real project and it is only to take care of some composition in my-oriented configuration object (several necessary items to refer to another shared object).  Otherwise, he has been driving Action all the way for me.

  • Passing a reference to queue as a sequence with LabVIew API parameter

    Hello

    I'm running a sequence of Labview with the entryPoint.Run method.

    Now, I want to pass a reference to queue to TS for use as the parameter for a stage of the action (the action must information sent through this queue). I tried to move the queue as a parameter for the valVariant parameter of the object of Subproperty seuqence.

    LabVIEW throughs 1 error when I try to setValVariant.

    The reason why I want to do it is because I want to integrate the execution of the sequence in my draft framework for an actor.

    Is it better to move the refs to the queue as a reference to be able to send data to an application running?

    Thanks in advance

    Michael

    Hi Michael,

    It is not possible to use references of LabVIEW in TestStand queue, since they do not share the same instance of the application. You can pass a reference to queue as an integer (U32 or I32), but you can not use in TestStand.

    I found 2 ways for you to use:

    You can use the Action engines in LabVIEW to encapsulate the queue. There is some information about this option in this thread:

    Solved: queues of LabVIEW and TestStand - Forums of Discussion - National Instruments
    http://forums.NI.com/T5/LabVIEW/LabVIEW-queues-and-TestStand/TD-p/2554231

    However, with this option, you must make sure that the motor Action shift register leaves no memory

    .

    The recommended practice is to create the queue in TestStand using Synchronization Manager and then open this queue in LabVIEW. An example is available for this option:

    Using queues in LabVIEW - National Instruments TestStand
    http://www.NI.com/example/30108/en/

    I hope this information is useful for you!

    Alex

Maybe you are looking for