Jump to content

hooovahh

Moderators
  • Posts

    3,432
  • Joined

  • Last visited

  • Days Won

    289

Everything posted by hooovahh

  1. You probably already saw a discussion on Code Sharing, which has no conclusion yet. My opinion is if it is stable and good and you don't expect much changes, submit it to the Code Repository here (package preferred). If this is still in a state of flux and development, a site better equipped with change management like BitBucket or GitHub would probably be better. That being said this is a fine place to start discussions and suggestions, and can be moved to Code In Development at your request.
  2. Well G Package Manager appears to be more project oriented. So install OpenG Array 1.0.0 for this project, but then be able to install OpenG Array 2.0.0 for a different project, or not have OpenG Array available at all in another project. Lots of duplication but moving closer to sandboxing projects. Because of this I'm unsure how palettes would be effected by VIs installed for a project and not the IDE. But yes it does seem to be command line heavy, and not intended for installing VIPM or NIPM packages.
  3. Having NIPM install VIPM packages seemed like great starting point...but that likely isn't going to happen. NI really should have just bought JKI's IP, and turned it into NIPM, building off of what has worked well in current LabVIEW. Oh and another thing to muddy up the waters, there is already a 3rd package manager aimed at LabVIEW, G Package Manager. Haven't used it yet but it was presented on at the CLA Summit in a session I didn't get to see. I wouldn't be surprised if all of these use a zip or some compression as their file format. EDIT: NIPKG can be opened in 7-zip and is listed as a "Ar" Type, looking similar to a Debian package with gzipped tar balls.
  4. Continuation of package building with OpenG and DEAB tools moved to here.
  5. Have you reinstalled DAQmx since getting this error? If not you should. Also what version of LabVIEW, MAX, and DAQmx are you using?
  6. I do love and use the Pre and Post Build/Install/Uninstall VI features. I know it would be best to have some features be native, but having the ability to hijack the build process to make it do custom things really adds so much flexibility.
  7. Contributions to the community are always appreciated thank you. That being said you might want to look into the other alternatives that have seemingly similar feature sets to yours. I've been using LVMark for several years. It isn't HTML but a type of markdown format. Years ago there was another attempt called Formatter which does look like HTML.
  8. @David_L I get your point. If someone wants to migrate this all to the Wiki that's fine. I've been keeping the pruning to a minimum, so anyone updating a wiki can incorporate the suggestions from this thread.
  9. Despite being on LAVA all the time, my power is quite limited and I believe something like hosting a Wiki here would take more than administrator controls and would need site controls, meaning only Michael would be capable of this. I don't mind hijacking this thread, as I intend on periodically pruning it (as I've done a little so far) and after some time and discussions die down I'll delete the user posts. Obviously this would be counter productive to the discussion taking place and I did think about locking this thread from the start but this is fine. Keep it coming just know that your post maybe deleted after a conclusion has been made on a subject, or your content has been added to the main post.
  10. To be fair I'm not the only owner of this, any moderator or admin on LAVA can update this as well. But I get your point.
  11. Wow lots of good discussion. Totally agree. I intend on presenting on reuse and package strategies, and in researching and discussions with NI about NIPM I think they got the messaging wrong. By even calling it NIPM, where many LabVIEW developers have only known one package manager their whole career, means we already think NIPM is to replace VIPM. But looking at the design choices NI made it doesn't look great. One major current limitation is that a package is made for a specific version of LabVIEW. This means if I want to distribute a toolkit I need to make a NXG 1.0 package, NXG 2.0 package, NXG 2.1 package, NXG 3.0 package, etc. This is because the installation path is to a specific folder which changes with each version. Then there is the lack of pre and post VI calls. There is an option for calling EXEs. Needless to say I'm not thrilled about having two (at least) package managers to think about, manage, and deploy with. As for code sharing, I really like LAVAs low barrier to entry, flexibility with license, and automatic discussion page creation. I like Git, and Bitbucket's version control and collaboration features. I like NI's larger overall traffic, with potential high exposure. And I like the tools network for ease of access for the developer. Maybe instead of us trying to come up with the answer to "How do we share code?" we should just have a list of options, and reasons you'd use each, then talk about how to use each option.
  12. I'd argue this should probably go under contributing code, not finding code. Either that or going under the Beyond Basics Training where more advanced topics are discussed. I might be wrong but Reference Designs Portal isn't really a place I would see going to find a toolkit, or example on how to do some operation. It seems more like a place to understand design patterns, and structure code.
  13. I don't have admin controls, just moderator...
  14. Dang so I can't even get this to work at the moment. Using a physical keyboard CTRL+Shift+Up and Down does what I'd expect. But the Keyboard Event code I have for some reason isn't doing what it should. CTRL, and Shift seem to be working, or at least my on screen keyboard shoes them being activated when they should. And the Up and Down appear to work as it goes up and down a line of text. But when I put it in my application, it just doesn't do what I'd expect. This is also with a whole bunch of waits added in case windows doesn't like fast key presses all the time. I know I used this technique before but I can't seem to find the code that I used.
  15. I couldn't make that work that way either... It is possible something changed in LabVIEW since I used this trick. It seems that setting the Index Value on the array makes focus go away. And setting the KeyFocus any other time just sets the first element...darn. But one method that does still work (and sucks even more) is you can navigate using various key combinations and you can simulate key presses to get the desired result. So set KeyFocus to the string control. This sets the focus on string control in the first index of the array. Now if you press CTRL+Shift+Up Arrow, and your focus will be on the cluster element at index 0. Now press Tab and it will be on the second cluster element. Now press CTRL+Shift+Down Arrow and your focus will be on the second string control. If you pressed tab twice it would be the third. So you can programatically set the string control focus you want, but there is several complications with this method. If you aren't looking at index 0 you need to do additional math to figure out what the index value should be, and how many times a tab is needed. If I get some time today I'll try to post an example VI. Mondays after a trip are always crazy
  16. The content on this page will go away soon. It's currently being migrated. > New Location < Read about the wiki here This thread is intended to be a place for all things LabVIEW to be able to be found. If you have a resource for LabVIEW feel free to reply with your own content. We are interested in things like person blogs, forums, training information, and anything a user of LabVIEW might want. Several links and sections have been lifted from another resource available over on NI labeled the Content and Communities for LabVIEW Application Development. I'm New To LabVIEW and Need Help Basic Training Information NI Learning Center NI Getting Started -Hardware Basics -MyRIO Project Essentials Guide (lots of good simple circuits with links to youtube demonstrations) -LabVEW Basics -DAQ Application Tutorials -cRIO Developer's Guide Learn NI Training Resource Videos 3 Hour LabVIEW Introduction (Alternate Google Drive) 6 Hour LabVIEW Introduction (Google Drive) Self Paced training for students Self Paced training beginner to advanced, SSP Required Rookie Mistakes in LabVIEW by Digilent State Machine Design Pattern Basic Tutorial Wikipedia Article Sixclear Video Event Driven Design by NI Beyond Basic Training These are topics that are useful but not for those new to LabVIEW or software development. Topics may cover things a novice may have a hard time following. Object Oriented Software Design NI FAQ on Object Oriented Programming Creating Classes When Should you Use Classes Abstraction Abstraction Distraction Introduction to Object Oriented Programming and HAL by Elijah Kerry (Video), Plugin Framework JKI Hardware Abstraction Video Actor Framework Community Introduction Framework Basics Error Handling Basics by NI David Maidman’s Blog Post SOLID Error Handling by Dmitry Structured Error Handler Express VI by NI I Have Questions LAVA Forums - Independent community, with less NI oversight, and generally less new users asking basic questions NI Official Forums - NI's official forum, monitored semi-regularly by NI and the best place to find official support LabVIEW on Reddit - Smaller community but has Reddit features like voting on posts and comments causing interesting topics to get more attention LabVIEW on Stack Overflow - Q&A style community I'm Looking to Find Example Code and Toolkits NI Tools Network - Polished released code distributed as VIPM packages. LAVA Code Repository - Place for Verified, and Unverified code allowing for discussions, in addition to hosting NI Code Exchange / Community Documents - Similar to LAVA but NI's site licensing means less flexibility if you are posting code and want a custom license. NI Reference Designs Portal GitHub - Trending LabVIEW Projects, and All LabVIEW Projects GitLab - LabVIEW Projects BitBucket - LAVA Projects on BitBucket I'm Looking for Blogs There are lots of LabVIEW blogs, covering lots of topics. Some blogs go cold after some time, so below is a table of blogs, highlighting the last post made. At the moment this is updated manually so this will need to be updated periodically. NI's Blog NI's official blog, updated very frequently System Automation Solutions 10/24/2018 Sam Taggart's Blog JKI Blog 9/13/2018 Blog often highlighting JKI's activity including VIPM and other LabVIEW tips DMC Blog - 9/10/2018 LabVIEW category of DMC's official blog Steve Watts Random Ramblings on LabVIEW Design - 10/23/2018 Random Ramblings says it all but often good insight into designs and discussions we don't think about but should question why we use them and how Delacor Blog - 9/4/2018 The Daily CLAD - 9/4/2018 Hooovahh's Blog - 8/24/2018 Brian Hoover's blog focusing on LabVIEW and CAN The LabVIEW Lab - 10/22/2018 Eric Maussion's blog Bloomy's Blog - 8/13/2018 LabVIEW category of Bloomy's official blog Ajay Blog - 10/10/2018 Ajayvignesh's LabVIEW blog Wiresmith - 9/25/2018 James McNally's Blog LabVIEW Craftsmen - 7/3/2018 Wineman Technology Blog - 10/10/2018 LabVIEW category of Wineman's official blog MGI Blog - 6/5/2018 Moore Good Ideas blog Eyes on VIs - 5/25/2018 Christina Rogers blog often focusing on LabVIEW's visual design UI's and UX's QControls - 5/15/2018 Blog series on QControls, and open alternative to XControls Walking The Wires - 5/11/2018 Chirs Roebuck's Blog Not a Tame Lion - 5/5/2016 LabVIEW Artisan - 2/5/2015 Darren Nattinger's LabVIEW blog often highlighting lesser known features of LabVIEW Culverson Software's Blog - 9/20/2014 LabVIEW category of Steve Bird's Blog VI Shots - 7/31/2014 LabVIEW video podcast by Michael Aivaliotis Brian Powell - 12/26/2013 I'm Looking for Videos Similar to blogs, video channels can be hit or miss, and content can become dated. But if you are more of a visual learner these channels offer a chance to learn by watching others. NI Week & CLA Conference - Username: LabVIEW_Videos, Password: LabVIEW GDevCon Conference LabVIEW Architects Forum Delacor's Channel System Automation Solutions LLC Dr. James D Powell NI's LabVIEW Channel LabVIEW ADVANTAGE LabVIEW MakerHub Looking For Certification Help Certification Nugget: CLAD - Certified LabVIEW Associate Developer Certification Nugget: CLD - Certified LabVIEW Developer Certification Nugget: CLA - Certified LabVIEW Architect Connecting With Other LabVIEW Developers User Groups Online communities are a great way to connect and contribute. In addition to online there are Local LabVIEW User Groups which meet regularly to present and understand LabVIEW and NI topics. Find one close you you and subscribe or monitor topics. NI often supports local user groups, but they are in most cases ran and organized by the community. NI Week NI Week is another great way to connect with and learn. Hosted in Austin Texas once a year it is a week long conference with training, discussions, keynotes and other activities. Many previous NI Week videos can be found online but no single source is available which aggregates all marketing, keynotes, and technical sessions in one location. The best resource for content is a site setup for video hosting done by Mark Balla over the years. Summits If you hold a CLA or CLD there are specific summits for you that are free. These are often tailored presentations for a specific skill set with the focus on technical discussion and problem solving. There are two CLA summits, one in Austin Texas, and one in Europe both held once a year. CLD summits happen more frequently and locations change from year to year. Consult their specific discussion forums on NI to see when the next one is. Just like NI Week Mark Balla has several videos available here. Needing Professional Help If a project is getting out of hand and is beyond the skill level of your team, NI suggests looking at one of their Alliance Partners. Contact one in your area, and they will help try to best guide you on your project. I Want To Contribute to the Community Developing Code For Others Arguably the most difficult thing about sharing code, and reusing code, is the mind set and considerations associated with other developers using software you wrote. It is a type of mental exercise where you need to put yourself in the mind of the developer using your software. NI's Reference Deign Portal is a good resource for understanding various coding structures, and best practices for designing code for others, and can help with standardizing code for other developers. TBD (Expect this to be a section on various forums, and code repositories that can be added to along with helping out local user groups, and presenting at NI Week and Summits) Other Important Software Topics Source Code Control (SCC) Recommended SCC for LabVIEW Software Configuration by NI Code Management at Center of Excellence VisualSVN - Free SVN Server Software Delacor Blog with SCC Category -SVN Setup for LabVIEW By Delacor (Video) -Git Setup for LabVIEW By Delacor (Video) SOLID Principals Agile Software Development Principles, Patterns, and Practices (book) How Applying Agile Object-Oriented Design Principles Changes Designs and Code by Dmitry SMoReS development Unit Testing NI Unit Test Group VI Analyzer (Automated Code Inspection) The VI Analyzer is a tool by NI that is included with some versions of LabVIEW and allows for automated inspection of LabVIEW software, to check for various conformity or nonconformity to software practices. The VI Analyzer comes with many useful code checking steps but others can be added. Checkout the VI Analyzer Enthusiasts for more community made tests. LabVIEW Style Checklist Center Of Excellence - Learning VI Analyzer LabVIEW Style Guide Rules to Wire By Part 1 Rules to Wire By Part 2 Virtual Machine Usage TBD
  17. Compound this with the fact that these doubles are actually being sent as ASCII strings, with some amount of precision and things get worst. How about a table? Or a 2D array of strings? There could be lots of rows and columns and lots of data to send. I agree that ideally the best approach is the compromise between the two extremes. Don't send just 4, and don't send all, but instead send the 4 +/- some percentage of the total values (or maybe an upper limit of N). The problem is this approach involving a skill I don't have alot of, which is web development. As soon as it is in G I can handle it, but trying to send over say 20 of 100 values, then keeping track of the starting index, the scrollbars position, triggering to get more values, handing if the user scrolls too fast and needs to see blanks until the data refreshes, all is things I have difficulty with. Basically what I'm getting at is you are right this is the best approach, but I'm not certain I'm ready for that type of challenge yet, I'll need to think about it, and hope I get like a week vacation to do it a few ways before refactoring half a dozen times first. Also glad you got something on Windows 10, I haven't experimented with it much but I didn't think there was any additional issues last time I tested it. Again maybe increases security causes issues? EDIT: Oh and Flavo you may want to get the latest release from here. I don't know things are fixed, but your first image showed the first release with WebServices.
  18. Sorry I don't really know the answer to this. Chrome on desktop and mobile is primarily the browser I've been using. I did notice that in IE there is sometimes a security warning that you need to enable something for it to work. It is possible that there is some Edge security thing stopping it from working well. I have put some effort into adding arrays, and scrollbars to this. Scrollbars I think I have working well enough, but when it comes to arrays there are multiple ways to do it and I couldn't decide which way met use cases better so it is on hold until I get some more time to try things out and think about it more. For discussion here is the thought process. If I have an array with 100 items in it, and I see 4 rows, and a scrollbar. How should the data be sent back and forth? Should I send all 100 values with every refresh? Or only send the 4 items that the user can see? The drawbacks to only sending the 4 values the user can see, is that when scrolling that scroll value needs to be sent, and then the new 4 values need to be sent back, and I feel like this would cause a laggy feeling. Of course sending 100 values every refresh is also undesired. Keeping track of the changed values would probably help
  19. XLR8 doesn't depend on having Excel installed at all to work, but it has some major limitations over Excel. Last I knew graphs and charts weren't supported at all. It really is just a way to write and read cell data not too much on the fancy formatting side.
  20. So I didn't know where to post this but I thought some might find this interesting. Someone had a HP 34401 bench top multimeter that was working fine, but had a display that was fading and was hard to read. So they probed around the display communication, saw that it was SPI, and then made a device that received the SPI data and put it on a new OLED display. They then fitted all of this inside the old unit so it looks as good as new. https://hackaday.com/2018/08/29/faded-beauty-dmm-gets-an-oled-makeover/ It makes me want to try to find some scrap hardware on ebay and see if I can repair it. Of course I don't really need another random piece of half broken equipment in my office.
      • 1
      • Like
  21. I haven't heard that argument but I think it is a good one. Often times I will see some odd behavior in a larger application, and then start pruning it until it is small enough to send to NI. It often has a weird unpredictable behavior, and contains some amount of the original application. I will send the minimized program to NI with instructions on how to reproduce it and what the observed behavior is. From my point of view I can't say "Memory allocation when using DVRs in a reentrant inlined VI set to subroutine, causes a race condition with an IPE structure if the moon is out." I just have weird behavior and send it to NI. They have a bug tracking system but I assume my whole project goes along with the issue and my instructions. I'm not sure how easily NI could expose the issue to the world to vote one, or view, without including my application. And even if they did it might not always be clear that an issue I'm having is the same as someone else's. I think a publicly tracked issue tracker is a good idea, and I'd like having it, I'm just saying I can see why NI doesn't do it. Issues with JIRA, and a web browser won't contain 5,000 individual files of source code to reproduce the issue.
  22. Yes I was referring to smithd stating: I was saying one reason (again not a great one but one nonetheless) is that if you do wire up errors with no immediate purpose, it does allow for checking the timing between nodes easier by using the error timing probe.
  23. So I think part of the reason I hear people say the same thing of "Does anyone at NI even use LabVIEW for real projects?" is because every decently sized project I've worked on has these same types of issues. And it sounds like other users are in the same boat in some sense. If every real project you used LabVIEW on had huge compile time issues, builds that fail 3/4 of the time, constantly needing to delete compile cache to build, long load times when switching contexts, slow drag and drop, long save operations, and other IDE usability issues, then asking "Does anyone at NI even use LabVIEW for real projects?" starts to be a valid question. There certainly has been times when using NXG that I've thrown my hands up, and wonder why someone at NI didn't notice a glaringly missing feature, or a usability issue. Things that I'd hope any real developer would notice. With NXG there is at least the valid excuse that NI is prioritizing features. Sometimes I wish I could just have someone from NI follow me around all day and see the issues I have which aren't show stopping, but annoying enough to hinder development.
  24. Another reason to have them (but a poor one really) is that using probes I can check the time it takes to execute functions. These probes generally just operate on the Error data type, but with adaptive probes could likely be made for any anyway.
  25. Purely cosmetic. That being said I do have a preference. Inputs go in on the left, and outputs on the right, not from the bottom unless the terminal is on the bottom. I think it is easier to read this way, but don't get hung up on it.
×
×
  • Create New...

Important Information

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