An "Empty" In Place Element Structure rather than using one Flat Sequence?

Altenbach's neat Idea here got me thinking of the various ways we do synchronization, and I sat down an In Place structure and thought, why not? It saves a "tiny" bit of space, but personally, I think it looks better - especially for the typical Delay-in-a-Box. Thoughts or caveats?
Richard

You could use a single run while loop, it'll be correct usage and look different.
I recently used that solution to get the 1st element of 5 arrays at once.
/Y 
LabVIEW 8.2 - 2014
"Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
G# - Free award winning reference based OOP for LV

Similar Messages

  • I have created a Muse site for a client that wishes to host with Business Catalyst. How do I publish the site with their account rather than using one of my free sites?

    I have created a Muse site for a client that wishes to host with Business Catalyst. How do I publish the site with their account rather than using one of my free sites? This is so I can keep my free ones for personal projects but also so they can pay for their own hosting. I am happy to set it all up for them but not sure what to do.

    Hi
    You can use their BC login details and use them , which on publish the site will be under their account.
    Please change the BC login from Edit > Preferences > Publish > Switch Accounts , for Mac it would Adobe Muse > Preferences
    Thanks,
    Sanjit

  • In-Place Element Structures, References and Pointers, Compiler Optimization, and General Stupidity

    [The title of this forum is "Labview Ideas". Although this is NOT a direct suggestion for a change or addition to Labview, it seems appropriate to me to post it in this forum.]
    In-Place Element Structures, References and Pointers, Compiler Optimization, and General Stupidity
    I'd like to see NI actually start a round-table discussion about VI references, Data Value references, local variables, compiler optimizations, etc. I'm a C programmer; I'm used to pointers. They are simple, functional, and well defined. If you know the data type of an object and have a pointer to it, you have the object. I am used to compilers that optimize without the user having to go to weird lengths to arrange it. 
    The 'reference' you get when you right click and "Create Reference" on a control or indicator seems to be merely a shorthand read/write version of the Value property that can't be wired into a flow-of-control (like the error wire) and so causes synchronization issues and race conditions. I try not to use local variables.
    I use references a lot like C pointers; I pass items to SubVIs using references. But the use of references (as compared to C pointers) is really limited, and the implementation is insconsistent, not factorial in capabilites, and buggy. For instance, why can you pass an array by reference and NOT be able to determine the size of the array EXCEPT by dereferencing it and using the "Size Array" VI? I can even get references for all array elements; but I don't know how many there are...! Since arrays are represented internally in Labview as handles, and consist of basically a C-style pointer to the data, and array sizing information, why is the array handle opaque? Why doesn't the reference include operators to look at the referenced handle without instantiating a copy of the array? Why isn't there a "Size Array From Reference" VI in the library that doesn't instantiate a copy of the array locally, but just looks at the array handle?
    Data Value references seem to have been invented solely for the "In-Place Element Structure". Having to write the code to obtain the Data Value Reference before using the In-Place Element Structure simply points out how different a Labview reference is from a C pointer. The Labview help page for Data Value References simply says "Creates a reference to data that you can use to transfer and access the data in a serialized way.".  I've had programmers ask me if this means that the data must be accessed sequentially (serially)...!!!  What exactly does that mean? For those of use who can read between the lines, it means that Labview obtains a semaphore protecting the data references so that only one thread can modify it at a time. Is that the only reason for Data Value References? To provide something that implements the semaphore???
    The In-Place Element Structure talks about minimizing copying of data and compiler optimization. Those kind of optimizations are built in to the compiler in virtually every other language... with no special 'construct' needing to be placed around the code to identify that it can be performed without a local copy. Are you telling me that the Labview compiler is so stupid that it can't identify certain code threads as needing to be single-threaded when optimizing? That the USER has to wrap the code in semaphores before the compiler can figure out it should optimize??? That the compiler cannot implement single threading of parts of the user's code to improve execution efficiency?
    Instead of depending on the user base to send in suggestions one-at-a-time it would be nice if NI would actually host discussions aimed at coming up with a coherent and comprehensive way to handle pointers/references/optimization etc. One of the reasons Labview is so scattered is because individual ideas are evaluated and included without any group discussion about the total environment. How about a MODERATED group, available by invitation only (based on NI interactions with users in person, via support, and on the web) to try and get discussions about Labview evolution going?
    Based solely on the number of Labview bugs I've encountered and reported, I'd guess this has never been done, with the user community, or within NI itself.....

    Here are some articles that can help provide some insights into LabVIEW programming and the LabVIEW compiler. They are both interesting and recommended reading for all intermediate-to-advanced LabVIEW programmers.
    NI LabVIEW Compiler: Under the Hood
    VI Memory Usage
    The second article is a little out-of-date, as it doesn't discuss some of the newer technologies available such as the In-Place Element Structure you were referring to. However, many of the general concepts still apply. Some general notes from your post:
    1. I think part of your confusion is that you are trying to use control references and local variables like you would use variables in a C program. This is not a good analogy. Control references are references to user interface controls, and should almost always be used to control the behavior and appearance of those controls, not to store or transmit data like a pointer. LabVIEW is a dataflow language. Data is intended to be stored or transmitted through wires in most cases, not in references. It is admittedly difficult to make this transition for some text-based programmers. Programming efficiently in LabVIEW sometimes requires a different mindset.
    2. The LabVIEW compiler, while by no means perfect, is a complicated, feature-rich set of machinery that includes a large and growing set of optimizations. Many of these are described in the first link I posted. This includes optimizations you'd find in many programming environments, such as dead code elimination, inlining, and constant folding. One optimization in particular is called inplaceness, which is where LabVIEW determines when buffers can be reused. Contrary to your statement, the In-Place Element Structure is not always required for this optimization to take place. There are many circumstances (dating back years before the IPE structure) where LabVIEW can determine inplaceness and reuse buffers. The IPE structure simply helps users enforce inplaceness in some situations where it's not clear enough on the diagram for the LabVIEW compiler to make that determination.
    The more you learn about programming in LabVIEW, the more you realize that inplaceness itself is the closest analogy to pointers in C, not control references or data references or other such things. Those features have their place, but core, fundamental LabVIEW programming does not require them.
    Jarrod S.
    National Instruments

  • Object and in place element structure

    Hi!
    I need some help!
    How can I do the following?
    In the 1.)  Set the new value here - make some changes takes effect the whole array, previously and take effect for the 2. wire?
    I have tried that in place element structure without any success.
    The reason is why I would like to do this is : I wanna avoid the always usage of get - set pairs when I am working with objects, tipically array of objects.
    so my goal is, how to see only 10 values in both arrays?
    My real problem is the following:
    I have an array with objects. The order of the objects is very important, can not be changed. I use a stack - algorithm on the elements. Randomly push many elements into the stack, and randomly pop them. When I pop, I wanna use a set-method on the object, (set something flag/property) . So I want this chage to take effect the memory .
    (If used a simle enable - indexing in the loop, I would lost the real order of the original array.)
    (maybe I can calculate the index of the element what I want to update, but I think there is more easier alternative to do that and I should use the get - set again...)
    +++ In God we believe, in Trance we Trust +++
    [Hungary]
    Solved!
    Go to Solution.

    The native LVOOP implementation is by-val and not by ref.as in most OOP implementations. If you are coming from an OOP background, think like: every time you branch a wire, it creates a clone of the object on the wire (or all the objects in the array in your case). As a general rule, this is the desired behaviour in about 80% of the cases (when using LabVIEW). So consider if you can't do it using a by-val implementation.
    There are several falvours of by-ref implementation, where you will have the same objects on both wires:
    * private data inside SEQ (single element queue, no replaced by the next one)
    * private data inside DVR (data value reference)
    * object inside DVR
    which implementation you choose is up to you. From your image/code, I'd place the object inside the DVR. You could create the DVR with the obj in the first for loop. In the secend for loop, index your elements and use the IPE to get the obj out of the DVR for your get-set operation and place it back.
    Felix
    www.aescusoft.de
    My latest community nugget on producer/consumer design
    My current blog: A journey through uml

  • Crash when use indexe array with in place element structure

    Hello !
    I have a problem with in place element structure. I want index a waveform array (16 elements) and when i execute or save that labview close....
    I dont have problem with waveform array 15 elements or less, but i need index 16 elements...
    Thanks for your help !!!
    Solved!
    Go to Solution.
    Attachments:
    Test.PNG ‏8 KB

    I give you my code but it work because i used a waveform array with only 15 elements. I can't save or execute with 16 elements...
    So add it (like picture Test.png) and you will see.
    Thank you
    Attachments:
    Test.vi ‏25 KB

  • Using LV Class Property Nodes in In-place Element structure causes the code to halt

    I have some code written in LV RT 2010 that uses property nodes from a LVOOP class that I created.  I am using access the property node from inside an in-place element structure.  When the code reaches the property node, LabVIEW stops running.  (as if the abort button was pressed).  I verified this behaviour using highlight execution.  When I remove the in-place structure code runs fine.
    Is this is know bug in LabVIEW?  Is there a CAR to resolve this created for a future release?

    Bob,
    I tried to reproduce the behavior you're seeing by recreating the Trigger and Trigger List classes, but I have not been able to reproduce it.  Please take a look at my version of the project in the attached zip file.  Take a look at Test.vi, and feel free to modify and repost it to show me how to make the problem occur.  I would like to file a CAR to make sure we get the problem fixed, but I will need to be able to reliably reproduce it first.
    On a similar note, you can get much better performance out of the Process Triggers VI by preallocating the list array, instead of using build array in a loop.  Take a look at Process Triggers2.vi in my project.  You can run Benchmark.vi to see the performance difference between the two different approaches.
    Chris M
    Attachments:
    triggerlist test.zip ‏165 KB

  • I accidentally downloaded a windows based version of Elements 12 rather than a Mac based.

    I accidentally downloaded a windows based version of Elements 12 rather than a Mac based.  How do I undo this?

    What about if you go to Start>Control Panels>Programs and Features?  Is it listed there?  If not then you will want to run the installer again from the install files.  By default the install files are saved to your user folder.

  • Can I install the online version rather than using my dvd? it successfully installed (up to a point) that way, it just wont accept my serial number for some reason. my dvd isnt working properly.

    Can I install the online version rather than using my dvd? it successfully installed (up to a point) that way, it just wont accept my serial number for some reason. my dvd isnt working properly.

    If it gets far enough to reject your serial number, it won't help to download it. It must have installed ok.
    What is the message you get (DON'T tell us the serial number!!)?
    Does it mention a "qualifying product" by any chance?

  • How can I trash a large number of Emails quickly from my iPod touch rather than using the one-at-a-time Edit method?

    How can I trash a large number of Emails quickly from my iPod touch rather than using the one-at-a-time Edit method?

    Once you tap on edit, you can select multiple emails, the tap archive.

  • Firefox 4 is not compatible with the skin i had been using for my browser, old factory black... i would prefer to keep this skin rather than use firefox 4... how can i revert back to the previous version of firefox?...

    ''Duplicate post, continue here - [https://support.mozilla.com/en-US/questions/816154]''
    firefox 4 is not compatible with the skin i had been using for my browser, old factory black... i would prefer to keep this skin rather than use firefox 4... how can i revert back to the previous version of firefox?...

    Older versions of Firefox are available here:
    http://www.mozilla.com/en-US/firefox/all-older.html

  • HT4314 I have tried to log into clash of clans on my iPad and it just keeps going to a new game rather than the one saved on my iPhone. I have been using the game centre and same user name and password ?

    I have tried to log into clash of clans on my iPad and it just keeps going to a new game rather than the one saved on my iPhone. I have been using the game centre and same user name and password ?

    I have the same problem.. EXACTLY. .  When phoning Apple Support they had trouble understanding my problem and couldnt find any type of solution. No one seems to take responsibility for GameCenter issues. The assistant escalated the problem but no one could find an answer. .
    The only idea was to set up a new apple id, hence a new GameCenter account. . But that would loose all the itunes data. Anyone got ideas ?

  • Dynamic User,Role,Group rather than use jazn.xml

    Hi everyone
    For Jdev 11..
    can anybody tell me how to make application wich can make user,group,role dynamically...
    rather than use jazn.xml...
    I thought if i use jazn.xml for register user and group its very static...
    I cannot make it dinamycally....
    I read OPSS and I cannot found the idea behind it...
    thanks...

    Hi,
    You can achieve this by using a sql authentication provider. It gets the users and their roles & credentials from the db tables which you can configure in WLS. In JSF, you can create a creation form based on the table (which you configured for authentication), which can be used for the users to register.
    Check out this doc for more information.
    Regards,
    Arun

  • Can  a period be entered in the  Confirmation rather than  entering  one da

    Dear  experts
    Can we  enter  the  period  in Confirmation , rather than  entering one  day  each .
    Currently in the  sytem  if  i  enter a  period ( say  25-05-2009   to  29-05-2009) , system throws error saying  it  can accept  only  24 hours . 
    This will avoid too many  enteries  if the   Engineer  is out for  a month at  particular  location.
    Can it  be  possible thru  any configuration , if  so  pls  let me  know the nodes.
    regards
    Rajesh

    Hi Shanthala
    Thanks  for  your update. I  have  checked the  same .  Here the   duration of   job  comes  with  the line  item ,  I  checked   the  date profile   for the line  item category. Can you tell  me  which  is  the   date  rule  we  suppose to choose  to get the   duration  for  more  than  one  day  ie  24  hours .
    Regards
    Rajesh S

  • [svn:fx-trunk] 7120: Switched to using "use namespace mx_internal" rather than using explicit namespace scoping (e.g.,  mx_internal::foo) in RichEditableText and its related classes.

    Revision: 7120
    Author:   [email protected]
    Date:     2009-05-19 23:46:06 -0700 (Tue, 19 May 2009)
    Log Message:
    Switched to using "use namespace mx_internal" rather than using explicit namespace scoping (e.g.,  mx_internal::foo) in RichEditableText and its related classes.
    Removed stale import statements.
    QE Notes: None
    Doc Notes: None
    Bugs: None
    Reviewer: Carol
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as
        flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as
        flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as
        flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/RichEditable TextContainerManager.as

    I'm more of a 1.3 chick myself, but the words are the same just in a different language.
    1. Is Tomcat running?
    2. Have you configured the ajp13 connector on 8009 in Tomcat? (Should it be ajp13 for Apache 2.0? - I really must upgrade)

  • Value Help at element level rather than Node level...

    Hi Experts,
    Need your inputs on one of the scenario.
    I am using the method SET_ATTRIBUTE_VALUE_SET (Sets the fixed values for an attribute) of interface IF_WD_CONTEXT_NODE_INFO and this allow me to see only the defined values in the dropdown.
    Now let say I have 1 node with two element and want to make the valuehelp for one attribute with different-different value in both element.
    Example:
    Node name is PersonDetails
    Attributes are ANREX (Form of address text)
                           NACHN (Last Name)
                          VORNA (First Name)
    There are two elements PersonalDetails1 (MR   ,  XYZ  , XYZ)
                                    and PersonalDetails2 (MRS   ,  ABC  , ABC)
    Now for the above two elements,  value help for 1st Element needs to be (MR / DR) and for second (MRS / MR / MISS).
    But the method SET_ATTRIBUTE_VALUE_SET is called at NODE leveel and not at ELEMENT level and so always value help will be of type 2nd element.
    You can see this scenario in infotype 0009 in which Payment Method are different for subtype 0 (Main Bank) and
    5 (Main bank details for Off-Cycle).
    Please let me know if any other information is required.
    Thanks,
    Harish

    Hi Harish,
    One attribute and two value_set would be possible only in dynamic programming. Is it feasible and workable, i doubt on that.
    I would attempt to do that only when there are no other options available. You have to go back to your designers to see if they want to re look into this.
    But the method SET_ATTRIBUTE_VALUE_SET is called at NODE leveel and not at ELEMENT level and so always value help will be of type 2nd element.
    If you use a supply method, you could fill for every element a different value set.
    or you could define a  node in side your person-details with cardinality 1:1.You could refer coloring a table cell_editor as example.

Maybe you are looking for

  • Need to add another graphic card to be able to connect my 3x Apple Display 27" none thunderbolt

    I bought a 3rd 27" Apple LED Cinema Display refurbished from Apple and i need a 2sd graphic card My Mac already have 2x Apple LED Cinema Display connected with the Mini DisplayPort and working fine The graphic card is an ATI RADEON HD5770 1024mb i bo

  • MacBook Pro Connection Problem

    I just purchased a new MacBook Pro and when i took my laptop to my college to do some homework it said i could not connect to the internet because it was not secure. I know the school has secure wifi, what can i do or what does that mean?M

  • Using MIDI files

    I found some MIDI files on the web. It's background music to play/practice over. I'd like to import them into GB somehow, so I can play guitar over them and record the it. Is there any way to do this? I looked at Quicktime Pro as far as coverting goe

  • External iamge/content issue as2

    Hi, http://addvisors.com/projects/rothwellGornt/test/test.html Above is a link to view the project I'm working on. Once the site loads if you go to the "Contact Us" page the content doesn't load correctly. I'm using an extrnal .xml and .css files for

  • How can I customize Workflow for Organizational Change (WS01000014)

    Hi ti all! Let me know please, How can I customize Workflow for Organizational Change (WS01000014)? What steps must I do? Thank!