Jump to content

Aristos Queue

Members
  • Posts

    3,183
  • Joined

  • Last visited

  • Days Won

    202

Posts posted by Aristos Queue

  1. 3 hours ago, Neil Pate said:

    @Aristos Queue

    Does this make any sense to you?

    Weirdly, yes, it does make sense. This is what would happen if the DLL was corrupt and couldn't load. The DLL is found on disk, but it could not load. I don't know exactly how the node is getting the build machine's path, but that would be the path it had the last time it resolved successfully, so I'm betting it is encoded in there somewhere and being used as a fallback location.  

    Has someone been rewriting your DLL on disk? Can you try copying that DLL from a clean installation? 

  2. Is there anything you can think of that has been done special to this machine? Did you get someone from NI to send you a custom patch that has never been generally released? Like, I'm seriously grasping at straws here... we grep'd the binary of Mean.vi -- that path does not appear anywhere in the shipping copy. So somehow you have a copy of Mean.vi that is not the one that is installed by an installer. I would say "it's a fluke" except for that post earlier that someone else had this happen to their LV2017! Now I have a real mystery.

  3. Here's what should be happening...

    The path saved inside Mean.vi is (should be) a symbolic path to the analysis library. The exact thing saved should be
           <resource>:\lvanlys.*
    which you would see if you use the private Application method. (Actually, you'll see the "*" replaced by "dll" because the method does that small bit of platform-OS interpretation of the path.)
    image.png.5bebce7a4a48c3f8dadd46197832262b.png

    That symbolic path gets interpreted when the VI loads into memory. That means that...

    • ...if you open up the Mean.vi and open the configuration dialog of the Call Library Node, you should see an absolute path that leads to the lvanalys.* on your machine.
    • ...if you move the VI out of vi.lib and to some other location on disk, you should still see the same absolute path.
    • ...if you open that VI with a different copy of LabVIEW, you should see the path of that other LabVIEW's analysis library.

    But given what you're seeing...

    It seems like whatever the absolute path is being saved is not being saved as a symbolic path.
              "e:\builds\penguin\labview\branches\2019\dev\dist64\resource\lvanalys.*"
    is the directory on the build machine where the installer is created. I don't know of any way for this edit to be made, but clearly, it is happening.

    It seems impossible that we could be making this mistake everywhere... we would have lots of customers complaining about an inability to build apps. Heck, the VI would be broken in the editor!

    Very strange.

  4. I'm happy to report that I can reproduce your bug in LV 2019.

    I'm even happier to report that I cannot reproduce your bug in LV 2020. We did some work on that window for the new release, including some much needed refactoring. Whatever we did seems to have cured this issue. So it'll be fixed soon. I'm glad you have a workaround.

    • Like 2
  5. On 2/19/2020 at 11:20 AM, Porter said:

    Are you talking about right click during edit time or during runtime?

    Edit time. These are right-click plugins that make edits to the VIs and then those edits get immediately undone.

    On 2/19/2020 at 11:20 AM, Porter said:

    Does this explain the random right click of doom that freezes LabVIEW after right clicking on an item in project explorer?

    I don't know what you are referring to, but, no, these are block diagram plug-ins. See https://ni.com/lvmenus for details if you don't know about these useful tools.

  6. Issue: Customers have noted that every once in a while, right-click operations implemented in G do not work, but when they try to reproduce the issue, everything works fine. Some users have written the issue off to "I must have clicked the wrong thing." But, no, it turns out that there's a rare race condition in the transaction logic for the right-click plugins.

    You can fix it by downloading one VI and replacing the version that ships with LabVIEW. Details here:

    https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Bug-Fix-for-ALL-Right-Click-Menu-Plug-Ins-LV2015-to-2019/ta-p/4016064

    The bug? Don't close your refnum while you're still using the refnum. *head smack*

    And for those of you who tell me that refnum programming is easy, I'm adding this as evidence number N+1 that, "Sure, it's easy... easy to screw up." Long live dataflow! 🙂

    • Like 1
    • Thanks 1
  7. A) LabVIEW will hold onto memory once allocated until the system says it is running low or until we have a large enough block to give back to the OS. Task Manager tells you nothing about how much memory LabVIEW is using, only how much it has available to use. 
     

    B) Every wire can maintain an allocation of the data if the compiler determines that keeping the buffers inflated gives us the best performance. You can force a a subVI to release those allocations at the end of every execution by calling the Request Deallocation primitive, but I REALLY DO NOT recommend this. You’ll kill performance and possibly not save anything as people usually discover their app immediately re-requests the freed memory. Unless you are getting out of memory errors or are a real pro at data flow memory optimization, I recommend that you let LabVIEW do its job to manage memory. Beating LabVIEW and OS memory management generally requires bursty data flow with infrequent but predictable data spikes, where you can teach LabVIEW something about the spikes. 

    • Like 1
  8. 7 hours ago, paul_cardinale said:

    Ok.  As an alternative, is there a way to get the tab key to function as a tool selector on a block diagram that's in a SubPanel of a running VI?

    (It seems that the VI that owns the SubPanel is swallowing the keystrokes).

    Probably not. LabVIEW gets out of the way of the running front panel for you to have full control of your app, but there's never been a reason for us to do that for a block diagram. I doubt there's a way to achieve what you're trying to do in LV as it stands.

  9. I looked at App:Tool Number... it's code has never been implemented (which is why it is still private, presumably). Someone put it in as a placeholder and then decided they didn't actually need it. Should have been backed out but wasn't.

    I don't know of any programmatic control over the autotool. I'm not saying it doesn't exist, but I don't know of any.
    Can you fire a shift+tab key at LabVIEW using OS calls before the framework starts running?

  10. 17 hours ago, Darin said:

    In fact I would strip the units only to check the type, but pass the original value into the string format.  Taking it one step further, for a real floating point value with units I would cleanup the string by using SI units and then a little regex action.  Complex values with units are just too far out there to worry much about so I just use the default format.

    Scalar To String.vim 84.04 kB · 5 downloads

    That is better. I'll fix it. 

×
×
  • Create New...

Important Information

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