Jump to content

hooovahh

Moderators
  • Posts

    3,388
  • Joined

  • Last visited

  • Days Won

    283

Everything posted by hooovahh

  1. You see people say this, but I'm not sure it will be true. The reason merge works on text languages is because sections of the code will be edited by different users. Maybe a subfunction in a file I modify, and a different function in a different section is modified by another user. The merge can then realize the changes between the two and make one file that contains both changes. The reason this works well is because in the file these two separate parts of the file are not linked and independent. I haven't looked at the XML structure much yet, but lets say each object has an offset from origin, telling it where it should be on the block diagram. If I perform a select all, and then move them one pixel to the right, every object in the file now has been modified, and it would be more like editing every line in a file in my text based language example. If you then make some other change to the code, the automatic merge will see we both changed the same line of code. And even doing this in a text based language means reviewing the changes and understanding how the merge should proceed. I suspect that in the real world parts of the file maybe modified in ways that effects lots of objects, which will complicate the merge. I don't think the XML file will solve our problems with automatic merge in SCC, but I do think it is an improvement over the binary blob of CG. Yeah I think NI had no choice when it came to the cost of NXG, they simply could not charge extra for it at this point. If it were a separate stand alone product, with its own cost and SSP, this thread would probably have a totally different tone. And as I mentioned already, NXG 1.0 is not a product marketed for us. If you are doing a simple USB DAQ with acquire, analyze, present, and you know your scope won't grow, it isn't a bad product. The integration of MAX features, is also pretty cool. For most things you shouldn't need a separate application to just confirm hardware is working, opening test panels, taking data, etc. Basic system integration stuff before you are writing code. Not that I had many complaints about MAX but I can see why you might want a single experience. Oh and I heard someone say that MAX isn't going away just yet. There still will be some features MAX does that the System Designer and NXG won't do. Not sure what the long term plan is.
  2. While at NI Week I forgot to ask someone in R&D if they have been purposely providing one major new feature in CG (current gen is the term I've heard more often). And if so how long has that plan been around. VIMs are awesome and cool but has NI had that feature on their road map for 2017 release? And Channel Wires for 2016, right click 2015, etc? My only thoughts are I wouldn't be surprised if NI knew they had to have at least one new feature worth talking about each year, while resources were likely shifting to NXG. As for the message and release dates, I don't agree that releasing the finished product in 2020 (assuming parity is then with your example) would have been the best approach. Even with the non completeness, I can tell you I will be using NXG 2.0 (possibly the already released beta) for an actual real project. Until there is parity I don't mind using one IDE with its strengths, and the other for what it does well. Also I've actually heard some complain that NI didn't start putting alphas out and getting the opinion of others sooner. The thought process was NI maybe already made some key decisions before the those outside of NI could make suggestions for improvement. Now if NI was ready to hear that feedback, or make improvements based on it is another discussion.
  3. About 10 years ago Michael posted a Lurker Roll Call thread that was pretty successful. After some discussion at NI Week this year several members said we should start a new thread for the users out there that monitor LAVA and use it as a resource, but for some reason or another just don't make posts, or join in the discussion very often, or at all. So tell us about yourself. How often do you use LabVIEW? What is your technical background? What is your favorite project you've done with LabVIEW? Ever been to NI Week or the LAVA BBQ? And if nothing else have you heard about LabVIEW NXG? NI has been teasing a new IDE for LabVIEW for a few years and 1.0 is finally out, what are your initial impressions? Also feel free to also post in the recent thread about NXG. I just did a search and over 30,000 users have 0 or 1 posts on LAVA.
  4. Thanks Darren, I'd just like to add that these are useful for when you are trying to design more generic functions that can do different things based on different data types, or developing code that can works on data types in ways that would otherwise have to be hard coded. Here is a (poor) example. Lets say I want to write a subVI that will take in a cluster, and will increment every numeric in the cluster, but leave all the other data types alone. How would you do this? Well with these functions you can look at the Variant input, and determine what the data types are of the things contained in the cluster, and if it is a numeric, convert it to the numeric, increment, and put it back in the cluster. Certainly if you needed something like this you could write a static VI that works on your cluster but you'd need to create a new subVI for every cluster data type you have.
  5. Yeah I haven't heard of Node-RED either but I saw it in action on the Teensy Audio System Design tool which sorta blew my mind when it first came out. It is a some what dedicated set of needs (audio processing) so the blocks are pretty intuitive and kinda does for audio what I think Vision Builder AI does for vision. And just like Vision Builder AI you can export into code which in this case is the Teensy C++ for the Arduino IDE. Interestingly enough 7 years ago NI already had a graphical programming language that ran in your web browser but it didn't catch on called Web UI Builder. I remember the first time seeing it and being confused why NI was developing what seemed to be a separate graphical programming interface which was vector based UI and had zoom of all things. Now we know, since Web UI Builder (as far as I know) was the first thing NI made which NXG was built off of. Interestingly enough Web UI Builder still works and runs in your browser but depends on Silverlight so IE only. It's also nice to see that NI didn't continue with the ribbon interface as shown in Web UI Builder.
  6. A little while ago I posted some code on how to create boolean controls with images that scale well because the images are vector based and can scale up or down better than a static image like a PNG. After making that I made a utility that allows for selecting an image, and a control template and it creates the control. I showed this off to Danielle Hamburger and she encouraged me to clean it up and post it to the community. I'm still putting this in the In Development section just because there are several external tools needed that working around would be ideal if this were to be finished but for now it works and I use it often. So it works like you'd think. There is a library of vector images you select from, pick the one you want, then pick the Control Type (which is a folder of CTLs), then click create and it creates the control setting the decal button, VI description (adding License text if needed) and sets the icon editor icon. Dependencies If you just run the Vector Boolean Control Creator you'll need OpenG Time, OpenG File, and the JKI State Machine toolkit installed in LabVIEW 2015 or newer. The included libraries will work without anything else as long as you are in Windows (more on that later). If you want to include your own controls there are a few more steps and I left a text file explaining that in the Template Controls folder, but I included several already. If you want to add your own images I also left instructions in the Libraries folder. I wrote a VI that can convert from SVGs to the needed PNG and EMF files as long as you download inkscape (again instruction text files included). But inkscape is only a dependency if you want to use that utility to add your own libraries which are in SVG. Demo For good measure I made a Jing video showing how it works. Windows Only... So the Windows only part is an interesting one. I started with my UI being just a single 2D picture control and as you type your search in the top, it would go and open each image that matched the result, shift them into rows and columns, detect the number of columns shown, then detect and show mouse selection, and all the other stuff that would be needed. To say the least it was slow. I tried several ways to improve it, but in the end it was slow and I couldn't come up with a solution I liked. I could have added a search button but I really like the live search of typing it in and seeing it update as you type just like the icon editor glyphs do. So for a first release I went with the cheap and hacky solution and that was to leverage some .Net to embed a Windows Explorer window into my front panel, which is just the search results of a folder on disk. This now means you see the PNG images on the front panel, but it will only use that to show the UI to you, but then use the vector based EMF file when creating the control. Doing the search was a bit weird too since I couldn't figure out how invoke a search with the Explorer .Net so instead I wrote to a temp location a saved search that is XML, which I tell the UI to navigate to which then shows the search results. Oh and there is some .Net GDI resize going on so the PNG image is used as icon editor icon for the control but dependency could likely be removed with some G work. Anyway hope people find this useful. Vector Boolean Creator.zip
  7. I also heard information like this. No one at NI specifically said this, but I got the impression that the extensibility will one day (hopefully) be at the point that a completely different IDE could be made replacing the existing one. If this is true then maybe this is what NI plans to do for the other platforms. I too am a bit surprised more importance wasn't put on cross platform up front, especially if his reasoning was for native looking UIs when NXG doesn't have a single system control. And yes I already gave this feedback to NI in person, and at the expo floor where there was a board to make UI suggestions.
  8. Oh boy lots to take in (my own fault for not checking LAVA enough) Timelines are not published. If I had to guess (and I do cause NI didn't tell me) I'd say the current LabVIEW as we know it will be around for several more years. I wouldn't be surprised if the current LabVIEW still sees releases with new features and bug fixes through 2022, but again just a guess and NI them selves may not even know. There is a pane tool (at least on 2.0 beta I don't have 1.0) and you need to hold spacebar. Yes auto tool is the only option. I'm not thrilled with this but I understand and think I can get used to it. I was told by NI the 2.0 beta stuff can be discussed since it is in a public beta which doesn't require SSP or NDA so with that...it does have the HTTP functions in VIs and more importantly webVIs, but yes it is missing several other communications. Yes NI has a package manager and it seems to work pretty well so far with driver information and other larger installers. I'd assume you can have local repositories meaning offline installs. There is apparently some kind of command line interface for the package manager which will be useful for automated builds. As far as I know this is Windows only. Not sure if that will change in the future but certainly leveraging Windows UI components is going to make going to other OSs difficult. I did notice sluggishness but was told that might be a sign of VISA not installing properly, or thinking it is installed when it isn't. Hopefully a good install, with a several thousand VI project doesn't break things. This version of NXG probably isn't for the target audience of LAVA. We can use it and probably should if we want to give NI feedback, but don't try to migrate a huge project to it, it just isn't ready for most things yet. Still the Data Grid control is awesome (still needs work), WebVIs are awesome (in 2.0 beta but generates working HTML), and a vector based UI is greatly appreciated. Reception from people seems good. I think most get the message that current LabVIEW isn't dead, and that this is new but will be getting better.
  9. You should be using an event structure. If you use an event structure you can register for mouse down, mouse up, etc, or on value change. Then the event will be triggered on that event instead of polling a property node which forces a thread swap to the UI. Post your code if you can.
  10. Yeah for me the conditional disable says that OS is not a defined symbol and so it defaults to the default case which here is Linux. NI has lots of multiplatform code so you might want to look into how they do OS detection.
  11. Works fine for me. I tried the set Top & Active in Windows 7 x64, LabVIEW 2016 32-bit. I had a wait which allowed me enough time to put other windows (non-LabVIEW ones) on top then waited and it was brought to the front most of all windows.
  12. Yes it is out unofficially. And there are even a few blog posts talking about its new features. But there always is that ever so slight chance that NI will find a major issue before the release, have to release an update. In these cases people like you and I are risking getting a broken version of LabVIEW that was never intended to be in the hands of the public. NI would just delete it from their FTP and assume no one got the buggy version. Of course I'm not aware of that ever happening, and besides is will be officially released next week anyway so I say have at it. One thing that isn't quite clear to me is when we can start talking about these new features. I was part of the beta and have an NDA so I can't talk about it, but now it is out...but not officially. Anyway as far as I know there are only two features that get me excited. One is a major thing for reuse and will help make reuse code what we have wanted for years. The other isn't as big of a deal but might be useful for those that use DVRs often.
  13. Well it's the 16th most kudo'ed idea on the RT section. (again highlighting the small amount of attention it gets)
  14. I didn't see it linked here but I found your Idea Exchange, and luckily I already kudo'ed it. Too bad the RT Idea Exchange, along with several others, get very little attention from NI. A little while ago I was looking for a feature in RT and noticed an idea was posted for it so I kudo'ed it and talked to NI. Turns out NI already had implemented it internally and just had never released it. The feature could be documented and released 8 years ago but NI didn't know there was that much of a need for it. I pointed them to the Idea Exchange where at least one employee (close to RT support) seemed unaware that the idea was even posted, let alone that it was gaining traction.
  15. So sorry if you've been monitoring this thread. The official one was posted here but Jeremy just forgot to update this one.
  16. Native support? Even better. I knew those Variant functions were on the palette but for some reason didn't realize that was one of them.
  17. Or even better there is an OpenG function that given an enum will return all the unique values of an enum, and it works just the same on a tab (since a tab uses an enum for its value). This function is under the LabVIEW Data package named Get Strings from Enum. Then there is no need for reference or property nodes.
  18. Oh yeah lots of fun for sure, glad you got something working. I'd say you can thank me with a drink in Austin, but it sounds like you won't be making it.
  19. I don't think that is related to the pre build, or setting build information. It likely has to do with the somewhat finicky application builder. I used to get build errors all the time when building on top of EXEs that were already built. I'm guessing you can build it locally or to a new empty directory. I've been using that pre build on some very large projects without any issue.
  20. Sure we can talk at NI Week be sure and flag me down if this doesn't answer your questions. Over on the dark side I posted some overly complicated code that gets the job done for the most part. It is a Pre build VI that prompts the user for what you want the EXE build version to be. If you change it, then the build has to be aborted and restarted (NI limitation). http://forums.ni.com/t5/LabVIEW/Pre-Build-EXE-and-Installer-Set-Version/td-p/3149028 As for reading this from SVN, I have a VI that calls the C:\Program Files\TortoiseSVN\bin\SubWCRev.exe file. All you need to do is pass in a command line switch to the fill file path you want the rev of. Then what is returned from the command line is "Last committed at revision" which I pull out and put in the build. So my unpublished modification to the code posted is when it is ran it shows the last Major, Minor, and Fix version, and then fills in the Build with what is from SVN. Then the developer is prompted to change anything they want, but if they do change anything the build is aborted and has to be restarted (again NI limitation).
  21. I think the more difficult part isn't debugging a Linux RT system, but instead debugging a Linux RT system and Veristand. For me debugging a Linux RT system is pretty easy, just plugin a monitor and look at the front panel of a VI that I push debug data to through a functional global or other methods. But with Veristand taking over a bit I imagine you don't have that level of control. I'd almost just suggest you log to a file the status and debug information, and then view that file via FTP other means on a remote computer. It does suck that the console isn't available, I didn't realize it wasn't an option since in MAX it still looks like it can be enabled there.
  22. Yeah that's what I do. I read the build version from the file and display it in the about screen. I've also thought about pulling in the file creation date which if you are using an installer to install your software, should be the date the EXE was built, and not just the day you copied the file to the computer. I also set the build number with a pre-build which is the commit number in SVN. So then you have the major, minor, fix number, along with the commit for source code control, and the file creation date all in the about screen, and reports that are generated so you can look up what source code went with what software.
  23. No I meant integrate, which is the area under the curve. So comparing the area under the curve for some set amount of X time on the first waveform to the same amount of time on the second waveform, and perform the integration then subtract the two and you'll get the difference between the two waveforms for that period of time. When that number is the minimum for a range of values that that is where the two should line up. I think the amount of X time can just steadily increase. So look at the first 0.01 of waveform 2 and the last 0.01 of waveform 1. Perform integration and see the difference, now the first 0.02 of waveform 2 and the last 0.02 of waveform 1 and do the same. Of course you can do smaller slices of time. Attached is the code that I think does this operation. It looks at the length of time the second waveform has, and performs the integration on the two waveforms 100 times, with ever increasing X length. Then it finds when the two waveforms had most similar integral on that period of X. This 100 is again arbitrary but can be easily increased if you want more precision, it will just take longer the more slices you are using. Detect Waveform Alignment 2.zip
  24. You're beginning to sound like a customer. 10 Points is arbitrary, 0.5 tolerance as well I figured those could be adjusted as needed. I was just trying to come up with a slightly more robust solution while making some assumptions until more information came in. The non-even X would complicate things for sure. Having to perform more of an integration between times, and then look for when the subtracted integration between two lines at moving X is the minimum. But again I'd need more information about the types of overlap we are expecting. Can we always assume the second half of the first waveform is intended on overlap the second waveform? That would help simplify things a bit. Honestly most of my assumptions were based on the idea that these were two sets of data read from some analog device with hardware timing. Like an AI DAQ device, which is why I did it the way I did. The integration solution is probably a better way to go since it sounds like that is not true
  25. I wasn't sure what version of LabVIEW you were using. The snippet says 2009, but it forced me to open it in 2016 for some reason. Anyway attached is my quick attempt. It will take the last N points (in my case 10) from the first plot, and then try to find a match with a tolerance (in my case 0.5) in the second waveform. If no match is found maybe you could look into adjusting the tolerance. I also wasn't sure if the second waveform would always continue the first, so maybe grabbing the middle points from the first waveform would be better if you know there is that much overlap. Detect Waveform Alignment.vi
×
×
  • Create New...

Important Information

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