Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by hooovahh

  1. Well I'm a bit confused. When I made this post I know that I was able to copy the 0px splitter, but now that I'm attempting to I can't get it to work. I'm in 2018 SP1 f4 now but doubt that extra patch level broke this feature and more likely I did something different then, or it copied it as 2px and I didn't realize it. I think a more useful thing would be to have a VI that can turn a selection of splitters into 0px ones, or back into 2px ones. This VI could be invoked on a VI and then it would make editing and positioning them a normal process. But Flarn's magic eludes me.
  2. Since 2011 I've been refining what I call Glued (Global User Event Driven) architecture. It is User Event driven using a publisher and subscriber model, with variants and variant attributes as the data containing things like the Request Data, event name, who requested the action, who is to perform the action, and GUID among other things. These parallel actors default to non-reentrant so that probing and debugging is easy (and possible on RT), and don't get spun up or down but instead have a known number of them at test start. They all start at once, and they all stop at once. If an actor needs to restart it can go through the queued message handler states that perform initialization but the only way to actually stop the actor is to stop the application with a global event, which is an event that all actors subscribe to. The actors are part of a Library but not Class. The architecture also supports events that are request only, or ones that will wait on a reply, and can do this by leveraging Futures or Promises. There is scripting tools for generating actors, template projects, or adding methods to existing actors. Manual panels, error actor, configuration actor, and probe actor are included with a template project since the majority of projects I have use them. Actors can be ran as the top level VI and events can be sent to itself. This way individual actors can be developed and debugged without the whole application, and without any other actors needed. Each actor can publish to a Sensor which is a scalar double or a string and is name based, or publish to it's own global which is a variant and can contain any data as a variant attribute and read with VIMs. These globals are read only to actors other than itself. Over the years this has been improved to support remote actors running on other targets such as RT with Network Streams being the back end for this. Requests for action can be sent to these remote actors, and reading the actor's global, or Sensors can also be done locally or remotely. It sounds like a lot of extra bells and whistles and there are times I'll start a new project just doing my own thing from scratch. And every time I've done this I ended up regretting it because some feature was built into Glued that I would have to re-write or hack in my custom project. Over the years I've just convinced myself that even small projects should start with some actor based design.
  3. Show us your code if you can. You can invoke a flush TDMS, but I suspect it is something with errors that aren't being handled.
  4. I didn't plan on git or Tools Network. The Tools Network has a larger barrier to entry than I want to mess with for something like this. And I've been lazy and just never done anything with Git. The source is all there when you install it, the only thing missing is the VIPM config, and a Pre-Build VI. I use Remove Duplicates From Array probably the most, and also I think I use Foreign Key sort quite a bit.
  5. What are the popup dialogs you are seeing? Like the normal ones asking for what software options? Or asking to accept eula? I haven't messed with silently doing things since the the package manager got involved, but the NI installers I've been using have needed "/qb /AcceptLicenses yes /r".
  6. The only thing to add to Neil is that the Wait Until Completion should be True if you are going to read the standard output after it is complete.
  7. Negatory, I've been going every other year and NI Week every other year.
  8. Your file doesn't exist, or you typed it wrong. I just did a test where I made a batch file with ping localhost as the only thing in the file then did the same thing you did and it worked. I'd suggest putting an output on your error, and Standard Error to see if it returns anything like file not found. Also you may want to test small with a batch file like dir or ping.
  9. Breaking News: R&D expert at technology company predicts the end of the world within the next year!
  10. I had this discussion with a good friend of mine who is a senior developer in a texted based language. He has 15 years of experience in real world development, has probably 10 developers under him, and he keeps up with all the latest in the tech and software development world. He mentioned to me a few times that in his experience he sees the projects that have many many layers of abstraction, and code hiding behind code, only to find that debugging them is difficult. And even searching for what a function is actually doing leads down many holes of things calling things. Where the intermediate developers make a program that is straight forward, and does what it needs to. His conclusion is that his years of experience of seeing when things work well and when they don't, help guide him how complex or how simple a set of code needs to be. And when he talks about OO he very much is open to the idea that he just doesn't fully get it, but all of his experiences are summarized with "It looks great and it sounds like it solves my problems, but then in practice it falls apart" and I followed it up with a reply I've heard and that was "Well maybe you just don't fully grasp the right way to use it." And his reply was "That's what OO experts tell me." When it comes to LabVIEW I feel like I have a good mix of OO and non-OO code. Having no classes in a large project is probably a bad sign. And having all clusters be a class, is also probably a bad sign. Hardware abstraction, and plugin architectures is a couple places that OO just fits in really well in my mind. Reuse code in general also works well. Everywhere else I'm not apposed to it, but I can see some draw backs.
  11. Oh for pete's sake! I guess AppData is probably a more appropriate place to store this stuff. The source is actually here on LAVA. It is the full installer that I hosted somewhere else because I didn't want to store a large single EXE on LAVA, but the source seemed appropriate enough to host here. Work hasn't pushed Windows 10 on me for my main development machine yet so I haven't tried this in that OS.
  12. If your front panel is broken up into panes (which I think would help you if it was) then you can also set the color of the pane programatically with the Pane Color property.
  13. So I wasn't there but there was a public announcement at GDevCon about a new edition of LabVIEW called Community Edition which is the LabVIEW Professional version (I read that as application builder included), and completely free with no watermarks for non-commercial use. NI hasn't made any post about timelines, or other details yet but I hear those are in the works. This is obviously a huge thing for LabVIEW as any monetary barrier to entry will discourage new developers from experimenting with LabVIEW. And then there is the fact that those that are familiar with LabVIEW, can keep up with the newest version outside of their company, or when they are between jobs.
  14. I sent Michael an email. Not sure where that Contact Us goes but I don't see it.
  15. There is several efforts on getting the Linux RT virtual machine working with a few methods of success. I don't have the spare hardware or time to see if it is possible but I too suspect you can get the Linux RT OS on a desktop. My own concern is there is no support, and potentially the licensing issue.
  16. No you can't do what you are asking. There are a few things you might want to know, but none will totally fix your situation. Starting in LabVIEW 2017 there is a forward compatible runtime engine. Meaning binaries build in LabVIEW 2017 can be ran in the 2018 or newer runtime engine. When you build a EXE there is an option to force it to run in that one version of LabVIEW, or the newest one installed. Then if you wanted to run a new version all you'd need to do is install the new RTE and it would run in that. Obviously that is a relatively new feature and not going to be useful for you now. Also there is the fact that LabVIEW 2009 while not official supported in Windows 10 will most likely run just fine. I've installed LabVIEW 7.1 in Windows 7 and had no issues, other than tracking down old drivers to support it. So you might be able to convince your IT team that the 2009 RTE should be used. Without the source that really is the only way to run that EXE. The binary is compiled for that RTE and can't be recompiled for another target or platform unless you have the source.
  17. So most of my interactions with NI in that capacity are documented somewhere. If I presented at NI Week, it is available online. If I attended NI Week then I have expense reports on it (and I know I attended), if I present at a user group I post my slides after the presentation, if I participate in a beta I'll remember, or even have the beta VM still on my computer. So what I did was when my certification was about a year from expiring I just started adding up all the events and presentations I did. Once I reached 50 points I sent an email to NI saying what I did and when and how I was up to 50. They emailed back within a couple days saying I was then certified for another 4 years. The one thing you might have a hard time with is remembering what user groups you attended if you aren't always a regular.
  18. It might also be possible to load a GIF into a .Net PictureBox. I have some demo code for this but for some reason I get a .Net exception but others online have said it is possible.
  19. I had some issue with a bad stick of RAM in my computer that made the installer not work in unexpected ways and I got a similar error too.
  20. Wonderful suggestion. Most LAVA members that are older than some date have a wiki account and are welcome to update it.
  21. Maybe it has something to do with the fact that we have a more graphical mindset and don't care as much as long as we can convey a thought. Maybe because we are primarily engineers? Or this is a wiki with a relatively small support base? In any case thank you for your wiki contributions.
  22. All very good points and good concerns. Personally I would capitalize Boolean, but I may forget occasionally. I would also prefer subVI as I've gotten used to the NI standard. I can see the confusion with LabVIEW and G, and often I go back to what the community at large uses. If I say "My programming language of choice is G" some may confuse this with GCode, or something else. If I say LabVIEW I think that conveys what I mean to the general public more. For this reason I default to "LabVIEW" but at times will say G. Public opinion may change, and that may mean updating the wiki. And if there are specifics I'd prefer separate pages for 20xx and NXG, but whatever. One thing you might not be aware of is that there is a place for page specific discussions on the Wiki Talk Page. You could make an edit, but leave a comment asking for direction or leave it open to preference. That being said I think the opinion of most moderators on the Wiki is more that getting something which is non-perfect, is better than having nothing. I'd encourage others to make pages and fill in what they can, even if they are unsure of how to handle some of these differences. Things can always be cleaned up and refined later.
  23. Here is an answer by NI about why DIadem and Excel add-in do weird things with spaces. https://forums.ni.com/t5/DIAdem/Spaces-In-Property-Names/td-p/2831180 Basically its due to how it is indexed and put into a database. The standard LabVIEW TDMS API does allow writing and reading properties with spaces in them.
  24. Does the Get Properties return an error? If so what is the error? Show your VI that does the reading and writing. Oh and what is the property names there are a few that NI reserves.
  25. Not really. I mean it might be possible but an easier way to handle this would be to setup your VI to run on open, and then just ask your users to double click on the VI from a shortcut somewhere like the desktop. Then it will open that VI in LabVIEW (because that's what happens when you double click a VI file) and on open it will start running it. You can even configure the VI to quit LabVIEW when the VI stops running or the user closes the window. Then they wouldn't even know it is running in the IDE. This does however go against some standard programming practices and the better answer would involve still turning the code into an application, and figuring out what features you are trying to use that isn't available in the run-time engine. And try to code around them.
  • Create New...

Important Information

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