Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Bryan

  1. If you're familiar with Property Nodes, you can use the "Strings and Values []" property for access to both the "Items" and "Values" defined in the combo box. Additionally, you can use the "Text.Text" property to get the displayed text (i.e. "Items"), while the value will always be that from the "Values" defined.
  2. Have you tried searching NI or the Rohde & Schwarz websites for LabVIEW drivers?
  3. I've been playing with this a little more and I believe a simpler way may be to have a string indicator that can show/hide a list box on "Mouse Enter/Leave". Here's a little example I whipped up quickly. Again, probably not a preferred or the best way, but doable. Note - I found that ensuring that the hidden/visible items list needs to have key focus if it's going to need to "appear" over another control or indicator, at least in my limited testing of it. Hover Menu Example.vi
  4. Someone else may know a better way to do it, but I was curious, so I did a quick google search and found this on the NI forums. I downloaded the "Menu_demo2_vi" and made a couple of modifications to the event structure - adding some "Mouse Enter" and "Mouse Leave" events to the event case that toggles visibility. I don't consider this to be a very streamlined solution and would opt for something better if available. But, it's at least proof that the behavior can be emulated in LabVIEW somehow. (Attached file is in LabVIEW 2020) Menu_demo3..vi
  5. I agree, the LabVIEW Advanced Virtual Architects Forums need more of this type of informative and riveting content. Thank you @ensegre for saving me from wasting a full 16:49 of my life watching the video. I watched approximately 20 seconds (cumulatively, while mostly skipping around), which was enough for me to confirm that there was nothing to pique my interest before exiting the video. I found the music too annoying for me to tolerate more than that.
  6. I never necessarily had a defined depth limit in my mind of how many levels I would deem too be overkill. For my uses, 1-3 just always seemed to be where it ended for me.
  7. It almost sounds like you work at the same place I do. I have a few of those users that at least make an effort, but they're few and far between.
  8. I'm in a manufacturing environment where the production operators are my end users. Even your "rather have" example would be ignored by 90% of the end users that I serve. They would just come to me and say "The red box keeps popping up.". I would ask what it said and they would tell me that they didn't read it. It appears that if they see lotsa text, they don't even attempt to read it. What I've had to end up doing is to capture the error message codes and transpose them into something the operators will understand. Then and present them with a shortly worded and flashy dialog with large text. In the background however, I'm logging the error message verbatim to an error log file that I, and other LabVIEW programmers in my company can reference for further information and debugging. To do this, I basically have a configuration file where the error codes are my keys, and the values are plain language error/failure/resolutions that will be presented to the operator.
  9. You are creating an array of objects, then trying to wire that array into a scalar input in your class methods. An array of objects needs to be handled similar to any other array - you will need to index each object from your array in order to use/operate on them.
  10. TL;DR - Download the Linux Community Edition 2021 SP1 ISO and extract it. In the "INSTALL" and "utils/install_helpers.sh" scripts in the extracted files, replace all instances of "ubuntu" with "ubuntu|zorin". For those who don't mind a little bit of reading (I can be long winded): I don't know if anyone has tried this yet, but I figured I would post it for archival purposes and future LAVA searches. For those who don't already know, LabVIEW 2021 SP1 supports Ubuntu 18 and 20. It's worth noting, however that the VI Analyzer Toolkit is not supported on Ubuntu according to the "README.html" file that's included with the installation media. For grins, I tried installing it on Zorin 16 simply by running the normal "sudo ./INSTALL" command, but was met with "Sorry, LabVIEW is not currently available for this O/S and architecture...." In order to get LabVIEW 2021 SP1 to install on Zorin 16, just open the "INSTALL" and "utils/install_helpers.sh" scripts with root privileges, and search and replace all instances of "ubuntu" with "ubuntu|zorin", then run the "INSTALL" script as usual. My assumption is that this may work for all distributions based on Ubuntu Bionic or Focal by adding the conditional for what is returned with the following commands. In the example below "zorin" was returned: $ . /etc/os-release $ echo ${ID} zorin Disclaimer: Because ZorinOS isn't listed as an officially supported distribution, assume that it is not supported by NI.
  11. It sounds to me like the error is being generated by the Python script and isn't necessarily the SystemExec VI if it claims to be missing args. As Rolf said, if you pass it a FALSE for Wait until Completion, LabVIEW will send the command and return immediately - not waiting for the python script to return. Some things to remember, if your "script.py" or "file_name.hex" is a path or filename that has any spaces in it, you'll have to put the entire path or filename in quotes as I believe arguments are parsed by Python using spaces (Please correct me if I'm wrong, I don't know much about Python.): python.exe "C:\path\to\script.py" --port com3 --adr 2 "C:\path\to\file_name.hex" Alternatively, you could try passing the command switch to execute and then terminate: cmd /C python.exe "C:\path\to\script.py" --port com3 --adr 2 "C:\path\to\file_name.hex" If your python script is waiting for a response before returning to the command prompt, then SystemExec will hang forever waiting for a response. In that case you'll have to pass a value to STDIN. We had an instance of executing an EXE via SystemExec that would wait for a "Press any key to continue" if it had an error and would hang forever waiting for a key press. Our solution was to pass it a "space" constant for STDIN so that it would return. Interestingly, it wouldn't return the error via STDERR and did so via STDOUT.
  12. Just a thought, but I think that many younger/new developers aren't necessarily searching for online forums anymore. My guess is that newer generations of programmers may view online forums as "social media for old timers'". If they have questions, they may look on platforms such as Reddit, et. al. If they want to contribute, they may create videos on YouTube or other platforms where the rewards for contributing could be financial, notoriety or "influencer"-like status with a larger potential audience. This may be more appealing for newbies than reputation badges on a small, concentrated community. I'm not implying that the motives are all so superficial for all "young pups" entering or participating in the world of LabVIEW. However, there are more "shiny" alternatives to a single online forum from which assistance can be gained and contributions made. I guess, being an "old timer" myself, I still prefer the concentrated and focused community of smaller online forums, where one's questions and contributions don't get lost in the noise associated with larger platforms. This is why I almost exclusively stick to LAVA and rarely visit the dark side for any information.
  13. That link should have been posted with a disclosure. After clicking on the link and attempting to read the page, my brain BSOD'd.
  14. I agree, a dedicated location for things like this would be a good idea.
  15. I agree. I had originally written a pretty lengthy and fairly mean post because I have such personal distain for such things, but after I finished my first cup of coffee for the morning I calmed down and made it more civil. Personally, this type of thing actually deters me and people like me from patronizing such products/companies/organizations.
  16. It's interesting that you just joined the forum yesterday, and all of the posts for your account so far have been with regard to TVI. Additionally, the OP was asking about tools to automate testing of LabVIEW itself, not a TestStand/Test Sequencer alternative.
  17. Cross Post: https://forums.ni.com/t5/LabVIEW/How-to-edit-the-element-value-of-the-2d-array-of-string/m-p/4207337
  18. In my current role, I've inherited a LOT of bad code with who-knows-what inside. This usually ends up in complete refactoring of the code wherever possible and removing unused VIs, unless they're part of a library or collection of VIs that are or could be relevant to the application in the future. VIs that are obviously reference/example/testbeds, I will leave in for future reference. We keep all of our code in SCC, so if we remove VIs that we consider to be unused/junk, they're never really permanently deleted. If the application is not in SCC, we add it in it's current state as a "snapshot" so that we can always revert or retrieve VIs if they end up being needed later.
  19. The majority of my own career has been based upon LabVIEW. I was exposed to it in college for a semester in 1999 and have loved using it ever since. Unfortunately, my dream of working for an NI Alliance partner in order to really develop my LabVIEW skills, (like many of you lucky bums) never became reality (I was normally the sole LabVIEW guy. Now I'm part of a very small group with varying levels of proficiency). I've dabbled a little in various text based programming over the years, but never really spent enough time to be as proficient like I have been able to in LabVIEW. Therefore, I need to start thinking about a "Plan B" myself in the event that my company, for whatever reason, declares that "...henceforth, shalt thou NOT use LabVIEW and TestStand...". If that ends up being the case, I may have to seek alternative employment unless they are willing to send me to classes to properly learn the new programming language du jour. This piqued my interest and I downloaded it to give it a look. The majority of what I currently do in LabVIEW involves user interfaces, so WISIWIG looks ideal. From the screenshots I saw, it reminded me of the days when I dabbled in VB6.
  20. That is an interesting case, but based on the piddly amount of compensation that most average Joe's get for their channels, I would expect NI to overlook that case based on the fact that you are essentially giving them free advertising and potentially drumming up interest for their products. Many channels are sent free products by companies in the hopes that the channel will shill their product, or at least give them some free exposure. I wouldn't think that NI would be any different, but I could most definitely be wrong.
  21. I was wondering when NI would go this route - seems like every entity that used to produce software as a product is going this way. I like to minimize dependencies as much as possible in everything I do. Software as a service is one additional dependency that I am not looking forward to dealing with. Since my license is provided via VLA (for which I'm not the administrator as I was at my previous company), I guess it's more of the same. Wouldn't surprise me if sometime in the future, some sort of NI subscription is required to use the RTE in order to run executables. The day that happens is the day that I move to another programming language as my primary. National Microsoft... err... Microsoft Instruments... I mean... National Instruments is becoming more like Microsoft each year and I'm not liking it.
  22. Okay, I understand now. Once you've opened a file reference, you can keep it open for the duration of the program's use without much in the way of a resource concern. Unless you're creating a MONSTER of a program (I've seen some, they exist) or have memory leaks somewhere, modern computers should have plenty of resources. That being said, Opening/reading/closing a file repeatedly is harder on resources than simply keeping a reference open, but depending on the scale, it may be a non-issue. Using the function in your example to read the file does this, but for your purposes (as I understand them), this should be fine. If you were constantly reading/writing/streaming to a file several times a second, then using that VI wouldn't be recommended. So, yes - I would say that you could open/read the file to populate the combo box, then later open/read the file again to search for the desired values. My guess is that these two actions aren't going to be occurring at a fast/high enough rate to be of any concern with regard to resource usage.
  • Create New...

Important Information

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