Selecting VI Server.Strictly Typed VIs in Class Browser crashes LabView

Hi!
My LabView 8.0 Pro on WinXP crashes in the following way:
0. Opening Blank VI.
1. Placing VI ref num on the front panel.
2. Going to "Select VI Server Class -> Strictly Typed VIs -> Browse..."
3. Loading any VI (say, "myVI").
4. Then going to menu: View -> Class Browser
5. Selecting Object Library: VI Server.
6. Selecting Class: Strictly Typed VIs - "myVI" icon.
Result: LabView crashes saying that there's error and application will be closed.
Besides there's a little question:
Did I get it right that if I change myVI connector layout or pins it's not refreshed in my
VI ref num and I have to load VI again (see step 2)?
Thanks in advance for any help.
Rashid.Message Edited by Rashid on 02-22-2006 11:17 AM

Hello,
I have reproduced this, but I think the menu navigation you indicated in step 2 has a mistake.  I reproduce it with the following steps, and have filed a corrective action request to R&D on the matter:
0. Open a Blank VI.
1. Place a VI Refnum on the front panel.
2. Right-click on the VI Refnum and choose: Select VI Server Class -> Browse...
3. Select any VI (say MyVI.vi).
4. In LabVIEW click: View -> Class Browser
5. Select Object Library: VI Server.
6. Select Class: Strictly Typed VIs -> MyVI.vi connector pane icon.
Sorry for any inconvenience - the problem should be addressed in a future version of LabVIEW.
For your question, "Did I get it right that if I change myVI connector layout or pins it's not refreshed in my VI ref num and I have to load VI again (see step 2)?" - yes, I see the same behavior - you should save the VI and then select it again in the VI Refnum.
Best Regards,
JLS
Best,
JLS
Sixclear

Similar Messages

  • VISA Wait On Event Crashes LabVIEW

    While "VISA Wait On Event" is pending on an event, and in another thread the "VISA resource name" input to "VISA Wait On Event" is closed using "VISA Close" vi LabVIEW crashes.
    I had a need to programmatically cause "VISA Wait On Event" to unblock so the LabVIEW program it is running in can be closed, or the "VISA resource name" originally input to "VISA Wait On Event" can be changed. I expected that executing "VISA Close" in another thread would cause "VISA Wait On Event" to unblock with an error. Instead LabVIEW crashes.

    James-K wrote:
    Artst,
    Can you post a screenshot of your code to further clarify?  
    It sounds like you are trying to stop the VIs by clearing the reference while it is still in use which will lead to a crash.  There is not a way to "unblock" a VI once it is running.  Can you specify a timeout instead?
    Well, I think this is not giving enough credit to the actual problem. One common VISA programming paradigme in the standard C API is to actually let a VISA Read (and of course a VISA Wait on Event) to terminate with an error by issuing the viTerminate() function, which I believe should be possible to get optionally be called by VISA Close too. Unfortunately there is no direct access to any VISA Terminate function in the LabVIEW palettes, but I have in the past created a small VI which calls the underlaying VISA API directly to abort any stuck operations on a session. Possibly this VI could solve the problem, making the VISA Wait On Event return before the VISA Close pulls its session under its feet.
    PS: Why can't I upload the VI directly to the board? Is it because it is in LabVIEW 7.1 format??
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions
    Attachments:
    VISA Close with Abort.zip ‏10 KB

  • HT1918 Trying to edit my payment info.  I keep getting the message that my number is not valid for the type of card I have selected.  I have a VISA card.  I have typed in the number 4 times, but same message pops up.

    Trying to edit my payment info.  I keep getting the message that my number is not valid for the type of card I have selected.  I have a VISA card.  I have typed in the number 4 times, but same message pops up.
    Thoughts?

    You are probably entering your Visa's security code incorrectly.  Here's how to find it:
    http://support.apple.com/kb/HT3541

  • App Builder produces "Not Executable" error with Strictly Typed VI Refs

    There is a very frustrating problem with the app builder in LV 8.0.1.  Certain VIs compile and run fine in labview, but the app builder
    refuses to make them into applications.
    The error message is very long and ends with something like "The VI is not
    executable".  Standard advice for this problem is to force LV to recompile
    everything you're building by either mass compiling or ctrl-shift clicking the
    run arrow, but this hasn't worked for me in two separate cases (completely
    different projects).
    It seems that this problem is caused by wiring a strictly typed VI reference to
    an invoke node with the FP.open method selected.  In both cases I resolved
    the issue by changing the Static VI Reference to be weakly typed (right-click
    the static vi reference and make sure "Strictly Typed VI Reference"
    is unchecked). After that, the project build successfully.
    This is very hard for a user to track down for several reasons:
     - The error message in the application builder does not give any
    indication as to what the real problem is
     - The app builder reports that the top-level VI is broken, even when the
    strictly typed reference and invoke node may occur in a sub VI
     - Nothing (that I can
    find at least) in the documentation suggests that strictly typed references
    won't work with the Open.FP method. 
    There is a page that says "some of the properties and methods do
    not work when you configure this function to output a strictly typed VI
    reference," but no indication is given of which methods fail
    Note that in one case I was also able to make the project
    build by deleting an instance of "IMAQ Create.vi" from the top-level
    VI.  I 
    have no explanation for this.
    Hopefully this post will save some other users the trouble
    of tracking this down and maybe even get NI to correct the issue for future
    versions.
    Adam Brewster

    Hello Adam,
    Thank you for sharing your experience and insight.  Your post was well thought-out and offered a
    good description of the problem as well as some possible workarounds.  I believe that the issue has been filed and
    is under investigation (3TU8T8V9).  Feel
    free to post back after the next LabVIEW release and inquire as to its status.
    Thanks again,  
    Travis M
    LabVIEW R&D
    National Instruments

  • Actor framework strictly typed message queues?

    I'm just getting to grasps with the Actor framework.  I have implemented "similar" stuff in the past but I've approached it differently.
    One thing I noticed was how easy it is to send a message to an incompatible actor core which results in a nasty run-time "to more specific class" error.
    In the example project included with LV 2012, if I make the change shown below (OK, I am purposely senidng a wrong message on the given queue) I get no feedback from the IDE that an incompatible message is being sent ont he queue.  I think this has to do with the Message queues being for the base actor class.
    Is there no way to have the actual queues more strictly typed so that we can say that Launching Actor Beta will result in a Queue reference which is only compatible with Beta (or children) objects or does this ruin the entire concept?  If possible, it would prevent the ability oto send incompatible messages completely which IMHO would be an enormous benefit.
    The presentations on the Actor framework have shown huge benefits in strict typing of state machines (I'm referring to a couple of videos I've seen ont he NI website) but this element of things seems to be just a pokey as a string flatten and unflatten.  Send the wrong message to the wrong receiver and >bang< run-time error.
    Just thinking out loud.
    Shane.
    Say hello to my little friend.
    RFC 2323 FHE-Compliant

    So two days and no reply...
    I'm referring in essense to this part of the actor framework white paper as included with the template in LV 2012.
    Messages from Callee to Caller
    When a caller wants to send a message to the callee, the caller knows the type of the actor that it launched, so caller can easily choose the right type of message to send. But when an actor wants to send a message to its caller, the actor does not necessarily know what type of caller it has, so it does not know what type of message to send. Ideally, actors should be usable by many different callers. That maximizes code reuse. But making the actor truly independent of the caller requires more effort than is warranted for the situation. There are three techniques for defining messages that an actor sends to its caller
    The High Coupling Solution—In this solution, the callee actor is written specifically for one type of caller, and can never be used with any other type of caller. In this case, the callee knows details about the caller's interface, so it may simply call the Send Message VI of the appropriate message. The message type is thus hardcoded into the actor.
    The Low Coupling Solution—This solution works best when you have a known inheritance hierarchy of callers. In this solution, you create a matching hierarchy of callee actors. So suppose you have callers Hard Drive, Air Conditioner, and Fire Suppression, each of which needs to launch a Fan actor. You would create the Fan class, and then inherit from it Fan For Hard Drive, Fan For Air Conditioner, and Fan For Fire Suppression. Each caller launches its specific callee actor. All of the main Fan class' code is shared, but when it comes time to send messages, the Fan class has a dynamic dispatch method for doing the sending, and each of the children overrides that method to send the message appropriate for its caller. Each callee is still coupled to a specific caller, but the system as a whole is flexible to accommodate new caller types.
    The Zero Coupling Solution—In order to make the callee actor independent from the caller, the caller must tell the callee what types of messages to send so the callee avoids picking a type itself. The best implementation of this solution has the caller record a message into the callee at the time the callee is launched. The callee provides a Set <Type> Message.vi method, where <Type> is the particular event that will trigger the message to be sent. The caller sets the exact message it wants to receive when this event occurs. When the event happens, the callee sends the chosen message, without any knowledge of what kind of caller is receiving that message.
    Often the callee will define an abstract Message class that it uses as the input type for Set <Type> Message.vi. Callers create their own specific child of this abstract class. This setup gives the callee a way to set data into the message through the API defined by the abstract class, and gives the message a way to deliver that data in a form the caller can consume through the various overload and extension VIs.
    Would it be possible to get some examples of the three different approaches to typing of the messages?  I'm aiming for the high coupling solution (with the option of slipping to option 2 through common ancestors) in order to provide the ability to detect wrong messages on wrong queues at edit time.
    Shane
    Say hello to my little friend.
    RFC 2323 FHE-Compliant

  • How do I get a strictly typed VI reference of a particular clone that is idle?

    I need several clones of a VI that store different state informations. I considered passing data to and from these clones by the 'Call By Reference Node', and therefore used strictly typed references to call the clones. My problem is that each time the calling VI turns idle the references turn invalid. How can I access a particular clone to read out its state information in such a situation?
    Thank you, Uli 

    Thank you everybody for so much expert support!
    This was my first appearance in this forum, and it was a good experience.
    Ravens Fan, thank you for the wrong browser advice. Obviously Mozilla does a better Job here.
    Mike, I added another VI named '1_CallCloneByNameString.vi' to show that the clone name seems to be simply ignored (so, if you say 'open any.vi:1' it creates any.vi:2 or higher...)
    I think the only way out is to keep the VI from finishing, as Pnt suggested.
    It's just weird that when all VIs have finished the front panel of a clone might still be visible, but there's no way of accessing the data of its controls anymore...
    Uli
    Attachments:
    0_CallCloneByStrictTypeRef.vi ‏16 KB
    1_CallCloneByNameString.vi ‏17 KB
    StateOfClone.vi ‏13 KB

  • How to read the "Strictly Typed VI Reference" of a VI file on disk

    Hi
    I have a .vi file on disk. (e.g., C:\temp\my.vi)
    How do I programmable read the connector pane "Strictly Typed VI Reference" ?
    Br Per

    Please explain what you are trying to do.  Why do you need the Strictly Typed VI Reference?
    If you want a strict type reference to a VI, get a "Static VI Reference" from the application palette.  Right-click and choose "Browse for path...", select the VI ond disk, then right-click on the static reference again and choose "Strictly Typed VI Reference."
    "There is a God shaped vacuum in the heart of every man which cannot be filled by any created thing, but only by God, the Creator, made known through Jesus." - Blaise Pascal
    Attachments:
    reference.PNG ‏7 KB

  • Server could not load the class

    I m trying to create a new adapter task bt when i select xliACE.jar from the dropdown box, its trowing an error " Server could not load the class"
    Below is the server log--
    ERROR,04 Dec 2007 09:18:48,217,[XELLERATE.JAVACLIENT],Class/Method: tcADPClient/introspect encounter some problems : RemoteException occurred in server thread; nested exception is:
    java.rmi.ServerError: Unexpected Error; nested exception is:
    java.lang.UnsatisfiedLinkError: no ACEUser in java.library.path
    java.rmi.ServerException: RemoteException occurred in server thread; nested exce
    ption is:
    Could any one provide some help
    Thanks

    Should compile java code with the same jdk as being used by OIM

  • Strictly typed refnum vs normal refnum for a waveform chart

    I know that one way of clearing a waveform chart is to write an empty array to the 'history' property of the charts property node. The help file for this states: "use strictly typed refnums when reading this properrty"
    I am looking at a program coded in LV 8.6
    a number of control refnums are carried around in an array (so strict typed)
    in some cases (but not all) the programmer used "to more specific class" to designate a waveform class when writing to properties for scaling the Y-axis, etc. Other times this is not done(?)
    We are now having an issue which appears to be that the chart is re-initialized when dynamically rescaled (I am not sure if that is what is going on, but that is what it looks like). 
    It looks like when the chart is dynamically rescaled the previously acquired data is gone and the chart starts populating fresh. 
    Haven't figured out what is causing this, and I am wondering if strict type refnums vs generic refnums may be a factor?
    Lawrence M. David Jr.
    Certified LabVIEW Architect
    cell: 516.819.9711
    http://www.aleconsultants.com
    [email protected]

    Waveform charts can hold different data types (they are polymorphic), such as DBL or 1D-array of DBL. When you want to set the history, you need a 1D DBL or 2D DBL respectivily. The correct data type is part of the 'strict type', I guess you will get the default instance if you use the non-strict (generic) type.
    But if this is releated to your problem, I can't even guess. 
    Felix 
    www.aescusoft.de
    My latest community nugget on producer/consumer design
    My current blog: A journey through uml

  • How to create a strictly typed refnum control using LabVIEW scripting

    I wish to use LabVIEW scripting to create a strictly-typed refnum control that is bound to my custom control (a type-defined cluster), but I'm unfamiliar with scripting and can't see how to do it.
    If I create a New VI Object, using Control Refnum as the Style, how do I provide my custom control to the VI Object Class terminal? When I try using a reference to my custom control.ctl file (using Open VI reference) I get an error: "Error 1057 occurred... Type mismatch: Object cannot be cast to the specified type."
    Or, if I create a new Control Refnum as above, using a standard Cluster as the VI Object Class, how do I then convert this refnum control to a strictly typed refnum that is bound to my custom cluster control type?
    Thanks in advance for any advice,
    Thoric (CLA, CLED, CTD and LabVIEW Champion)
    Solved!
    Go to Solution.

    Here we go...
    You have to create a new Control VI and then specify the VI Type as Typedef.
    Regards,
    Da Helmut
    Attachments:
    example.vi ‏22 KB

  • Cast generic VI to strictly typed VI

    Is there a way of casting a generic VI to a strictly typed VI through something other than from the Open VI icon?  I'm trying to make a generic VI to handle the open and cast it where I need it.
    Thanks,
    Adrian
    PS.  I should mention that I am using LV 7.0 and have tried to use the "To More Specific Class" icon without success.
    Message Edited by Been bitten by LabVIEW on 10-10-2007 03:18 PM

    Yes, but it won't do you much good. You can't use a type cast (that's not
    allowed), but you can use flatten to string and unflatten to string. That
    way, you basically have what you've asked for.
    All normal properties will work (only tried Panel Open). But the only reason
    to do this, is so you can call the Call By Reference Node. And that will
    fail. The node says something about the vi not being reserved. If you put
    this code inside a sub vi, LabVIEW (8.2.1) will crash (R6025 - pure virtual
    function call). This is not something that you'd want to use.
    There are probably other ways to solve your problem, but you have to explain
    what your higher goal is.
    Regards,
    Wiebe.

  • Reference behaviour of strictly typed controls

    I have a question regarding the bahaviour of a user-made cluster which I have set to strictly typed.
    I am using a reference to this cluster (Which in turn contains other clusters) to automatically read an ini file. I also have an array within one of these sub-clusters (Main Cluster - Sub-Cluster - Array). I want to set the values within this array (The elements of which are also clusters) using only the reference to the control. This works fine, except for the fact that I cannot programatically set the index of the array if my control is strictly typed. If I change the control to type-def, it works.
    Is this normal behaviour, and if so, can someone please tell me why? Does it have to do with altering the appearan
    ce of the control?
    Thanks in advance
    Shane.
    Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)

    I assume you mean "strict" type-def.
    Go to www.ni.com
    Search for "Application Note 159" (including quotes)
    Look at http://zone.ni.com/devzone/conceptd.nsf/2d17d611efb58b22862567a9006ffe76/a9fbcaa7a3d7922186256a3000652b56?OpenDocument#10
    Look at http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/1b04fd6a11e6f17286256c6300588bfa?OpenDocument
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • Getting List of SQL server and on selection of server get List of Databases using SMO

    Hi,
    I need to have functionality where I need to populate List of available SQL servers from local network, and when i select SQL server from list, get the list of Databases from that Server.
    For this i referenced SQL SMO Dll's and placed two drop down, one lists Server names, and one lists Database names.
    Dlls refered are:
    Microsoft.SqlServer.ConnectionInfo.dll
    Microsoft.SqlServer.Management.Sdk.Sfc.dll
    Microsoft.SqlServer.Smo.dll
    Microsoft.SqlServer.SqlClrProvider.dll
    Microsoft.SqlServer.SqlEnum.dll
    Above DLL's i have copied from SQL server SQL server 2008 installed location
    C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies
    DLL version : 11.0.3000.0
    Code i have used is:
    private void MainForm_Load(object sender,
    EventArgs e)
       DataTable dataTable = SmoApplication.EnumAvailableSqlServers(false);
       cmbServers.ValueMember = "Name";
       cmbServers.DataSource = dataTable;
    //Now, load Databases on selection of Server combo box.
    private void cmbServers_SelectedIndexChanged(object sender,
    EventArgs e)
       cmbDatabases.Items.Clear();
       if (cmbServers.SelectedIndex != -1)
          string serverName = cmbServers.SelectedValue.ToString();
          Server server = new Server(serverName);
          try
             foreach (Database database in server.Databases)
                cmbDatabases.Items.Add(database.Name);
          catch (Exception ex)
             string exception = ex.Message;
    It works where SQL server is installed, but in systems where no SQL server is installed, it is not working, it is not returning list of SQL server and so database list.
    Query is> can you please help me in this regard, what i am missing here, do i need to install any client component to use this?, or anything else what i need to do to make this functionality work.
    Thanks,
    Hemal

    Thanks Michael for replying.
    I have gone through the reply, and the link on how to get the SMO library installed.
    "To install the Client Tooks SDK without installing SQL Server, install Shared Management Objects from the SQL Server feature pack.
    If you want to ensure that SQL Server Management Objects is installed on a computer that will run your application, you can use the Shared Management Objects .msi in the SQL Server feature pack."
    I have few questions on "Shared Management Objects .msi" 
    Where do i get "Shared Management Objects .msi".
    only installing this msi will install SMO?.
    Can i ship this msi with my application installer?
    do i need to install x86 on x86 system and x64 version of msi in x64 system, or x86 can work fine with both, my application
    is x86 only.
    Thanks,
    Hemal

  • Select one of several FPGA VIs at runtime under RT program control

    I need a CRIO RT controller to select one of several FPGA VIs (or bitfiles) at runtime based on an operating mode parameter.
    The application requires the FPGA to acquire and process data using several different techniques based on a user supplied mode parameter.  Each individual technique will fit into the FPGA, but there is not enough room to fit all of the techniques into the FPGA at the same time.  Therefore, I need a way to programmatically select one of the FPGA VIs or bitfiles at runtime.  The processed data is transferred to the RT through a common DMA FIFO, and all controls and I/O can be the same for each of the VIs.
    I tried using a Case Structure on the RT to select the appropriate Open FPGA VI Reference call based on the current operating mode.  When I wired the RefNum output from each case to the common output tunnel, I got an error stating that the RefNums were of different types.
    I then tried binding the Open FPGA VI Reference calls to TypeDef or StrictTypeDef controls.  In both cases there was an error stating that some of the Open FPGA VI Reference calls were bound to a TypeDef control which had changed.
    Is it possible to select an FPGA VI or bitfile at runtime?
    If not, is there a way to force the FPGA compiler to layout multiple VIs with the same interface structure so that the RT VI doesn't care which version is running?
    If not, any suggestions short of duplicating the entire RT VI for each FPGA instance?
    Thanks!

    JohnZ wrote:
    Is it possible to select an FPGA VI or bitfile at runtime?
    Yes, using the FPGA Open VI Reference function as you are already doing, but you need a separate Open FPGA VI reference for each version of the FPGA VI or bitstream.
    If not, is there a way to force the FPGA compiler to layout multiple VIs with the same interface structure so that the RT VI doesn't care which version is running?
    No, the FPGA VI reference for each FPGA VI will be unique due to information about the interface and VI that is stored as part of the reference. If you are not using DMA in the FPGA VI, then you can use the Upcast function to convert the FPGA Reference into a more generic form which can be used interchangably with other FPGA references that have the same front panel configuration.
    If not, any suggestions short of duplicating the entire RT VI for each FPGA instance?
    Unfortunately no.
    Christian Loew, CLA
    Principal Systems Engineer, National Instruments
    Please tip your answer providers with kudos.
    Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
    or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
    to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense

  • RDS server message: could not initialize class com.adobe.rds.core.services.Messages

    I just moved to a new host with my own dedicated cloud server.  Using CF9.  Everything seems to be working fine with the server, but i get the following error when connecting to it via RDS through CF Builder 2.
    RDS server message: could not initialize class com.adobe.rds.core.services.Messages
    I get it when i first connect to the server, then if i try to access it again, it will let me in.  I also get an error when i try to open the first file.  Then its ok.
    I have no idea what it can be, i have not run into this on any other server that I have connected to.

    Hello,
    After 2 months of it not working for love or money.  I got a new machine and ColdFusion Builder 2 and started over.  It worked for a while.  Then when the trial version timed out a few days ago it killed it again.  With the same error.  So it is definitely something that gets “switched” within the code or configuration settings.   Rebooting about 3x seemed to fix it this time after entering the license number. 
    Yes to answer your questions below.  Yes, I did all those things below. Re-checked and checked numerous times.  Keep in mind the installation there worked for over a year then all of a sudden stopped.   I hadn’t changed anything at all.  And it just stopped dead, started throwing up that error. 
    I asked all the experts in my office.  One guy knows CF and Java inside and out and could not figure it out.  I searched the web and the issue is listed many times but with no real answers. 
    Thanks for getting back to me.  I am up and running with new machine.  But since I’ve seen the error on this machine now, I live in fear it will reappear and stop working.  So if you come up with any thoughts I would appreciate it. 
    Thanks,
    -Lyle

Maybe you are looking for