Main vi sharing of sub vi with call-by-reference - how?

Hello

as mentioned in another thread (http://forums.ni.com/ni/board/message?board.id=170&thread.id=390355), I have a main vi with a stop button and a under vi, who needs a few seconds to complete.

During the execution of the Sub vi, I want the stop button in the main vi take effect immediately, which means the sub vi must stop immediately.

I know that I can exchange data between screws somehow by a call to reference, but all the examples I found, to transfer data from the sub to the main vi vi, but I want the other way around.

Given that I've never used the call by reference, I have no idea how I can do it.

Attached you find, what I've done so far.

I would be very happy if you help me and show me how to use the call by reference correctly.

Johannes

LabVIEW 7.1 (I used to program in C and Labview 6)

Win XP

Johannes

I solved it!

A reference and a property node t - it.

See attachment

Johannes

Tags: NI Software

Similar Questions

  • HOW TO PASS THE HEX OF THE MAIN PROGRAM VI ENUM, SUB VI ENUM VALUE

    HOW TO PASS THE HEX OF THE MAIN PROGRAM VI ENUM, SUB VI ENUM VALUE.

    HOW THEN IT WILL CHOOSE CORRECT ON SUB VI HEXAGONAL ENUM VALUES.

    Enum values are strings, you must first convert the hexadecimal value to a hexadecimal value chain represtation.

    Then that convert from the enum.

  • Shared variable of subjects with the executable in real-time

    We have a PXi target running Labview time real 8.5 and we use a series of shared variables for communication between the target and the client software. The code was developed (and used) in the last 2 years, and presented no problems with the shared variables when they are deployed since the Project Explorer (for the target and the laptop based client software). However, when you try to run an executable version on the system time PXI real target of exactly the same engine code variable shared seems to fail during the initial loading. Since it is an executable, it is difficult to display errors, but it seems that the accident occurred at the beginning of the program when we try to initialize a number of shared variables. Sometimes it loads but probably only 10% of the time. When you plug the tool to debug for code and restarting the executable, runs without any problem. However, once we managed to capture and error (error-1950678982 the shared variable client side read buffer is full).

    I checked a number of messages in the Knowledge Base (e.g. how to deploy Variables of a compiled executable shared network?), but it still has not solved the problem. Thoughts and suggestions?

    Adrian

    I tested it for a few hours now and I can't make it fail again. The big difference in my implementation was to use your suggestion, and no wire the error cluster through the method since the error it generates caused a number of questions later. So let me summarize the final configuration that seems to work then:

    -during the execution and executable on a target time real 8.5, startup not connected to a client. Library of shared variable hosted on the target and should load by itself.

    -J' added a flat structure sequence on the vi 'main' (top of page vi executable) with a node (as shown above) Invoke method in the first structure with a timer to 10 seconds and the rest of the code in the second part of the structure. The shared variable library has been copied to the target in a data directory and the path provided to the method (the same way as above) and the IP address is that of the target.

    I discovered that it takes about 8-9 seconds for the shared variable engine and library to start (I don't remember is that past exactly that) and it is important to wait this time to initialize shared variables or the behavior is unpredictable. The method always generates the error 1043 (function not supported) but I simply ignore it now, and it seems to work.

    Thanks for your help! I will let you know if there is some instability in the future, but everything looks good from here.

  • Error downloading: digest of invalid signature for main manifest file assigns System.exit unauthorized calls!

    Hello fellow sufferers!

    I am trying to download my first application at BB appworld. While trying to download the file * .bar, I get this error:

    Digest of invalid signature for main manifest file assigns System.exit unauthorized calls!

    What does this errormessage?

    It's my MANIFESTO. MF file:

    Archive-manifest-Version: 1.1
    Archive-created-by: BlackBerry Tablet OS Elf BAR Packager 1.3.1

    Package-Type: application
    The author of the package: -.
    Package name: de.helex.clipmanlite
    Package version: 1.0.2.0
    Package-Architecture: armle-v7
    Package-author-certificate hash: _QCY8j3bSpt-67mhJLED-4xZooXxA7vZBMu2MbHI97SYlh5aoRxaHi44Ie-WMfh9-AGPG2YnwlW7X-AJ-A7xPQ
    Package-author-Id: gYAAgEPQ7F7MvQXnpyTXcW_b9KQ
    Package-Id: gYABgFYDI7fyWoGVx88_tVwB_Ic
    Package-Version-Id: gYACgHvOOTEXtanI-HRmZlA82u8

    Application name: ClipManLite
    Application Description: Clipboard Manager
    Application version: 1.0.2.0
    Request-requires-system: Tablet OS/1.0.7.0
    ID of the application: gYADgFZI5L0DEfspLgVvaOJ8kK0
    Application ID-Version: gYAEgIravTIRSld3gfNygimA3qI

    Name of the entry Point: clipmanlite
    Entry point: QML_IMPORT_PATH = app/native/import QT_PLUGIN_PATH = native/app/plugins LD_LIBRARY_PATH = lib/native-app app/native/clipmanlite - blackberry - platformpluginpath ./app/native/lib/platforms platform
    Entry-Point-Type: Qnx/Elf
    Entry-Point-icon: native/icon.png
    Entry-Point-Splash-Screen: native/splashscreen.png
    Entry-Point-focus: auto
    Entry-Point-System-stocks: run_native

    Archive-asset-name: native/clipmanlite
    Archive-asset-SHA-512-Digest: EgIFzXisCdbgWHASq7sSPYjSDWRzzl77_hw-TYnopqUjV9JDbRORwzCruReZOG2iq3SQv-Yi50NcD7XPHqz_Jw
    Archive-active-Type: Qnx/Elf

    Archive-asset-name: native/icon.png
    Archive-asset-SHA-512-Digest: MFqIlfKgqTrhI3yZkGZyv0l1YUubJblUMc6mhcZuhJfktqX5x-NwfWL7m-McGoKUMjgCTbFBSW1e3voCcZoBGg

    Archive-asset-name: native/splashscreen.png
    Archive-asset-SHA-512-Digest: CNzXgezPb8oKHCJ_4Zqk2_Fb1D6tkMVGEn3mhPQFRD7REdRG0ZnELLdu0gkM1pVvyObc0bH2ouv84_QwJ7kuLg

    Archive-asset-name: native/lib/libQtCore.so.4
    Archive-asset-SHA-512-Digest: 9gnZ149YG3kPs8ZFbHoZ6kFrL5dj4yW40urXd-uZPDrif0zYMzI29TUsp794U4GBiQUXaKKlbZOWUqIZlEHI9A

    Archive-asset-name: native/lib/libQtGui.so.4
    Archive-asset-SHA-512-Digest: EgYpcFf7xItFiqQ_PDm8FFVFu5vdbIrg4-h2d3sB-3FfPuAlnZasR_UQ45yNxzZoIwowtdaNVstIvVZXd7j1AA

    Archive-asset-name: native/lib/libQtOpenGL.so.4
    Archive-asset-SHA-512-Digest: is9HkVzh6mFpVs0N7LkYCH1Aps3pt-Q20XHP37jLnLPnoME4kl3hl9sCkCU1XCm-PchfoX51GxjMS9wBkSuMgA

    Archive-asset-name: native/lib/libQtNetwork.so.4
    Archive-asset-SHA-512-Digest: pP6tPwXFGmFQnYTuHn80aFV7xh8pG4y6wOWIIvGGlp4UXl570Gq5W3lbOuCGtCQKyPwPLc7bVOPuK3Ur8hf6SA

    Archive-asset-name: native/lib/libQtDeclarative.so.4
    Archive-asset-SHA-512-Digest: W2wS_9_9Cqqqio2w6251fhFnxnQm4ZY2COFm5xQQVCQwcMCvly2KmGxVruZO2yc_WN65MGeEOvH4cAAt1rOznQ

    Archive-asset-name: native/lib/libQtSql.so.4
    Archive-asset-SHA-512-Digest: 7H8cJrn5yhG3p4K3G4oYO8XWr_D_AZcLD5T9Zfn6mc8lUiyJ4o6mXouXmFC9imoMeUmq4KsTVM2AdhZStXA7gQ

    Archive-asset-name: native/lib/libQtSvg.so.4
    Archive-asset-SHA-512-Digest: dJk9FYrRJGqPeaEG17LWTKC_ogV6Few2BzK4t-WlcXUg0MJxinKp5jigsCHzFm6SJiFJLHDj3jRS16bTV12qgQ

    Archive-asset-name: native/lib/libQtScript.so.4
    Archive-asset-SHA-512-Digest: 809rAuYFWIOxeJuNJcL63URoMKXz6NKrmKOfZZWDjPUVqTJkxL7tBr_joHZR-EVY1mSJ8wBbh64iB6YdbqTmUg

    Archive-asset-name: native/lib/libQtXmlPatterns.so.4
    Archive-asset-SHA-512-Digest: zVw6F43U2TKa3dbYosygRliRlhdNisb-sdBmzh6AgTyh9GlVCkLLBie781GpQLA-uOyKpDOoT5B6N8h4ulaCBw

    Archive-asset-name: native/lib/platforms/libblackberry.so
    Archive-asset-SHA-512-Digest: uEdFgiXdWMo3MV5szE5vn2EcVXxubMZl4e71PT4z614ONV2ZqcFKzf6CFGzV9mwQGlWKm5Jrra71I2fzASnurw

    Archive-asset-name: native/blackberry - tablet.xml
    Archive-asset-SHA-512-Digest: mzIshm0x0oBMW7T-SlYg5ywvgFSeeHSyx53kkvzaf - WQWDtkbxqqXDldjCQrvYv631_2Q6OCAiYOmZRoslsYg

    Any ideas what could cause this error?

    First I thought maybe it's because the same mistake: what to do if your Package ID was rejected by BlackBerry App World

    But the creation of a new element of product does not help with this problem.

    It is a native application of qml Qt. It does not store the files, need to no write access and uses only simple, free of components created 1.0 QtQuick with no additives. So, it should be the best portable application out of my small collection.

    Unfortunately I have no real device here since I, like many of you, to present one of my tablet at BB App World Applications, first to get a.

    Google was not my friend on this topic, so I hope someone has this kind of error message and could tell me what could bring it. Any kind of advice are welcome.

    Best regards

    HELEx (Ambassador of Qt)

    FYI, a new simpler command allows to sign the 1 step:

    BlackBerry-sign - storepass .bar

    P12 both RDK of passwords must be the same, but this measure will apply to both the two signatures. It should have the same results as the command that you run.

    Kind regards

  • No Audio with call transfer to the CUE Script

    Hello

    I have a CUE script set up to dial several extensions and transfer them to a conference MeetMe hosted on the same 2911 router where the CUE ISM is installed. The call flow is:

    CUCM 2911 <---> <--->CUE

    with calls to the script being initiated by phones registered with the CUCM.

    Dial the pilot script, calls to the specified extensions are undertaken and transferred to the DN MeetMe (7070) successfully, but there is no sound on calls. The script seems to complete successfully as well, because all of the extensions as well as the original one is transferred to the DN MeetMe. The command "display the compact active voice call" shows all participants connected to 7070 and the output of 'see the ephone-dn conf' displays the number of active sessions to 7070

    Direct calls to the DN MeetMe (without going through the script) work very well.

    Logging in the atrace.log seems to show that reactivate the QUEUE calls will fail. I tested with all three SIP call transfer methods CUE without result.

    CUE and 2911 configs as well as the atrace.log CUE file is attached.

    Any ideas would be very appreciated.

    Hi Miroslav,

    You can check the method of transfer in CUE - please define Bye-also and without h450 service of voip telephony services in the CME.

    HTH,

    Alex

  • How to config a cache shared for several environments with the C API

    How to config a cache shared for several environments with C API?  Like Java edition. Chapter 2. Database environments

    I want to open the large number of databases, at least 10,000. But as the counties of open databases increase, the db-> open become very slow operation. It took almost 2 hours for 10 000 databases.

    So I try to distribute these databases on multiple environments (for example, 5 envs). And to improve the efficiency of memory use, I want to share cache between ENVS.

    Hello

    We do not support the cache sharing between different environments as you mentioned.

    We have tested the case of the opening of 100 000 databases, see the number that you have encountered, we will check what is happening.

    Kind regards

    Winter, Oracle Berkeley DB

  • Java - a stored procedure with call by result

    Hi the Oracle community,

    I'm looking for some example Code how to use a Java-Stored procedure with output parameters. Don't get me wrong. I don't want to call a procedure with the parameters Out of Java (there are many examples in this respect over there). I want to just implement the appeal of the concept of results in a Java-Stored procedure. A customer calls this procedure with certain parameters and the Java procedure will fill the. So my first question: is it possible? And my second Question: how to implement it?

    Greetings.

    I found a solution. It's very simple.

    Just setting the parameters as java array (e.g., String() P1). The first value (P1 [0]) is the returned value.

    Finally just contained JDeveloper in dialog box "Edit method Signature" the parametermode OUT.

    The dialog box are entitled on the stored procedure in the dbexport file. You can read this

    in Section 6, publishing Java Classes with call specifications-> defining the Modes parameter in

    The Oracle database Java Developer's Guide.

  • Error Blu - ray: 'invalid operation', Code: "19", note: "attributes main video stream must be compatible with the playList.

    Hello

    I can't create a Blu - ray folder or Blu‑ray Image with my project.  Whenever I click on Build, I get this error:

    Purpose of Blu - ray: "< timeline > Untitled chronology", error: "invalid operation", Code: "19", note: "attributes of the main video stream must be compatible with the playList.

    I created my .m4v file and .wav files in Adobe Media Encoder using the H.264 Blu - ray built-in HDTV 1080 p 23.976 high quality.  I also tried to create several variants (encoded Dolby Digital audio, tried the HDTV 1080 p 24 high quality preset).  No matter what I still get the same error above.

    I only have a basic (no movement) menu, but I tried to remove it and still get the error.

    Still isn't my files and I want to keep it this way if possible and use the best rendering of SOUL of transcoding capabilities.  The only change I make for the presets of SOUL must enable VBR 2-pass and use maximum render quality.  Who should not cause the issue?

    I searched the forums and did not find anything.  Someone suggested to restart yet, but that did not help.

    Any suggestions?

    Thank you

    Graham

    I finally got the Blu - ray folder created.  I imported my original uncompressed AVI again and let the transcoding.

    So, the moral of this story is that still did not like the pre-transcoded from Adobe Media Encoder files.  Your suggestion on the audio being a slightly different length as the video could be a possible cause, if SOUL actually creates files with this problem.

  • Implemented shared disk high availability with TimesTen11

    Hi all

    I need to have shared disk high availability using cluster on AIX HACMP
    Could you please share steps/info, this application with the TimesTen11.

    Kind regards
    -AK

    Published by: tt0008 on Sep 9, 2010 02:09

    Hello

    We do not really recommend using disc shared according to HA with TimesTen since it is a bit complex to install and (b) is not officially a "supported" configuration Also, failover and recovery times are usually much longer than with a HA configuration based on TimesTen replication. I would like to invite you to consider using the TimesTen for HA replication. That's what it is designed for, and this is the recommended approach.

    Kind regards

    Chris

  • call by reference and UI VBAI

    Hello

    I am trying to build a table (recipe_array_mod.vi), in which using the top and pressed, activate the cursor to navigate the table and load the corresponding data in indicators and I got also will add a new recipe and information to load data. I got to the point where my VI for recipe_array_mod.vi works very well, however, so that this code works on the withour of UI custom VBAI thrown exceptions for all dependencies, I started to look in the reference method call using VI server. I'm new to labview and reading about the VI call by reference, environment type specifier VI refnum shows type of connector information. But I see no information on connectors when using this method. Do I need to have a full version of labview to exploit this method?

    Please look into this and give me some feedback and corrections of code to use it with an interface user custom VBAI.

    Thank you

    Here is an example of update. She is the nice user interface that you want the main VI and it dynamically calls the subVIs who are working with file i/o and using VI server dependencies (which are primitive screws so that they are not counted as dependencies). You need to update the path to your sub VI in the main VI and you must make sure to close the Ref VI in the State of cleaning of your inspection (comments in the code of the main VI explain this).

    Hope this helps,

    Brad

  • VI, stuck to the call by reference

    Hello

    I currently have a problem of Subvi "call by reference. I am currently working on a datalog VI that takes a cluster (hidden as a Variant) and the writing of the elements in a text string. If the cluster contains a cluster VI datalog is called. When all the elements are written in the text string is written to a file and the text string is disabled.

    Here, I need reentrante run - so I am currently using property VI "re-entrant execution clone shared" and a "call by reference" with "Reload every call" to call him VI self. This was work up very well, but yesterday, after about 5 hours, the program is stuck at "call by reference. Have I set up correctly?

    Concerning

    Mark


  • When I open a new tab by clicking on t he '+' tab, I get a search engine called "-Search. How can I get rid of this? Where is this link?

    When I open a new tab by clicking on t he '+' tab, I get a search engine called "-Search. How can I get rid of this? Where is this link?

    Hello

    The reset Firefox feature can solve a lot of problems in restaurant Firefox to its factory default condition while saving your vital information.

    Note: This will make you lose all the Extensions and preferences.

    • Sites Web open is not recorded in less than 25 versions of Firefox.

    To reset Firefox, perform the following steps:

    1. Go to Firefox > help > troubleshooting information.
    2. Click on the button 'Reset Firefox'.
    3. Firefox will close and reset. After Firefox is finished, it will display a window with the imported information. Click Finish.
    4. Firefox opens with all the default settings applied.

    Information can be found in the article Firefox Refresh - reset the settings and Add-ons .

    This solve your problems? Please report to us!

    Thank you.

  • Data transmission between screws using call of reference without actually executing the vi

    Hi, I was wondering if you can pass data between the screws by using call of reference without actually executing the vi (ie: not having the façade appears during execution). Is this possible?

    While I'm here I might ask as well on the transmission of data between the screws I'm trying to pass a flag to a vi value to another. Because of the way the program is setup, I can't wire this value directly. Y at - it another (fast/efficient) way to pass data between two screws during execution (other than shared variables). For what it's worth this application will be built into an executable file, so data transiting will have to work for it as well.

    Thank you

    Vlad

    Vlad P wrote:

    While I'm here I might ask as well on the transmission of data between the screws I'm trying to pass a flag to a vi value to another. Because of the way the program is setup, I can't wire this value directly. Y at - it another (fast/efficient) way to pass data between two screws during execution (other than shared variables). For what it's worth this application will be built into an executable file, so data transiting will have to work for it as well.

    You have the choice:

    • shared variables (as you mentioned)

    • global variables

    • queues

    • notifiers

    • control references and properties of the value

    • action motors

    • ...

    Tell us a little more about your applications. What should do?

  • Threading and reuse of the node to call using reference of buffers (of the required adhesive tape)

    I tried to get the following information in the public domain for years and now that I have the answers, I'll share with those who might be interested.

    Caveat!

    Wrap your head in tape before reading just for the sake of security.

    My two questions were;

    (1) may LV re - use tampons of VI calling when you use VI serve call by reference?

    (2) is used when the use of call by reference UI thread?

    1 when you call a VI using the call through the reference node, the data in the pane of the copied or is node connector - this online as it would be with a Subvi properly implemented?

    Short answer: it's somewhere between the two.

    Long answer:

    The compiler does not know what will be called VI, but there a hint:

    the reference connected to the node of the call by reference. He uses to get the 'Prototype' for the call. Therefore, for optimal performance, use a prototype that has the same 'characteristics placeness' as it is called VI. That said, users don't know what are the "characteristics of the placeness.

    Before getting into the details, I will say that the overhead of these copies should not matter much unless it's a large data structure (a table with lots of items.) or a cluster/class with many fields or containing large networks etc..

    Example 1:

    If the prototype does not change the data, then the compiler assumes that the crux of the call by reference will not alter the data. However, at runtime, a check is made to see if the real called VI will modify the data. If Yes, then a copy is made and past so that the original data can be modified.

    Example 2:

    If the prototype contains an entry that is wired through an exit so that both input and output terminals can use the same buffer memory, but running an audit determines that the real called entry and exit VI do not share a buffer, then a copy will be made from output of the actual call to the original screws (combined input and output) buffer.

    I should also mention that, even with this behavior "are trying to get along with the prototype", it is not always possible to obtain good performance as a Subvi ordinary call. For example, if you have a situation where the prototype does not change the data and passes it through to an exit and then the compiler must assume that the data is changed (because, as in example 2, there are screws that may change even if the called real VI is not).

    And there are a few caveats:

    (1) this behavior "using a prototype" was new for 2009. Before that, we used a method more naïve data of passage that took all the entries will be changed and no outputs don't share a buffer with an entry.

    (2) this behavior can be changed in future versions, if we find additional optimizations.

    (3) this behavior is the same that we use for the dynamic distribution live (when you use the classes in LV)

    (4) If you want to create a VI can be used as a prototype, you can use the features of the Structure in Place to control the "characteristics of the placeness', namely the element nodes in and out of the border, the function"Mark as modifier"border nodes (note the pencil icon on the item), and the node always one copy.

    (5) the prototype is only the first reference ever connected to the node of the call by reference. So if you make a new prototype VI, you can just make a reference out of it plug into the crux of the call by reference. I suggest to remove the node from the call by reference and file a new.

    (6) for remote calls, we still "making copies" by transmitting data over a network.

    I hope that this helps, if you want information/clarification, so feel free to ask.

    2 - is the call made by the reference to run in the user interface thread node? If the call is made by a remote machine via ethernet, thread that host (the computer that makes the call by reference) runs on and thread that executes the target (the machine that contains the file VI) on?

    In the case of premises, the appeal made by the reference node does not require the user interface thread and may work in some thread the VI wants to run in.

    When you call a remote VI, the appeal made by the reference node uses the UI thread (detailed below) on both the client and the server.

    The client uses the UI thread to send the request to the server and there still when the response comes back. The user interface thread is not blocked during the time between the two.

    The server receives the TCP message in the UI thread, and then starts the call to the UI thread. The server also uses the user interface thread to send the response to the client. The user interface thread is not blocked on the server during execution of the VI.

    I hope that people find it when they need it!

    Ben


  • Call in reference to replacement VI

    I'm doing a VI dynamically a reshipment that accesses a property in a class with name. (see attachment) The idea was to use 'call of reference' for the property required to call the correct data VI member access. The CBR does not preserve the dynamic wire of the input to the output, causing the VI must be broken. (see second attachment)

    Two questions: first, why it does not work? I understand that Labview must ensure this type of performance is preserved by a dynamic send substitute VI, but why couldn't you just take and raise an error if the type is not maintained? Secondly, any ideas how to get around this limitation?

    I agree that people can be so rude.  So ungrateful too.  What is the youth of today come at all.  I have really no idea.  The future is surely doomed.  Cursed I say!

    Now back on topic...

    Why don't simply implement you a class method rather than load a VI member by reference?  Simply, I do not understand the role of the party "by reference" here.

    If you MUST go this way (which I doubt at the moment) so please plan why call a DD VI dynamically is a requirement.  In the meantime, insert a primitive 'Preserve the class Run-Time' on the output of your dynamic call.

    That COULD help.

Maybe you are looking for