Jump to content

hooovahh

Moderators
  • Posts

    3,432
  • Joined

  • Last visited

  • Days Won

    289

Everything posted by hooovahh

  1. Isn't this already handled by VIPM anyway? You include the license, and version constrictions in the package. When you upload code to LAVAG.org you are already authorizing LAVA to store and distribute your code.
  2. For the sake of discussion I envisioned it would be done like Porter said. We already have a process for uncertified and certified code. I would just intend on taking all the packages made that are in the certified section and put them into a VIPM repo. We could think about making the uncertified code into another repo, but I'm not sure how often someone making uncertified code would go through the trouble of making a package. I mean part of the point of uncertified code is it is semi-unfinished, or an alpha state, so spending the time to setup a palette and build a package could be someone not done until it becomes certified.
  3. That is a good idea, and I suppose we could. All we'd really need is a Windows based server running somewhere with a professional version of VIPM, serving up to a publicly accessible URL. That being said I'm fairly certain this site isn't ran on anything that would allow us to do that here. And then there is the main restriction I can think of which is that only those with VIPM Pro will be able to add this LAVA repository. The free version of VIPM doesn't allow for adding repositories to monitor. I still don't have a good picture on the VIPM Pro penetration in the community and wouldn't want to go through the effort of doing this if there are only a few who would find it useful. I've decided to open a poll to gauge interests but having never done that before I'm not certain I did it right...
  4. This poll is intended to help evaluate the interest in having a LAVA code repository that VIPM Professional users could subscribe to. Discussions of this should take place in the original thread, this will be locked.
  5. There is also a way to have LabVIEW include the front panel of a VI when building an EXE, that doesn't require project editing and is instead on the VI level. I'm not fully sure what these VI settings are, but what is happening is the compiler tries to determine if the front panel of a VI is used, and if it isn't then it removes it. If you can adjust the VI to convince the compiler to keep it, then it doesn't need to be explicitly kept from the project settings. Some of these settings that I believe will convince the compiler to keep the front panel, is to adjust the Window Appearance settings of the VI. For instance one thing I do is select the Dialog option, and then under Customize I will change Window Behavior to Default. These VIs will have their front panel kept and I believe it is because things like Show Front Panel When Called makes the compiler believe this is a VI that will be shown to the user. I think there are other things you can do to, like adding a property node in the block diagram that does an operation on the front panel. This again makes the compiler believe it should keep the front panel
  6. Thanks for, that. Looking more at how VIPM handles this I see a minor bug, or lapse of a feature. If you don't have LINX installed, that License Agreement button isn't there. Only after you choose to install it do you get prompted to agree to the more detailed license, that's why I assumed it was just BSD2. Then after it is installed that button for me at least is able to be clicked. Definitely not clear, but at least there is proof on the internet of someone involved in creating the license, stating the non-commercial use is intended for the deployment to Pi and BB. Now lets just hope no one has to site that in a court appearance.
  7. Attached is a test in 2014 that I think demonstrates what can be done. Instructions are on the front panel, and as it mentions this can be made better with a state machine, this is just meant to show what you can do with counting. Counting Test.vi
  8. Not sure where that is quoted from, but the LINX package on VIPM Tools Network states the license is BSD Clause 2, with the added exception that: The package doesn't include their whole license file but BSD Clause 2 is quite open, usually just stating that the license notice must be retained in some form like an about window. Not a lawyer, and in my case my end customer is my boss, or my bosses boss. It is a business setting but I'd consider it non-commercial. Again, not a lawyer, and I'm open to being wrong.
  9. Keep in mind there is no programming needed (on the Arduino side) if you are controlling it via USB. NI's LIFA, or better yet LYNX has a firmware that gets downloaded to the Arduino, and then the API they developed you use from the LabVIEW palette. It also supports several useful sensors, I2C, SPI, and a bunch of other great things.
  10. Is there a reason you didn't upload your images to LAVA instead of hosting it on an external site? Also in the future post the snippet or VI not an image. I wouldn't expect you to take a screenshot of notepad on a text based forum since it would make debugging more difficult. As for the code I don't see a while loop, how does this continually run? Adding this along with some wait functions, or a for loop for testing, and shift registers should make things easier to understand.
  11. I'm going to keep going on the extreme cheap side of things and suggest an Arduino. NI already has an API for doing buffered analog inputs, although I don't know the rates I expect on the order of 100Hz. Chinese knocks offs exist for about $3 or $4 with free shipping. Add a buck or two for a USB cable and case, and you have a pretty cheap USB DAQ device that uses NI VISA as it's low level making it work on all NI targets. Making it ethernet controlled via TCP is possible too, it would just need an ethernet shield and some code depending on what LINX supports these days. What don't you get? Fast shipping, expect it to take a month or 2. Also don't expect support, if you fry the thing there isn't a warranty. There is no voltage protection either. If you put 60VDC into it that pin is toast, and possibly the whole microcontroller. Need a yearly calibration for equipment? Yeah you're going to have to come up with your own calibration routine that gets approved. All that being said I have used an Arduino in a real production project...but it was for DIO only, and an unmodified LIFA toolkit which controlled relays in the system through a transistor. It was pretty simple and just for a cost saving on a low risk setup. We considered using a parallel port at one point. As far as I know this test is still in place being used
  12. I have a NUC running Windows 10 x64. I've successfully got LabVIEW 2017 development environment installed and things seem to work well.
  13. So my experience has been a bit better, but I totally agree with the comments made here. Our projects were in 2015 and things seemed good enough. 2016 came around and I tried upgrading only to find IDE performance and was terrible, with extremely long load times, seemingly unnecessary hour glass, and a Save All that would take about 20 seconds per VI. I reverted to 2015 and told NI about my experience and shared my project. 2017 came out, and it was a bit better so we started migrating projects to it. Upgraded to SP1 as soon as we could. It still wasn't at the 2015 level but I just needed me some VIMs. 2018 came out and I've been thrilled compared to 2016 and 2017. It is hard to say if it is at that 2015 level but in some respects I think it is better. Especially when switching between contexts of different target types. This used to take upwards of 30 minutes to go from a project with one target type, to a project of a different type. Now it is maybe 5 minutes, for this somewhat large project with lots of shared components. I think the main thing NI had to say that was improved, was the checks on if a thing needed to be compiled. In many cases this check to see if things needed to be compiled can be recursive, and waste lots of time when it should be clear to a human that it isn't effected. They tweaked things to make shortcuts in this check that greatly reduced this in some cases like mine. I'm always surprised to think back and how personally this issue has always been there. Trying to use the latest version of LabVIEW has always felt slow to me compared to the previous couple years. I very vividly remember working in 2011 thinking how terribly slow it was compared to 2009, or 8.6, and how editing code was frustrating. Then a few years later I remember using 2013 and when I would go back to 2011 things felt so much snappier and easier to use. And even further with using 8.0 and 8.20 verses 7.1. It is possible that this is just a sign of computers catching up in performance, and these couple year old versions were made for slower machines.
  14. Yes I use this all the time. I do wish this extended to Libraries not in an open project, vote here if you feel the same.
  15. I don't fully know what is going on in your situation, but this is one feature NI hasn't talked about but is demonstrated in their own XNodes. When you look at the Error Ring XNode on the palette you see a green/brown rectangle with the "?!" characters in it. But if you open this XNode in the XNode Editor from the full path <LabVIEW>\vi.lib\ErrorRing\Error Ring.xnode, then the icon shown for the library isn't the same as the one on the palette. In NI's case the Help ability for some reason will override the icon in the palette. This is also seen with the Match Regular Expression.xnode. I think this is an expected feature but one I'd argue isn't intuitive and doesn't match other things like the Class Icon constant on the block diagram. We wouldn't want some VI in a class to replace the icon. If we wanted to update the icon of the constant we'd update the icon in the class. I don't have a clue on why in your case adding help causes it to not be able to be dropped. I'd try to set some kind of constant in the Detailed Help for the Image, Bounds, and Terms, which you can get from your other ability VIs by calling them. Then set the Use Detailed Help to True. I think this is because the Help ability is called when needing to draw the icon in places like the help window and palette. I haven't used the Help Ability in any of my XNodes, it's just what I've seen done in others. Maybe if these aren't set, your XNode has no icon, and is being dropped but is invisible?
  16. Yes the auto running VIs thing can be annoying, especially when people help out on the forums and are opening code from unknown sources. My LabVIEW Tray Launcher I wrote takes over the .VI file extension and if a VI is set to run on open, it has an option to ask if you really want to run it, or just open it. An installer is also linked to on that page.
  17. Yeah this is old news. NI's response is here: http://www.ni.com/product-documentation/54099/en/ Also a few more outlets discussing it: https://www.helpnetsecurity.com/2017/08/30/labview-code-execution-flaw/ https://blog.0patch.com/2017/09/0patching-rsrc-arbitrary-null-write.html?m=1 I thought there was a LAVA thread on this last year too but I can't seem to find it.
  18. Yeah sorry about that, I wanted to back save to something older, but then if I do that I won't be able to open it and even test that it still works and relinks properly, since 2017 is the oldest I have on my current development machine. I have since then found a few bugs with pane and panels, and I re-did the cluster object a bit to work better if and when arrays happen but I don't need to to post that until I get something working well. That being said I don't know what my bandwidth on this is going to be lately. Awesome and good work, yeah I do hope that function improves in later versions but for now you can just force it to run and your platform may support it. If it doesn't then again something like the Web Publishing Tool could be used, where it is generated on a platform like Windows, and then copied to a platform that doesn't support that function, and then it will likely work for Value Only, and possibly Value and Visibility modes.
  19. You know I've seen this a few times and if I refresh the webpage (F5) it starts working again. I think it has to do with some race condition specifically with the graph control but couldn't isolate it. I'll make a copy of the Escape and Unescape string function so it doesn't pull in the whole library.
  20. Yeah honestly I'm not too thrilled with the example included, but it just grew organically. I'd like a set of examples that show different features maybe one at a time, in some kind of progression instead of trying to shove it all into one. One of those features that aren't demonstrated very well is the IP settings. I knew there would be an issue with dual NICs but just went with LabVIEW picking the primary one. If you haven't figured it out yet right click the String to IP and select Multiple Output and it will return all IP addresses on all NICs. Then you can use a for loop going over each one with the IP to String function and it will return every IP address on all NICs. I imagine an example where the user is prompted to select the IP address to use with localhost being one of them. I started working on scrollbar functionality, but ran into a few issues. The first problem is there are a few dozen JQuery scrollbar examples. Some I just couldn't get to work the way I wanted. I got close on one but can't query the pixel location of the scrollbar to send back to the VI so it can calculate the value. Ideally I'd have it work like a LabVIEW scrollbar and snap to an index but that requires even more knowledge I don't have. Cool idea on the Linux and Mac, I don't have have a need for these platforms but am curious on what the results are
  21. Yeah I'm currently working on improving that some more. On targets without a UI things like arrays aren't even supported. They could be but man my knowledge of web technologies is limited. I just added cluster support, and multi pane support. The real goal for me though is supporting reentrant VIs on an RT target. Also as far as I know that solution will require you to generate the HTML and JavaScript on a Windows host first, then transfer it to the target, which to be fair is what you have to do with the Web Publishing Tool. I'm just still a bit amazed that NI doesn't have a good first party solution for this. I have a reentrant VI on an RT target, and I want to see it in a browser and I can't. Even if you have a non-reentrant VI support for NPAPI has been deprecated for years. It seems NI's newest suggestion is to develop the web front end in NXG, then use tags or other communication methods to view it. That's fine and unfortunately might be the way I go but having to re-create my UIs in multiple IDEs, then writing code to communicate between the two, is a major pain. EDIT: Oh and lets not forget the fact that the Web Module for NXG currently isn't free.
  22. Most normal computers, can be turned into an embedded LabVIEW RT target. NI has a process outlined that installs a new OS, which can be a target for a LabVIEW project and can be deployed to. There are several limitations but what this means is any PC can be running head-less RT code that gets deployed to it and ran on startup.
  23. I have an update, but am unsure how to handle this in Github. I have an account but I don't know how to batch upload replacing all files, removing the ones not used, and doing so in a way that doesn't look like a bunch of small commits. So until I learn that here is the update and change log. Cluster support (Woot Woot) Clusters of clusters supported with recursion A rectangular decoration for the cluster is used Paths supported as string type JSON escape strings seemed needed for some paths Re-write of config dialog and settings Enum on Publish for showing the config, using settings, or load settings Option for Recommended Control Settings which minimizes data sent, and property and method calls Dialog shows controls with drop down options Drop down options only show the settings possible to that control hiding ones not possible Dialog also shows what kind of control each control is to more easily identify it Each object in a cluster gets its own setting for now Re-write of object creation This wasn't very scaleable before and is now a bit better with dynamic dispatch on the Object class. This should mean less work for adding new control types. Removal of many DVRs and DVRs of DVRs Many object types don't need to be DVRs since they are write once read many so these were removed, simplifying the clean up, and query of class data. This does add extra work in a few cases like with clusters but overall I prefer this method Multiple Panes supported Splitters and panes can now be used Scrolling within one pane can be done and the example will update New function for detecting if a pane has scrolled which can invoke a pane update that is needed. Few bug fixes in cleanup not closing all references Bug fixes in Value Only for graph, it never seemed to work before Added optional VI Identifier input to Publish and Cleanup I found a case where I wanted to assign an arbitrary name that wasn't a VI name or title. It defaults to front panel title, or VI name just as before. I do have some concerns about how to handle other data types. I want arrays, and scrollbars at some point. I think the only decent way to implement an array is going to be with N static objects, that the values of which are replaced to replicate an array, which also to me means needing a scrollbar control creating a virtual array or table. Any thoughts on the right way to do this? I'd also like to handle images of controls differently where we make the labels of these controls a separate object. At the moment the image contains things like the label and as a result I do see some weird scaling. Any help in creating scrollbars, or array controls in the web would be appreciated. I'd also like to handle Comboboxes, and static images as decorations, but just need time... FP Publisher With Cluster and Pane Support.zip
  24. Nope sorry. All projects previously saved in 2015 through 2017 (all 32-bit) open just fine in 2018 32-bit. In fact I've been enjoying better IDE responsiveness from larger projects and have moved up some of the projects to be converted that I might normally not until a service pack.
  25. For me the simplest reason I don't use TestStand for my sequencer, is that it doesn't run on real-time. I want to tell an RT target to run a sequence and have it run deterministically (mostly) and headless. No more worrying about Windows restarting on an update, blue screening, how to handle PC upgrades and the down time with it, etc. I just want an embedded device to run my sequence talking to network devices, serial, DAQ, and other IO. And have the Windows computer just get the data and do report generation. When RT is not a hard requirement, or in cases when there is an RT target but the sequence itself can be non-deterministic (steps ran on Windows), TS is a fine option. Just not one I've used often enough to be comfortable with it on large projects. When a small project does come I just use our sequencer anyway because eating your own dog food is good for other projects when issues are found.
×
×
  • Create New...

Important Information

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