Jump to content

lvb

Members
  • Posts

    209
  • Joined

  • Days Won

    7

Posts posted by lvb

  1. I think every professional LabVIEW developer should take advantage of virtual machines.  Although, I do not recommend running VM's on your primary PC.  Some advice/tips:

     

    • VirtualBox
      It has fantastic remote desktop support.  It is also free.
    • P2V
      There are a few tools out there that allow you to do a Physical to Virtual conversion.  I have used this in the past to convert a "real" machine shipped to a customer into a "virtual machine" that I can fire up at any time for support reasons.
    • Snapshots
      Allows you to instantly save the "state" of a machine and restore it (while the OS/application is running!)

     

    We run a Linux server at my work that hosts multiple VirtualBox machines (one for every version of LabVIEW).  Developers access this over RDP.  I use these VM's on a daily basis.

    • Like 1
  2. I would suggest that you open the BD of every VI whose state is Run Top Level and then manually inspect their BDs for subVIs with the green arrow. This would at least minimize the amount of VIs you have to check (unless you open many dynamic VIs).

     

    That seems feasible.  Time to start hacking!

     

    I should probably add this to the idea exchange.  I am really surprised this is not in VI server or scripting.  Seems like a really basic and common piece of information.

  3. Things you can do -

    1. Add special code to the VI so that it logs when it starts running.
    2. Use the Desktop Execution Trace Toolkit, which should give you the VIs which are actually running. I think that it might also be possible to tap into that data yourself somehow, but that's not public knowledge. Maybe if you know the right people at NI you could get that info.

     

     

    Those workarounds don't really satisfy my use case: I need to find out what VI (front panel hidden) is still running in a large application.  Often this code is written by multiple developers.

     

    1. If I knew what VI was the culprit, I wouldn't need to add code because I could fix the bug.   ;)

    2. Tracing often changes the run-time behavior

     

     

    Things I currently do - Open the front panel of EVERY VI and look at the run button state.

     

    I was hoping that I could hack some scripting to grab the front panel window, but it does not return the toolbar.  Is it possible to get an image of the entire front panel window including toolbar?

  4. I can share your pain.  I have run into similar issues with Actor Framework messages.  I think the Actor Framework exposes some of the corner cases for LabVIEW's error detection and compilation.  I would fully expect LabVIEW to provide a broken VI for your Send Message function.

     

    I would suggest posting this to the Actor Framework forum on the dark side.

  5. Thanks for the response.  I agree that the best way to relink is to always rename from a LabVIEW project with everything loaded into memory.

     

    I am attempting to write a refactoring tool that can fix the "missing items".  This tool should be able to work with items that are no longer available.  The only way I have been able to resolve this within the LabVIEW IDE is to find the block diagram item and replace with... in the pallet or using quick drop replace.  A tedious process.

     

     

    I have another post in the scripting forum with some issues on the replace missing method here.

  6. I am attempting to create a scripting VI that will replace missing VI's and other LabVIEW objects (type defs, classes).  I would like to specify the fully qualified name of the old item and the path to the new item.  Any tips on how to do this?

     

     

    At this point, I can Traverse for GObjects but am having some trouble identifying the properties of the missing VI's.  The scripting nodes return the following error at the VI Name property node when the VI is missing:

     

    Error 1099 occurred at Property Node.
    Possible reason(s):
    LabVIEW:  Scripting: SubVI is not loaded.
     
    post-4274-0-63896900-1361234636_thumb.pn
     
     

     

    Replace SubVI Test.vi

  7. Is there anything that would make you more "delighted" without covering every available right-click menu option?

    How about a hook into LabVIEW to allow developers to add their own right-click menu items similar to the "JKI Right Click Framework"?

    Oh, BTW, I forgot to mention this earlier, but the multi-select right-click not working in the Control Editor (and thus also for LVClass private data) is a bug that has been reported and should be fixed in a future version.

    Thanks, I will take a look for the CAR

  8. Does anyon know if Norm's state machine has been born yet? I sure hope we don't have to wait 9 months after NI Week...

    :lol:

    Rebirth of the LabVIEW state machine

    8/6/12 (Monday 6th),4:30 PM – 5:15 PM,17 B

    Norman Kirchner, Senior RF Systems Engineer, National Instruments

    • Like 1
  9. Well you are right that Flatten Variant doesn't work. I was mislead by a quick trial and had no time to verify further as I had to leave for private obligations. However I can't accept defeat so I remembered another post where someone wanted to have an VT_NULL Variant and investigating into the solution I have come up then showed an easy and totally official way to do it. The VARIANT memory layout is fully documented on MSDN and the LabVIEW Call Library Node supports explicitly the ActiveX Variant type. So simply passing the Variant as ActiveX Variant pointer to a C function that looks at the first two bytes in the structure is all that is needed to get at the VT_ values.

    Enclosed are the VI to create specifically a VT_NULL variant and the VI to read the VT_ type. I haven't entered the entire range of VT codes into the enum and since those codes are in fact not continous it is probably better to use a Ring control instead but that is an exercise left for whomever is wanting to use this VI.

    Very impressive. Thank you!

    :worshippy:

    For others interested in rolfk's solution, check out the DevZone article on MoveBlock here.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.