Jump to content

hooovahh

Moderators
  • Posts

    3,432
  • Joined

  • Last visited

  • Days Won

    289

Everything posted by hooovahh

  1. hooovahh

    XNode Editor

    Version 1.1.0

    432 downloads

    8 Years ago the first version of the XNode Manager was posted to the code repository in an attempt to allow the editing of XNodes. Being a fan of XNodes, but knowing that the XNode Manager is pretty limiting because of its age, I set out to make a new version with similar functionality. The XNode Manager had a blank XNode, and blank Abilities that it just made copies of. This is fine but then the abilities and XNode are quite old. There were many new Abilities added since version 8.2 and you can't add them using the XNode Manager. My XNode Editor reads your LabVIEW resource and populates the list of abilities to create from the ones that are possible to create. Then VI server is used to create the XNode, State control, and Abilities. This sets up the connector pane like it should and should work with all future versions of LabVIEW, until NI changes something that breaks it. It also reads in the XNode Ability descriptions to help understand how to use the new ability VIs. In addition to being able to create and edit XNodes, you also can edit the XNode icon, and description, along with adding any new abilities. Be aware this uses several private functions, and several undocumented features that could be potentially bad. I did a decent test to make sure memory leaks weren't a problem and I made several XNodes and Abilities and it seems stable. But at the end of the day if it blows up and crashes, don't be surprised, you've been warned. The original thread with discussion and progress on this tool was started here.
  2. View File XNode Editor 8 Years ago the first version of the XNode Manager was posted to the code repository in an attempt to allow the editing of XNodes. Being a fan of XNodes, but knowing that the XNode Manager is pretty limiting because of its age, I set out to make a new version with similar functionality. The XNode Manager had a blank XNode, and blank Abilities that it just made copies of. This is fine but then the abilities and XNode are quite old. There were many new Abilities added since version 8.2 and you can't add them using the XNode Manager. My XNode Editor reads your LabVIEW resource and populates the list of abilities to create from the ones that are possible to create. Then VI server is used to create the XNode, State control, and Abilities. This sets up the connector pane like it should and should work with all future versions of LabVIEW, until NI changes something that breaks it. It also reads in the XNode Ability descriptions to help understand how to use the new ability VIs. In addition to being able to create and edit XNodes, you also can edit the XNode icon, and description, along with adding any new abilities. Be aware this uses several private functions, and several undocumented features that could be potentially bad. I did a decent test to make sure memory leaks weren't a problem and I made several XNodes and Abilities and it seems stable. But at the end of the day if it blows up and crashes, don't be surprised, you've been warned. The original thread with discussion and progress on this tool was started here. Submitter hooovahh Submitted 03/15/2017 Category XNodes LabVIEW Version
  3. Neat concept. One of those reuseable functions I've had for a while can get all references to controls on the FP given a VI reference, and the name of the control. This works alright, but the control references are of the control class and not the more specific class like String Control. I improved on this with an XNode that still does searching for controls based on their labels, but you can specify the control class to cast it to. Still in some cases I think I like yours better. If I needed to do an operation on all booleans I'd use mine since it returns an array of references, but yours is pretty damned simple.
  4. But yes your points are valid about the classless nature of my example. VIMs (which can work better with classes) might open this up to a few more possibilities where XNodes fail. And as for the UI I had never thought of that, and never thought I needed it, but I admit I could see a few places where that type of functionality could be useful.
  5. Oh but they could. Look at my circular buffer XNode example. It is an XNode but it could still be used as a VIM. It bundles a DVR with some information, and the data type you want, and then the other functions change the data type of a control or indicator, based on the DVR. So what you have is an Init function where you define the data type (like obtain queue) and then the read returns that same data type (like dequeue)
  6. Yeah VIMs feel like they solve at least some of the features you want in the linked idea. But in the current implementation I think the math still might have coercion taking place. NI is investing in VIMs, and I have hopes we'll see something official from NI. But until then you can make and use VIMs with the understanding that the technology is private, and may change with future version of LabVIEW.
  7. I don't organize the BBQ but help out where I can. I contacted the main organizer from last year but haven't heard back yet. Regardless I'm booked for NI Week so I'll be there.
  8. Well I imported an LDF and the frames in the XNet Database editor show that some use the LIN Chucksum of Classic, and some Enhanced. But in both cases, and with creating a new frame, this drop down is disabled. So it appears XNet supports it, but I don't know how to set it. You may end up finding more help over on the Automotive subforum on the dark side. Oh and it looks like there is a property for this but I've never used it.
  9. There is also a subforum over on JKI for State Machine Objects, but it sure looks empty. You might find some support over there too. http://forums.jki.net/forum/64-jki-state-machine-objects/
  10. Not that I know of. I'm guessing someone with more site control could potentially do it, but I can't. Just forgetting that this site exists and leaving your account forever is probably fine. I know I'm probably signed up for 50 or so forums on the net for various things, and I probably regularly use 3.
  11. Is this just detecting a rising and falling edge? The OpenG boolean palette has Boolean Trigger, and there is an NI function Boolean Crossing. Beyond that you can do the same thing with a feedback node and a compound arithmetic function configured correctly.
  12. Crosspost
  13. It probably isn't going to be easy doing it yourself. The simple touch screens I've used just simulate mouse interaction so multiple touches get registered as multiple mice, but there are several caveats associated with it. I'd suggest looking into one of the toolkits for this type of thing. I've never used one but it is where I'd start if I had to do anything advanced. I thought NI had one but I can't seem to find it. http://sine.ni.com/nips/cds/view/p/lang/en/nid/212474
  14. Is this EXE ran on the same exact PC that the EXE was made on? Because that doesn't seem right if it is. I'd suggest doing a repair install of DAQmx and see if it resolves it. Even so the best course of action when making an EXE is to also make an installer. This is because when making the installer you can choose to include all the external NI dependencies like DAQmx, VISA, NI-DMM, NI-XNet, etc. In newer versions of LabVIEW it can detect what installers it needs to include and select them by default. Then you can take this one installer (which might be a bit big) and install it on any computer which has no previous NI software, and your application should run.
  15. Just using scripting. If you have a folder of VIs you want to check for you can use the Recursive File List, looking for all *.vi files. Then in a for loop get the path of each, and use the Open VI Reference. Then you can look at the Execution >> Is Reentrant, and even Execution >> Reentrancy Type to state if it is shared or preallocated. Be sure and close the VI reference after this. If you have a VI and you want to travers down into it, you can use a Static VI reference and plop in your VI. Then using property nodes get the block diagram, and this reference can return all SubVIs as an array which you can again iterate over.
  16. Did you recently buy LabVIEW? If so it comes with one year of SSP support which comes with some real good self paced online training. Other than that there are several other free resources out there. Here are some. 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 6 Hour LabVIEW Introduction Self Paced training for students Aside from that the best way I learn, is to use the function on the palette one by one and see how they work. Be sure and read the help on each function too. Open the Context Help (CTRL+H) and hover over the function.
  17. It's basically the same on both targets. I've worked with XNet on PXI, and embedded cDAQ running the Linux RT OS and both work pretty well, with a few database functions not being supported. The RT may have some more limited database functionality (like not allowing to import or export databases) but for the most part things just work the same. These will return an error stating they aren't supported if this is the case. One thing that might help make your development easier is to deploy the database to the RT target using the XNet Database Editor software. From there go to File >> Manage Aliases, and here you can connect to a remote target (given an IP address) and then deploy a database from your host to your target. I think you can also add a database if you have the XML file on the target and invoke the Add Alias function. After that just add your target in a LabVIEW project, connect to it, and you should be able to run the VIs you already have written.
  18. Here is an example of an asynchronous VI running, and having user events send data back. https://forums.ni.com/t5/Example-Program-Drafts/Non-Blocking-Multibutton-Dialog-Box/ta-p/3509941 But I think a simpler design would be two while loops, that communicate to each other with a couple of queues. In 2016 there is channel wires that could be useful too. Then your one while loop can be dedicated to just doing PLC stuff, and the other is for UI updates, and interactions with the user.
  19. Okay great, thanks for testing this out, I just assumed it would work since it was putting multiple images in the EXE so why shouldn't it be reference like the multiple images in LabVIEW's EXE.
  20. My experience is also only with the evaluate formulas. I ended up augmenting it a bit with a few pre and post function calls for doing custom things.
  21. Sure it's possible. When you are making your application in the project be sure and add an ICO file to the project that has multiple images in it. I usually do this to have several resolutions since it sometimes looks better when larger or smaller. I usually make an icon that has 5 images in it at different resolutions: 128x128, 64x64, 32x32, 24x24, and 16x16. Then in the application builder settings, pick the icon as the one from the project. I just opened my EXE in resource hacker and see them all listed under the icon section so I assume you can probably reference them by the index, just like LabVIEW does. Otherwise you could just include multiple image files in your application builder that just go into support. Then have your icon be a path to that image file by setting that in the registry.
  22. I only have but one 'like' to give. I don't see myself ever using the pink-ish one but all the others I could see uses for depending on the UI design. The larger check box with a hover is something I could use now. The existing Rounded Square, or Google style are also very refreshing.
  23. Awesome job. I installed these a while ago when you first posted them and had forgotten about them. I then needed a checkbox and knew the only options were ugly old ones that scale, or system ones that look nice but are small and my UI is made to be a bit bigger. I did a QuickDrop and to my surprise found several awesome looking modern ones that I could change the size of. I've since installed the newer ones from the tools network and am even more delighted with the updates. Thanks again.
  24. I found the old Tetris demo that used to ship with LabVIEW. This example was pulled from LabVIEW 2011. I'm unsure what version stopped shipping it. InputDemo Tetris.llb
  25. Collision detection? Basically each block (normally only one falls at a time) will keep incrementing until a stop condition is seen. In your case it will be from the lowest block hitting the floor, but when the game goes on you could have any block hit another block forcing the whole 4 pixel object to stop moving down. You already have in a shift register where your objects are, so I'd suggest doing something like shift down, then count the number of Trues in the array. If they are less than the number of Trues before the shift then you know you shouldn't perform the shift and should revert back to where it was. There are examples on the web of doing tetris in LabVIEW and LabVIEW even used to ship with a version of it in the example finder. I can't seem to find it in modern versions but if I do I'll post it. Here is one discussion with several demos. https://forums.ni.com/t5/LabVIEW/Tetris-in-Labview/td-p/265716
×
×
  • Create New...

Important Information

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