Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. Last week
  3. This works. Thanks for the quick reply and fix.
  4. Yes, I’m pretty sure that if you use an array constant for your sparse values and you use a constant enum to index into that array, then labVIEW will constant fold the array indexing and look up. if you do this in a subVI, to use that look up in several locations, then you’ll probably need to set this up VI execution mode to in-line into the caller, in order for the constant folding to work I’m the calling VI. That being said, if the enum integer values are used as the indices into your look up array, then the operation should be lightning fast.
  5. Maybe... weird that nothing else seemed to be affected at all though. Not a major concern, just thought it was curious. That's a pretty good idea... Certainly easier to maintain, although I wonder how well Labview optimizes code like that. I'm thinking it would be less efficient since there would be the external VI call to index the look-up table, but in most cases it would be a constant enum indexing an constant array... I wonder if the compiler is smart enough to just evaluate that to constant value when I build the application for deployment. One again, mostly just a point of curiosity. It's not like that anything I'm doing is that performance sensitive anyway. Thanks for the suggestion. I may do that. 😄 Edit: I read the link after commenting on the suggestion; I assumed pushing every value into an array constant and indexing, but that example is using a case structure. I wonder if there's any significant difference/benefit to one way over the other. I guess the array based LUT could have a share of space allocated to undefined values, but it shouldn't really be that much.
  6. @Voklaif We dug into it and it turns out to be a LabVIEW bug. The solution is for the user (you) put a To Variant function before the call to Flatten to JSON String, since the bug seems to be inside the coercion dot (and the To Variant function doesn't seem to have that problem). Note: here's the bug (and fix) reduced to a very simple example (example VI also attached for anyone who wants to play with it)... Coerce to Variant Fail (LV2019).vi
  7. This looks like a bug. (Note: I've filed a bug report in our issue tracker here: https://github.com/JKISoftware/JKI-JSON-Serialization/issues/34) I see the same thing as you. The "bridge_data" is missing, here, when it's the only element in the cluster. However, if I add another element next to the variant (so it's not the only element in the cluster) then I see "bridge_data" in the JSON string. JSON Test ignoring single variant in a cluster.vi.zip
  8. We resolved the issue. Apparently some malware scanning setting in our web filter.
  9. I have been using JKI Design Palette and the EasyXML toolkit for a few weeks and I must say both are very useful tools, the former making my application look more professional and the latter saving a lot of time compared to coding a custom XML parsing. However, the "Best Attempt" Parsing feature of EasyXML turned out to behave differently from what I expected. Using the Easy Read XML File or Easy Parse XML functions, when passing an array of (type def) clusters as the "LabView Data (type)" argument, I expected that the missing data from the XML file (i.e. an element missing from a cluster) would be replaced by the default value defined in the type definition. It turns out not to be the case. The missing data is replaced by the LabView default value. This is problematic because this default value (0 for an int) is among the "legit" values I intend to use, as opposed to (for example) -1, that would allow me to immediately detect missing values. What surprises me most is that this behavior seems to have been acknowledged as non-optimal in this topic from 2010: Is there something I am missing here ? I tried using strict type definition, to no avail. The typedef enum I have inside my cluster also defaults to the first value, not to the default value I defined. Thanks, Henri
  10. Hi, I found today the JKI JSON tool, which looks great, but I've encountered a problem. When I try to "wrap" some data around a new object, with a cluster with a single variant it ignores it. Please see screenshot for clearance: The output is the same. I expect the left string to have the "bridge_data" in it. Is it a bug or am I not using it correctly? Thank you
  11. I've seen similar problems when VIPM gets an error checking the network for the package repository feed. If we solve the first issue, the second problem will go away.
  12. A.) Is it a "System" package that you're looking at? B.) Or, did you set the Target to System and then are you looking at a LabVIEW package?
  13. Another interesting observation: If I choose Not Installed packages, I get a list of packages. Regardless of which package I choose, I get the following when I try to install it: "Package is not compatible with your operating system or any LabVIEW version installed..." I am running Windows 10 with LV 2017
  14. One more idea... Is the clock (date/time) set correctly on that computer? If not, that can cause HTTPS connections to fail, since the certificates can't be verified correctly.
  15. The hover effect does not show when the VI is in Edit Mode. It should work OK when the VI is running or when it's in Run Mode (tip: use <Ctrl+M> to toggle between Edit and Run mode).
  16. Shoot. That setting was my secret weapon. Now, I'm not sure what it could be... If you're interested, you might try VIPM 2020 Beta and see if that fixes things. It's pretty stable at this point and we're actively fixing issues.
  17. Yes, I checked that setting. I tried both settings. Both give the same error when refreshing
  18. Thanks for posting to the idea exchange and letting me know more about your packaging use case. > Side question: Any idea why Chrome freezes will VIPM is processing a (very) large package? I'm not sure, but Chrome can use a LOT of memory with lots of tabs open. It could also be related to disk usage. I'm not sure. 🤷‍♂️ > over 1200 defined messages. Since LabVIEW does not support sparse enums Hmmm... Maybe you could create your own non-sparse enum that you pass into your VIs and then use a conversion VI with a look-up table to convert these non-sparse enum values to the sparse integer values used by your low-level library. This is discussed a little bit here on lava.
  19. One thought I have is that you might try the Options >> Network >> Configure Proxy to Access the Internet setting. Try testing VIPM with either "Use System Proxy Settings (Windows Only)" or "No Proxy (Direct Connection)" -- that can sometimes make a difference. PS - Your options page might look a little different, since I'm using VIPM 2020 beta. 😉
  20. Hi Jim. Definitely something with my PC. I tried from another computer and no error when refreshing the packages. I also tried running the Package Manager install and choose Repair. Not effect - still get the original error. My IT is scratching his head too. Any thoughts?
  21. I have a few libraries that contain a number of typedefs that I would like to insert on the function palette so they can be used to create constants on the block diagram, and I typically keep them all in a single typedefs folder while building my library. It would be great for quickly building the palette if the Add Folder of Controls option was available in the right-click menu for the Functions Palette.
  22. It would be useful for quickly building palettes if the file dialog that appears after selecting the Add Control or VI option allowed multiple files to be selected. This would be especially useful if a folder contains a mix of CTLs and VIs, or a mix of items that are wanted on the palette and ones that are not.
  23. Thanks, I'll do that. Option 2 would be nice, but I've wished a few times that the Add Control or VI option allowed multiple selections as well. That seems like the more versatile option if only implementing one of the two is feasible. Side question: Any idea why Chrome freezes will VIPM is processing a (very) large package? Background: This package I'm working on is actually a message dictionary for one of my company's products that has 27 different communication nodes and over 1200 defined messages. Since LabVIEW does not support sparse enums, the best strategy I've found to convert this into a LabVIEW library so far is using VI scripting to convert all the #DEFINES into individual VIs that are simply numeric constants wired to an indicator. Essentially, these are "constant" VIs. The end result is the library ends up having ~1450 files in it by the time all is said and done. LabVIEW has generally handled this library fine as a local library I've copied into my projects, but I wanted to package it to make it more easily distributed and easier to keep up to date when our R&D engineers release new product software. Understandably, it takes a while for VIPM to process all these files and build a package, and after installing it takes a while to update the package list. I suppose all of that is to be expected, but what's interesting is that Chrome freezes while a few of these steps are occurring. Every other application on my computer is responsive.
  1. Load more activity
×
×
  • Create New...

Important Information

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