-
Posts
3,431 -
Joined
-
Last visited
-
Days Won
289
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by hooovahh
-
Yes that's what I do with VIPM. There is a Post Install VI that either adds subpalettes, or runs VIs in the package that defines what palettes to edit and how. For instance you might install a new package and all it does is add a class to the palette along with the other ones. It could add an Advanced subpalette for instance. Or adds a subpalette in a specific row and column. But some are just a list of all sub palettes in alphabetical order. This all works just fine if the required external dependencies are installed. But if they aren't then I wanted a way to install them without a hundred missing VI dialogs. A second best is to just not allow installing it at all.
-
Sure but if you have an installer, and it also needs to manipulate an MNU to files that have external dependencies that are missing, you are going to see the same Browsing dialog, or if you try to edit a library to add an MNU to it you'll have the same issue. This isn't a VIPM issue, but instead an order of installation issue. I think having a Pre Install VI that just checks for the installed component, and then gracefully fails the package install will work fine.
-
Yeah what Darren said. Still I think with a combination of Pre Install checks, and the dynamic loading I can come up with something that works. Oh or an XNode that drops a copy of a dynamically loaded VI, if that VI isn't broken? I did start digging into the palette editing code a bit. It seems something inside the "Palette Menu.lvlib:Set Items.vi" is causing the browse dialog when palette items are missing. Looking at it I can't see any place that would open a reference to it, so I'm not sure why it is doing it. By the way I'm not sure who to thanks for the fact that the palette editing code appears to be all G, but it is nice.
-
Thanks Darren. Just for a little bit of background. I'm trying to make a VIPM package, that when installed doesn't popup all the time asking to find missing VIs, if they are part of NI toolkits that aren't installed. The primary example I have is I have some CAN packages, that use the NI XNet library. If you install the package before XNet then you get dozens of browsing dialogs trying to find things that it will never find. It makes the install take much longer waiting for the timeout of each, or clicking "Ignore All" constantly. One of the reasons the browse dialog appears is the Post Install VI edits the any Libraries, and Classes to add the MNU to it, and setting it to the Default menu. So attached is some very incomplete and hacky code that can edit a Library or Class at the XML level to add an MNU file to it, and set it to the default of that library type. That way when you right click a class it brings up that menu palette. This seems to work well enough and just needs some clean up and testing. I did find another source of browse dialogs during a package install, and that is that I also might edit an MNU to add or remove subpalettes, as part of the Post Install, and Pre Uninstall. I haven't finished troubleshooting but it appears that the Write Palette function causes the browse dialog to come up, if some dependency of a VI is missing. I may need to dig a bit deeper, or just live with these couple of browse dialogs. @dadreamer, thanks for the suggestion, but in this case that won't work. That code basically creates a blank library, bringing over only the icon part, and then it reads the library using the normal functions. The only way I could see that technique working here would be to replace all VIs with empty VIs, and then use the normal functions to read the library structure, then replace them back. Set Default MNU In Library Without References.zip
-
Is there a way to open a library reference without loading the dependencies? There exists a function to open a VI as mentioned here. Is there a similar thing for libraries? I basically just want to get the file structure of the files in the library, and possibly add a file to the library. I think I can do this with pure XML parsing but don't feel like going down that rabbit hole if it isn't needed. Thanks.
-
explanation / temperature regulation use-case
hooovahh replied to goodbyeworld's topic in LabVIEW General
It really sounds like you need to take some basic LabVIEW training if you aren't sure what a control terminal is. In general press CTRL+H and the help window will be opened. From there you can mouse over functions and the help window will tell you what the thing is, and what it does. Here is the Getting Started page of the Wiki. It has lots of topics but the Online Training is the best for this stuff -
I am taking a sabbatical from LabVIEW and NI R&D
hooovahh replied to Aristos Queue's topic in LAVA Lounge
I know I've post it on Twitter and Reddit when the time comes, tagging NIWeek when applicable, and I've seen several others do the same. I've also brought it up at several user group presentations. Lots of word of mouth at NI Week, but also people attending the BBQ also have been given ribbons to help advertise the event. At one point we talked to NI about getting some kind of official announcement in the NI Week flyers for the LAVA BBQ, but the consensus at the time was that we couldn't handle a huge influx of attendees. In the past we've had large groups of people show up at the BBQ and assume it was an NI sponsored event and was free. Having a general announcement would probably cause that to happen even more often. As for the advanced track it has gotten advertisements in different ways. The first year attendants were given pins that said something like "Ask me about Room G" or something, which people wore with their ribbons. Post presentations surveys were very positive so NI gave two rooms for the advanced track. It got a reputation for presentations that were less marketing and more technical, which NI Week surveys for years have been asking for. I believe the forum got traction because all posts related to scripting were getting deleted from NI's forums. People wanted a place to discuss the rusty nails that is undocumented features like this was, without having NI's oversite. LAVA got a reputation for allowing a larger range of discussions, like XNodes, undocumented file structures, password protections, etc. But to be fair NI themselves have loosened their restrictions on these topics too. -
In addition to what others have said, these undocumented functions are undocumented for a reason. NI doesn't want to support developers calling these functions directly, they might only work in small use cases, and the functions are subject to change. Most obviously don't change, and NI themselves would need to update the places they call a function, if for some reason the prototypes for the function were ever changed. So when NI does call one of these functions from a VI they will password protect the VI, to discourage developers from calling it directly. They'd rather you call the VI they provide (if there is one), and in future versions of LabVIEW they can change this VI's connector pane to force a broken VI, or just update their own calling of the VI to use the new prototype. If you do learn some useful function call, please do share it with the community. Members of LAVA are generally familiar with the undocumented, and unsupported nature of these types of things. But they can of course have value, such as Moveblock.
-
I am taking a sabbatical from LabVIEW and NI R&D
hooovahh replied to Aristos Queue's topic in LAVA Lounge
I think LAVA gets a decent amount of exposure at NI Week. It is usually one of the most popular events, aside from the main party put on by NI. But new developers aren't likely flocking to NI Week, especially recently. LabVIEW activity on reddit is quite low, less quantity, but I'd also argue less quality than LAVA. I chime in there occasionally, but without the subforums, it is hard to categorize what you are talking about. Jokes and memes along side NI announcements, people looking for homework help, and technical discussions all jumbled together feels weird to me. Other subreddits have enough activity that the popular stuff is pushed up by voting and the algorithm. -
Plot Legend Index Display Visibility Property Missing
hooovahh replied to X___'s topic in LabVIEW Bugs
Yeah one thing I wanted to do was only show it when the number of signals were greater than the number of rows shown. If I have room for 4 signals but only 3 were selected to be graphed, I figured I could hide the scrollbar. But that isn't true if the user scrolled down previously. A pain for sure. Always showing it at least never leaves the user being stuck. Oh turns out I did actually post my code that attempted to do graph and selection of signals differently here, with a youtube demonstration.- 5 replies
-
- plot legend
- index display
-
(and 1 more)
Tagged with:
-
Plot Legend Index Display Visibility Property Missing
hooovahh replied to X___'s topic in LabVIEW Bugs
Yes I've ran into this issue years ago. My solution then was to recreate the functionality of the plot legend I wanted. This was with an array of strings for the signal names, and a separate vertical scrollbar that I could control. I also had a color selection control, and a checkbox for each signal name. It was a real pain and in the end it wasn't worth the effort so I just told my users to remember to scroll up if they didn't see any signals (because I couldn't set the index on the plot legend). I almost made it into an XControl but ugh it was a pain. Maybe a QControl would be better.- 5 replies
-
- plot legend
- index display
-
(and 1 more)
Tagged with:
-
Community Edition is the same functionally as LabVIEW Professional. The only difference is the license. So to use RT or FPGA with Community Edition, theoretically you'll need to have access to those toolkits, just like you would for Professional. I have not personally done this.
- 28 replies
-
- labview2017sp1
- labview rt
-
(and 3 more)
Tagged with:
-
Yeah we ordered a PCIe FPGA card last August. We just got it last week. Our purchasing team kept emailing us every month asking internally if they could close the account. We'd say no, then tell them to ask next month. Glad it arrived, and glad it wasn't for anything system critical. This is mostly a pet project, and could probably have been done with an embedded microcontroller in C. But we did already have the code in LabVIEW, and maybe it would have taken a few weeks to re-write and test it in another language. Management involved is very aware of supply issues and didn't push the issue much. I did reach out to NI 4 times asking for a status update, and never once heard back.
-
I should test on my embedded cDAQ again. Because looking at the code it executes this command on Linux: for i in {%s} ;do (ping $i -c 1 -w 1 >/dev/null && echo "$i" &) ;done With a code comment from myself saying 1s was the smallest amount I could use, maybe it does support smaller values.
-
Attached is my terrible and hacky solution that works pretty quickly. On Windows it uses the Ping View Info program calling it from the command line, then parsing the results. It uses a couple of functions from the OpenG File I/O. Find Ping IP Devices.vi
-
See I didn't think it was spam right away since they didn't have a link so I flagged it as something to look at later to see if they put a link in the message later. Sure enough they did.
-
TestStand Developer certification exam new 4-hour format
hooovahh replied to AutoMeasure's topic in TestStand
I can't speak to the test itself, sorry I'm not TestStand certified. But in the future you may want to investigate renewing by points. I am not good at tests and am grateful that if I attend and present at User Groups, participate in betas, or attend NI Week, that I can renew without taking any tests. -
Malleable Buffer (seeing what VIMs can do)
hooovahh replied to drjdpowell's topic in Code In-Development
In 2020 SP1 I've found that an Always Copy will fix these broken wires. That obviously comes with a performance cost and isn't ideal. I hope 2021 SP1 fixes this. -
Not necessarily but I see what you mean. The conference usually has several presentations happening at one, in different rooms and you pick the one you want to go to knowing you can't see them all. At NI Week the popular presentations would be presented more than once, but most were presented once with slides available afterwards, and in some cases a recording. I haven't attended a GDev Con so I don't know if they differ from this. You pick the presentation you want to go to based on the one sentence summary, and whom is presenting. I have walked out of more than one presentation that looked like it would be one thing, but wasn't. I assume a presentation by a prominent NI employee, on the subject of LabVIEW future made it a popular session.
-
Primer on the new Multiple Errors VIs?
hooovahh replied to X___'s topic in Application Design & Architecture
I have used the feature in a couple of places. But I agree that it isn't ideal for several reasons. But still for debugging where I'm not sure what is happening and multiple errors might be generated cascading down, it does help add a bit more to understand of what is happening, when probing isn't possible. It certainly isn't something I just turn on everywhere, and it isn't something I recommend other use without knowing its limitations. This isn't a magic solution that now makes debugging and error handling wonderful. But it can be helpful. -
Love it, also we do have a meme thread on LAVA, that is way under used.
-
Ouch, yeah that wasn't great. We don't need to work on Unicode support because you've seemed to figure out these issues. I've gotten frustrated with support several times when it seems they drop an issue as soon as they figure out I have some work around. I have to remind them that I'm trying to make LabVIEW better, not just get my setup working. As I've been reminded recently the resources given to LabVIEW support and bug fixes is quite small, and prioritize make things take longer. Still it sounds like Windows got unofficial unicode support in Windows 95/98. Multiple decades later and nothing official has come from NI.
-
Sorry this is an English speaking forum. Google translate: I usually use OpenG Variant Configuration for getting and setting control values. It has a Write Panel to INI, and Read Panel from INI. This allows you to write all control values to a file, and then read the file back and set control values. Depending on your application you may need to do more work, like setting listbox items, or other properties that aren't values. Maybe periodically you could write this file in case a power outage happens. I use a UPS to keep my tester powered long enough to stop any test, or close any log.
-
-
I can talk a little about VLAs since I have them, but I can't say how they will be effected by this change because we haven't had to renew yet. In the VLA you have a system where you have a bucket of licenses that can be assigned to users, or computers. I think NI wants this system to be automated, and maybe for larger companies it is. But in every case I've seen a VLA done licenses are assigned or revoked manually. At my last company we had something like 4 professional licenses, and 2 base licenses. Every once in a while someone would create a goal for themselves to learn LabVIEW, and we would go into the VLA, and assign a base license to them and let them take online training. We'd often make a disconnected license, which was a license type that works without needing network connections to the server running the VLA. This is because IT, and VPNs, and internet stuff caused problems. It was just easier to make a disconnected license, then email them a file, with instructions on how to add it to the NI License Manager running on their machine. For these people learning LabVIEW we'd often make the license PC based meaning any user on that PC can use LabVIEW. But developers that worked on multiple computers could have the license be user based. This meant they could log into any PC on the network with their user name, and active LabVIEW with the same license. This user name also doesn't care about if the user is a local Windows one, or a domain controlled one. When you create a disconnected license you can give it an expiration date. This by default is the date that the next renewal takes place on. However you can create a disconnected license, for a user or PC, that is permanent. This license can be used on a PC without the internet, and can activate that version of LabVIEW or older. Again this can be based on a single PC, or a user name. When a new version of LabVIEW comes out, the VLA gets updated, and a new disconnected license can be created. I've been making permanent disconnected licenses for myself and I think that means LabVIEW 2021 SP1 will be accessible even after this change. After that I'm unsure if a disconnected permanent license can even be created.