Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by jacobson

  1. I agree that you should probably push back a bit on the requirements. If you want to get real weird with it, I've worked with a group that did all of their hardware interaction in LabVIEW, built that code into a DLL and then called it from an excel macro that was continuously running.
  2. Is the 7-day trial for community edition or Base/Full/Pro? If it's for the later you can try just removing the license file from the usual license folder to see if it lapses into using the community edition license just fine. I don't know how exactly how the community edition is licensed but that type of thing happens a decent amount with volume license servers (LV complains about software that's about to expire but once it expires it just finds another license and is perfectly happy).
  3. Thanks for finding and posting this link. Visual design isn't something I would say I'm good at but I find it fascinating to read about the decisions behind this stuff. I think the video of the NI logo materializing is also pretty slick. https://player.vimeo.com/video/429461827
  4. Ideally this is how it works but I've been surprised at how many higher level technology decisions (usually some standardization effort) are made without any or with little engineering input. I actually wonder if the problem is worse for managers who used to do technical work because they are over confident in their ability to make technical decisions without input from the current engineering team.
  5. @Chris Cilino I think having this sort of request area can also add motivation to polish up some existing work. I would guess there are a lot of unpolished libraries sitting in a lot of private repositories and having a few requests for that functionality might give more motivation to return to the project, polish it up a bit, and actually publish it.
  6. Not a lawyer but I'm pretty sure all of the open source projects that the NI systems engineering group maintains just have the license in the repo's root. My understanding is that no license means you have no permission to use the software (https://choosealicense.com/no-permission/) so I can't imagine you could get sued for someone using a VI without a license because the default would be that they were never able to use that VI in the first place. Never heard of this one before but I might just use that for some of my GitHub repos. I feel like the only reason I put a license in any of my repos is to explicitly state that I really don't care.
  7. From the Data tab you can enable logging but I don't think you can export the trace after the fact for some reason. The wall of text is very intimidating but I'll try to give some advice. The way I see most people use DETT is by logging some giant 10,000 line trace and then they just dive into it hoping to find something useful. I usually find that this strategy is a giant waste of time. Ideally you have some specific thing you want to check with DETT (am I leaking references, I shouldn't be reaching this case but am I actually enqueuing that) at this point you can go into View > Filter Settings to filter out all of the garbage, leaving yourself a much more manageable trace to look through.
  8. File > Preferences > Editor > Wiring lets you change this back to CG behavior. NXG gives you the hand tool when you hold the space bar instead of Ctrl+Shift like in CG. One minor improvement (my opinion) is that, in NXG, the scroll wheel will move the diagram up and down but if you shift+scroll, the diagram will move right to left (CG just scrolls up/down faster). That's about the extent of my NXG knowledge.
  9. The equals check should mean that private methods are not discarded for the class you right-clicked on but the private methods of any parent classes will be discarded. It shouldn't be difficult but I don't know how fast it would actually be. From the class wire you can get the path to the .lvclass file and locked/password-protected libraries seem to just be defined by a single XML tag which isn't there for unlocked libraries. From my experience though, very few classes are locked. <Property Name="NI.Lib.Locked" Type="Str">locked</Property>
  10. Probably not too difficult of a change to make. My quick approach was to just ignore all private methods that are not part of the original class. This doesn't exclude Community scoped methods but I think you would need to get the LVClassLibrary reference to figure out who its friends are and I'm not sure how to get the reference from the information we get from the framework. From Set Palette for Class All I did was remove items from the list which were private and not part of the class you right-clicked. I didn't test it all that much but it seemed to work for the simple cases. Deleting elements from the array ended up being ~4 times faster but this way still works through 1000 elements in ~400us so I can't imagine anyone would have a hierarchy where it would really matter. Class Methods Shortcut Palette.llb
  11. That's pretty cool, does the menu change based on method scope?
  12. I I'm remembering everything correctly, you'll also have to be careful of which elements need to be redrawn when deferring FP updates. If you haven't deferred FP updates then toggling visibility of two controls will force LabVIEW to redraw just the area of those two individual objects but in the case that FP updates have been deferred, the visibility has been toggled, then updates are undeferred, I believe LabVIEW ends up redrawing a single rectangle which encompasses both objects (so for N objects just draw the smallest rectangle that would cover all objects needing to be redrawn).
  13. You can post it to the idea exchange if you want but I would see this making it hard to normally select the tunnel (just to move it around) for everyone using the auto-tool.
  14. Where can I sign the petition to hand over NI's social media accounts to you?
  15. As a contributor to other packages I would like acknowledgement for those contributions. This was from our user group and the general idea was that package owners can build a self-brand of sorts by being attached to popular packages but if someone makes significant contributions to many successful packages there should be some sort of recognition. I think the OpenG libraries are a good example where there may only be one owner but I'm sure there were some large contributions from several people that led to the overall success of the project. I don't know the best way to do this but the simplest might be to have a list of projects that you are a major or minor contributor to. You might be regarded as a minor contributor for any packages which you submit any meaningful code (some bug fix or new feature) while being a major contributor might be an acknowledgement from the package owner. In my mind a package may have a field for major contributors and the package owner could curate that list and link to other users.
  16. In 2014 I took a 1 credit Fotran course. I got a degree in Mechanical Engineering so it actually ended up being the only programming course I ever took in college.
  17. Sounds like a good idea if your goal is to get other programmers to hate you.
  18. I noticed all of the repos have their own ToDo.txt. Many are empty but for those that are not, you might want to create an issue for each item. I don't know if you can create a wiki for an organization but I would also want to be able to find information on how to contribute and some specifics like what LabVIEW version is being used for development, expectations on testing, and build/release process.
  19. I know right? Reality always gets in the way of our perfect plans.
  20. JK, surprise customer onsite means I won't be back until Wednesday night (hopefully in time for the dinner).
  21. I'll probably be able to attend a presentation or two each day. I'll also be there for the Tuesday night meetup at the Hideout.
  22. I see two general classes of errors. The underlying communication is just TCP/VISA primitives so, in many cases, the API will just throw standard connection errors (error 56). For specific Modbus protocol error codes (ILLEGAL DATA VALUE) should also be thrown as errors and look to have the value -389110 - ErrorCode. Now what exactly you do with those errors is up to you.
  23. I would say here you are just describing what an Actor does and nothing specific to OOP. An Actor can be an object but doesn't have to be from my experience. I personally think that this use of inheritance can be the most difficult to actually understand/maintain as well. If you've ever used an NI's Actor Framework where the inheritance reaches depths of 5+, trying to understand what the Actor does can be quite difficult (though someone might claim this is because they violated SRP). Perhaps I'm missing some historical context though and should read some older papers.
  24. Not a lawyer but I suspect it's a bit of a good faith kind of thing similar to Visual Studio Community Edition or Visual Studio Code. I also imagine the licensing cost might be cheaper than the potential of getting caught and NI wanting to do something about it.
  25. The red dot just indicates that LabVIEW will be coercing the data for you so whether there is a loss of information depends on what the data is being coerced from and to. For instance, if a U8 is being coerced into a U16 there isn't any loss of data but if we instead coerce the U16 into a U8 we are losing the top 8 bits of data (depending on what we know about this data this may or may not be an issue for us). FXP conversion will likely lose information because LabVIEW tries to preserver the value rather than keeping the bit value and changing the interpretation of those bits. If you attach the project you are working out of we should be able help explain what would happen for your particular case.
  • Create New...

Important Information

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