Jump to content

hooovahh

Moderators
  • Posts

    3,392
  • Joined

  • Last visited

  • Days Won

    284

Everything posted by hooovahh

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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
  6. 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.
  7. 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.
  8. 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
  9. 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.
  10. 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.
  11. Thanks for the update Paul, when I get a chance I'll back save it to 2012, test it out and upload the new version. For those wondering Paul's new version has these new features: Added a path indicator Now handles multi-layer icons Added a "Save As ..." function
  12. Oh you mean like incrementing counters using the bucket filling technique with queued frames? (Part 9 of my CAN blog) Or even better, having the ability to load the XNet with custom hardware which performs the incrementing counters (and optionally the CRC) automatically? (Part 10 of my CAN blog) If you find this useful be sure and vote for the idea exchange to make this an official feature of XNet. Edit: Just realized that only answers half your question. As for detecting a frame drop out, you'll want to setup an XNet session of the Stream type, or Queued which allows to read every value of a signal or frame. Then just do an comparision that the previous value is one less than the next one and if it isn't perform some action.
  13. Great idea on the package manager, but this is only going to be a solution for those who are online, and are willing to download even more. Having an offline installer is always important, for archival, but also for convenience for future installs.
  14. Also worth mentioning here is the Device Drivers for May 2018. That 21+GB download just became 33+GB.
  15. The upgrade assistant that gets installed can perform a revert in the case of something not working right afterwards. I've never done this and don't expect it to work but it is there. Also this upgrade assistant keeps all these old files only for a month before deleting them itself. After that it will likely mean a format.
  16. Yeah I kinda missing the web install where you selected the things you wanted to download and then had an option to install or download more later. Still storage is cheap these days so I'm just downloading the 21+GB of data then merge the DVDs into a single installer. Probably going to be several hours more before it is done.
  17. But do those machines have the same scaling settings in Windows? This is a bug clearly, but I think if you can control the scaling settings on the deployed machine, then you can just have the building machine match. For me I just make sure all machines I work on and deploy to are set to 100%, too many weird things like this happen when they aren't. No problem just get a couple of 65'' TVs for your computer monitors...of course that makes a some new problems.
  18. I've built lots of packages and never seen anything like this. In Windows do you have any weird scaling settings on your display? Right click the desktop and go to Screen Resolution, then click Make Text and other items larger or smaller. I keep this setting at 100% to avoid some graphical issues. The next thing I might look into is the font settings in your LabVIEW.ini, and possible if you are using any custom fonts in your front panel controls. First make sure your display settings are 100%, and then I'd create a fresh LabVIEW.ini and try again but again these are just guesses. You can also try to build on another machine, or a VM and see if it works there. And lastly JKI has revamped their forums and appear more committed to customer support on them. If you can easily reproduce it you might want to post it there.
  19. What you are sharing with the community is likely too locked down to be useful for others. There is no source code to either the Server, which is just an EXE of which I won't be running outside of a sandbox. And no source for the client which is a packed project library compiled to only run in LabVIEW 2015. Having only 2017 means I can't use it all. If you provide the full source I might be able to use this on a project in the future.
  20. If we are talking the LabVIEW Runtime engine then there is no monetary cost in installing it. Again make an EXE, make an installer, and install it. There are a few toolkits that require a cost for a runtime engine like the Vision toolkit but most don't. If you are mistakenly calling the LabVIEW development environment "Runtime" take Neil's advice. This does have a monetary cost.
  21. Using the application builder you can make an installer that includes all the dependent runtime engines. What this means is you can create an installer that includes all dependencies for your application. In most cases this means you can just run this one installer on a fresh copy of Windows, and it will make your application run without error. Your message isn't clear and so I might be answering a question you aren't asking. If instead you are asking about LabVIEW licensing, just activate it with the serial you have. In most cases it works just fine as NI expects people to have to reinstall LabVIEW from time to time and has a limit on activations which is greater than 1.
  22. Okay thanks for your input. As mentioned on the dark side this is probably something that is possible by the OS, but likely lots of work that I'm not well versed in. I was really just hoping for a tool that I hadn't heard of and had a hard time searching for due to the term similarity with other virtual file mapping. Also I didn't know HDF5 had that feature, something to research for sure, but I think we are a bit too far down the TDMS hole at the moment. Not that we can't change course but it might be difficult and I'd need to see some really compelling reasons to invest in it. And since TDMS is handling all we need (I mean other than this) I don't see that happening soon. I'll either be merging the files early and keeping track that a partial merge has happened, that way I'm still just dealing with reading and parsing one file, or write an abstraction layer which makes reading from multiple files transparent.
  23. Crosspost on the dark side. Lets say I have two large files on disk. These files will be merged at the end of a process, but I don't want to wait for the end of the process to merge some of them for convenience of reading them. I could copy the two files, then merge them, then get rid of the merge, but I'm I feel like that is a waste of File I/O operations, especially if the files are large. I could work with both files independently and when I get to the end of one file open the next. But what would be simpler would be to make a linked file, or a virtual file. A file that doesn't really exist and is just a link to the real files. But the trick is I don't want this link to be just one file, I want this linked file to concatenate with another one. C:\Temp\1.tdms - 1GB file C:\Temp\2.tdms - 1GB file C:\Temp\Merged.tdms - linked file that when opened has the contents of 1.tdms, and 2.tdms. Is this possible? I searched around and only found references to mklink, junctions, and other ways of mapping real files to another virtual place on disk. This is part of what I want but I'd also like to combine the files in a virtual sense. Any thoughts? As I said I could combine them so Merge.tdms is a real file at 2GB in size, but making that copy will probably take a while. And I could write code to read from 1.tdms, then when it gets to the end read from 2.tdms but that complicates functions quite a bit, especially when there is likely a 3.tdms or 4.tdms. Has anyone heard of any feature like this?
  24. Looks like Smart Pi already comes with a web interface. Just use the HTTP function in LabVIEW to access the information in the same way a web browser would. These functions a pretty easy to use and the context help should help understand them more. Beyond that there might be an example in the Help >> Find Examples.
  25. Start small, launch a test panel in MAX and see if you see the signal you want. If you do write a VI (or open an example) that just reads the signal and see if it look right there. These reentrant clone like UI's make debugging more difficult and you don't want simple problems related to the setup or channel config taking up your time, when you are debugging the interface.
×
×
  • Create New...

Important Information

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