Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 01/17/2019 in all areas

  1. 11 points
    You know how you can change the wire appearance for a class in the class properties? As it turns out, LabVIEW internally allows for more flexibility than that dialog gives you. So I made an advanced wire editing tool...and unlike a lot of stuff I post, you can actually use this for serious projects, because it does not use any private/unsupported LabVIEW functionality! With this tool, you can set wire size without limits (with results similar to this), customize both wire layers with any 8x8 monochrome pattern, and also mess with different draw options. Strangely, a few of these settings seem to have no effect, and many of the options for one of them actually crash LabVIEW. (These ones are disabled in my tool, but you can re-enable them by editing a typedef.) Given that this is actually a documented, supported property that's officially supposed to work, I've reported this as a bug to NI; if any NI engineers see this and feel like investigating, you can refer to service request #7762024. Latest version: Wire Studio 2.zip Old versions: Revision 1
  2. 9 points
    Hey folks. this year we're trying something new. All Videos for NIWeek 2019 can be found here: https://labviewwiki.org/wiki/NIWeek_2019 Feedback welcome. Thanks to @Mark Balla and other volunteers for recording the videos. Edit: We're starting to add the back catalog to YouTube. NIWeek 2018 videos are also up.
  3. 7 points
    Greetings Friends of LAVA, colleagues, cohorts, and Wireworkers Extraordinaire -- it's LAVA BBQ time! Date: Tuesday, May 21, 2019 Time: 7:30-10:00 pm Location: Uncle Billy's Brewery and Smokehouse, 1530 Barton Springs Rd, Austin, TX 78704 (1.5 miles from Convention Center) Cost: $25 Early Bird (through April 30th) $30 Regular Admission (through May 20th) $35 Door Price (May 21st) Meal Options: Expect to enjoy your choice of meats (brisket, turkey, ribs) with sides like street corn, cole slaw, and bbq beans. A vegetarian option is available when purchasing tickets. Cash beer bar. Who: Everyone is welcome, including spouses traveling with you. Even if it's your first time, expect to recognize many faces/names from the forums and NI R&D. What to wear: It's a covered, outdoor venue in Austin during Spring, so dress for the weather and comfort. Door Prizes: We will have a drawing to give away prizes. All attendees are eligible and will receive a door prize ticket upon entry. See below about sponsoring a door prize yourself to share the love. Hope to see you there! Chime in once you buy tickets to let everyone know you're coming. ------------>>------------>> Get LAVA BBQ 2019 Tickets Here <<------------<<------------ The venue is a 30 minute walk from the convention center, or a $6 Uber. Get together and carpool, people are typically gathering at Challenge the Champions in the Expo Hall, which is great fun. There is a free parking garage behind the building. We'd love for you to sponsor a door prize - Continue Reading: If you or your company want to sponsor a LAVA BBQ door prize, please post a reply below. You can also include a small blurb about your company and a link to your website in the post below. By donating a prize you and your company will receive a small announcement of your choosing, during the event. We will ask you to write the announcement on a post-it note and will attach it to the prize to be read before awarding it. We love the door prizes, but we love time for socializing too. Here are some guidelines to keep our event balanced and streamlined. Single item donations work best. If donating more than one item, then multiple identical items is strongly preferred. If donating non-tangible items or something that is not physically with you, then please bring a card with your contact info and instructions on how to collect the prize. This will be given to the winner. Donations are typically $25-$200 in value. Not recommended: Apparel (hats, t-shirts, underwear, etc.) - never the right size Software licenses (Toolkits, add-ons, LabVIEW) Branded trade show booth type giveaways (mouse pads, pens, keychains, etc.) Jokes or something meant as a gag and not a real prize
  4. 7 points
    There are a bunch of objects in LabVIEW that aren't exposed in the default palettes, and are normally inaccessible except through scripting. I made a Quick Drop plugin that exposes all of these. Many of these are no longer supported, and others never were supported in the first place. Hidden ones are displayed with an "X" next to them to warn you: as I often say, be careful with these, and don't use them in any code you care about, as they can cause crashes, data corruption, and who knows what else! Download the LLB below and place it in your <LabVIEW install dir>\resource\dialog\QuickDrop\plugins folder. Then press Ctrl+Space, Ctrl+S to open this dialog. Select an item from the list and click OK, and there you go. There's some interesting/strange stuff in here! EDIT: Couple things I forgot to mention. The first time you open this (and whenever you rebuild the list) it uses two private properties on the app reference, to get the list of controls and indicators in the palette. Since this is just a property read, I'm sure the worst that could happen is a crash when you try to open the dialog, but I can't make any guarantees. Also there's some false positives for hidden items, mainly with front panel controls/indicators that come in different styles. Place by Style.llb
  5. 6 points
    You people are so laid back and forgiving. I’m an editor on multiple wikis across cyberspace, and none of the others are anything less than draconian. Capitalization whatever?! Wow. I’m going to need to wear my oversized Hawaiian shirt and cargo shorts when I’m editing, just to get in the right state of mind! 🙂
  6. 6 points
    We'll grow into it eventually 😋
  7. 6 points
    I just started down the rabbit hole of making a new XControl recently. Oh man such a pain. Here is a little graph I made complaining about the XControl creation process, and the time needed to make something useful. Any alternative is appreciated.
  8. 5 points
    I think this is a valid comparison: (from https://forums.ni.com/t5/LabVIEW/Global-Variables-Are-Better-than-Functional-Globals-So-There/td-p/1528392/page/5) You are either Novice or Guru 😋
  9. 5 points
    The best thing about a UDP joke is I don't care if you don't get it.
  10. 4 points
    You can extract the labels from the type descriptor, once you know where to find them in the array. I added support for it in this open source DataManipulation library. Check out the OpenDescriptor palette. You can install the latest release (1.1.0.5) from here: https://github.com/LabVIEW-Open-Source/DataManipulation/releases/tag/1.1.0.5 (download VIP file and install with VIPM). Once installed, you'll find the "List Element Names" method under Addons>DataManipulation>OpenDescriptor palette. (It can list enums and cluster elements as well, although those are natively supported under the Variant Utilities palette.)
  11. 4 points
  12. 4 points
    Writing the notes forced me to watch the videos closely. I'm going to use the notes as a quick-ref whilst getting started and hoped others might have a go if they had them too. Feel free to make changes/fix wrong stuff in whatever way you like - expect you're a busy man. I'm happy to own the doc and expand it given the info. It's written in libreoffice writer, which exports a good pdf. Now looking fwd to cooking up a few actors. LabVIEW_Messenger_Library_-_Programmers_Notes_v1.8.odt LabVIEW_Messenger_Library_-_Programmers_Notes_v1.8.pdf
  13. 3 points
    Version 1.2.0.6 released. https://github.com/LabVIEW-Open-Source/DataManipulation/releases/tag/1.2.0.6 Added support to return a list of Event reference types (class of event) for Event Registration Refnums Controls, Panes, Splitters, VI References and Application References. Array is empty for all other datatypes. ** Please note that this does not drill into clusters of Event Registration Refnums. This is only one-level deep. I have not tried, but I assume that getting the cluster elements and then looping on those should work...
  14. 3 points
    My first ever meme prompted from this post
  15. 3 points
    Have the topics been converted to the lava forum with the same topic id? If so, you can just enter the topic-id in the url and add a - with anything behind it https://lavag.org/topic/1524-anything-you-want works just fine
  16. 3 points
    NI is bringing 2 NI myRIO devices for Door Prizes.
  17. 3 points
    am I doing this right?
  18. 3 points
  19. 3 points
    Dating will always be a problem for software engineers.
  20. 3 points
    I agree with James. That could be achieved through composition and adding an abstraction layer. (Sink and Source in the diagram below)
  21. 3 points
    1. Place a control refnum 2. Right-click, Select VI Server Class, Generic, GObject, Control, Pixmap 3. Now it's a "Pixmap Refnum". Right-click again, Show Control 4. Drag the control out. Unfortunately, I first noticed this control in the VI Scripting style ring, where it was labeled as "warning: dangerous" or something like that. But the class isn't marked private, and it can be placed in the manner I described without any kind of warning, so maybe that warning is obsolete and it's been fixed? Then it would probably be in the palette, I guess, but I'm curious to hear what NI has to say. Maybe it's a bug that it can be placed that easily without generating any warnings. :p
  22. 3 points
    Let's take a look inside labview.rsc first... Four of the connector pane patterns actually have names: 4833: "monnie pleaser" 4834: "super monnie pleaser" 4835: "monnie would be pleased-er" 4836: "add supports 2 ddt" I guess this book wasn't lying. Two cursors with rather...interesting names: 64: "order sucker" 65: "order squirter" Someone at NI has a dirty sense of humor 😛 There's some resources that correspond to the style values for VI scripting. Some of them aren't in the style list; unfortunately attempting to use these just gives an error: 2051: "Comment Node" - says "Case" in the data, and gives "Unable to create new object" instead of the usual "object not found" error 2358: "Line of Script" 3902: "Growable Node with Header" 3905: "ExtFuncTerminalTipStrings" - data says "External Function Node", and has names for "path in", "path out", and the standard error in/out terminals 9008: "Select Menu Item" - with all the menu nodes. Looks like at one point they were working on a primitive for programmatically activating menu items. Someone found some hidden structure types a while back. All but one of them didn't work, and that other one is now an official part of LabVIEW. I found the image for the "Race Structure", which I've posted to that thread: There's also this super-minimalist "Alternate Splash Screen": And some monochrome sprite sheets—looks like the old Boolean constant graphics are still there. From what I know about internal VI data structures, I wouldn't be surprised if those were still used if you load a VI created in an old version of LabVIEW. Just thought I'd share. Curious if anyone has seen these before!
  23. 2 points
    Here is a library I created to wrap the WinSCP .NET library. You can use it to connect to a remote server via SSH and transfer files, create remote directories,etc., with WinSCP from LabVIEW. I know there is a commercial library for I think $500 a pop, but this is something that is missing from LabVIEW that really ought to be included with native functions in the file I/O palette. The VI's in this packed library are built around the "WinSCPnet.dll" library that installs with WinSCP. You will have to download and install WinSCP to get the DLL, as I do not want to distribute it without their permission: Download WinSCP Here After downloading and installing WinSCP, you will have to connect the VI's in the packed library to WinSCPnet.dll. I make no warranties here, and no promises it will work, since I already have the stuff installed. The use WinSCP with an SSH Key, you will have to generate a key and copy the public key to your server. WinSCP uses the Putty format for SSH 2. You will also have to obtain an SSH fingerprint from your server for input to the session. Otherwise, you will have to provide user login credentials. You can use the "C:\Program Files (x86)\WinSCP\PuTTY\puttygen.exe" utility to generate a key. I use Git, so I used the SSH utilities included with that to generate and copy the key to my server. If you do that, you will have to use puttygen to import your OpenSSH key and convert it to putty format for use with the WinSCP/LabVIEW library. Sorry I don't have more time to do full docs and directions for use, but maybe someone else can comment with additional directions. I will monitor this topic and try to answer any questions. Good luck, and happy SFTPing! PS: No I will not save it to an earlier version. Maybe someone else can. WinSCPnet.lvlibp
  24. 2 points
    Just in case someone else stumbles across this problem... It turns out the the cRIO-9056 has TSN capability built in so it will automatically try to slave the AI sample clock to a 1588 master if one is present on the network. In my case the master clock is not disciplined which wrecks havoc on the AI HW timing as it is only software based for the purpose of syncing the cRIO to the PC's clock for uniform relative accuracy. The solution to the is to use an obscure DAQmx property as follows... Add a DAQmx Channel Property Node to the task, select the General Properties >> Synchronization Unlock Behavior property and set it to Ignore Lost Sync Lock.
  25. 2 points
    No problem, I just want to make sure people know the difference between "Darren the G programmer says _____" and "Darren the NI employee says _____". In my "Don't Wait for LabVIEW R&D... Implement Your Own LabVIEW Features!" presentation, after I clarify that I'm presenting my personal opinion and not an official NI position, I contraindicate XControls because of numerous stability issues I've seen with them in large applications over the years. You can see my slides and watch a recording of the presentation here: http://bit.ly/dnattlvhooks
  26. 2 points
    I'm pretty sure that you've built your block diagram incorrectly. Just do it right and it will work fine. (Since you didn't provide any code, I can't be more specific than that.)
  27. 2 points
    working on it
  28. 2 points
    Maps in LabVIEW 2019?
  29. 2 points
    Great to see the LabVIEW wiki alive and kicking again! Hope to have a bit of time to contribute sometime after NIWeek...
  30. 2 points
    Disclaimer The following details are oversimplified for the sake of clarity. Feel free to point out important details that aren't covered by this post. --- There is a higher chance of finding better results by searching for "labview reference". Here are a few examples. https://labviewwiki.org/w/index.php?search=reference&title=Special%3ASearch&go=Go https://labviewwiki.org/wiki/Control_References http://www.ni.com/example/28769/en/ That said, you should be familiar with the normal data flow in LabVIEW. Data goes from one end of a wire to the other. A branch in the wire will create a copy in memory if either branch of the wire is changed. Loosely speaking, a wire represents the data. A refnum on the other hand doesn't represent the data, but the location of the data in memory (*). It is similar to a pointer in C-like languages. This changes the behavior of the wire Data still goes from one end of a wire to the other. Each branch of a wire receives exactly the same value as the other (no copy is made). (**) In order to access the data you need to make use of Property Nodes, Invoke Nodes and more. The benefit is, that you can access the same value from different places in your program. Even better, this is not limited to controls. It works for controls and indicators, VIs, objects, the project, the whole application and everything. https://labviewwiki.org/wiki/Refnum http://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/controlling_front_panel_objects/ However, it doesn't work for variables and due to its nature, race conditions can occur if you don't take care of the execution in your program. This is why for variables there is a more specialized type of reference, the data value reference (DVR). It allows you to access the same variable in memory from different places in your program. http://www.ni.com/product-documentation/9386/en/ There is obviously much more to it than these few points. However, the links above should give you some insight. (*) Here is some information about the memory structure of a refnum. https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019ZT5SAM&l=en-US (**) Technically speaking a copy is still made if you change the "value" on either branch of the wire, but since it is a pointer you shouldn't change it under any circumstances.
  31. 2 points
    It's a conjugation. I think Americans are the biggest perpetrators especially for "setted". They do other funny stuff like leaving out letters and putting dates the wrong way round
  32. 2 points
    I just post something along the lines of "can't find it right now" and usually someone with better organisation than me finds the link. Damn. giving away all my secrets.
  33. 2 points
    Start with a control in your template. Get a reference to that control and cast it to VIRefNum. Then call the 'Make Strict Reference' method using a VI reference to the desired VI. Finally, get the Terminal reference of the VIRefNum and invoke the method 'Change to Constant'. The constant winds up in a different location, if you are OCD like I am then read the position of the control terminal before and write that position to the constant after. It is pretty common to have more scripting versatility with a control or indicator than the corresponding constant.
  34. 2 points
    For a Door Prize, I have a LiftMaster MyQ Smart Garage Hub, donated from the Chamberlain Group
  35. 2 points
    LV 2019 augments the right-click menus for class wires/terminals to provide a method list you can drop, which should alleviate this issue. I found a way to make the right-click menu plug-in able to add the graphical palette menus and then built a right-click plug-in that builds the method palette on the fly if the class doesn't already have its own default palette.
  36. 2 points
    Not quite a meme, but my attempt at an NI style April Fools product announcement (a fake fake product announcement?). See links at the bottom of post for a history of NI's real April 1st jokes. A history of NI's April Fools' courtesy of the Wayback Machine: "National Instruments Announces PC-Based Solution for Matrimonially Inept" (1998) "Spousal Acquisition Toolkit Version 2.0 -- Now Featuring Undo!" (1999) "New MXI Interface Kit for Palm Pilot IIIc" (2000) "President Bush Nominates Jeff Kodosky to Cabinet Post" (2001) "New eIeI/O Software Suite Introduces eFarming" (2002) "New PXI Module Transfers Engineering Knowledge into Marketing Brains" (2003) "National Instruments Releases LabVIEW 7 Espresso" (2004) "Use LabVIEW Graphical Programming to Complete Your Tax Return" (2005) "National Instruments Announces Plans for 'Engineer Barbie'" (2006) "National Instruments Re-Releases LabVIEW 2.0" (2007) "Elementary Students Use NI LabVIEW to Model Impact of Simultaneous Trigger of Rapid Flow Events" (2008) "NI LabVIEW R&D Team Responds to Rumors About Performance-Enhancing Substances" (2009) "National Instruments Develops Cybernetic Leadership Team" (2010) "Time Capsule Captures NI Founders' Technology and Cultural Predictions" (2011) "National Instruments Releases King-Sized Products to Address Big Data Challenges" (2013) "NI Announces New Certification Level: Certified LabVIEW Gladiator" (2014) (Wayback Machine didn't have this one archived. NI pulled it pretty quickly supposedly because people seemed to be taking it seriously) "NI drives time travel with stylish new cRIO module" (2017)
  37. 2 points
    PS: Did I mention that the design of these things was arcane and bad? Yes? Ok. 'Cause it's true. I have a long list of lessons I hope NXG learns.
  38. 2 points
    XControls work just fine... if you dance with them the way they were intended. *head bang* If you don't want data to be saved, one way is to not put it in the State data. If you only need the data in the facade, add a shift register. But if you need it lots of places, put a global unique ID (GUID) in the XControl's state data, something that never changes after creation, and create an LV-2 style global with a lookup table from the unique ID to the data. You can create GUIDs on any LV OS using: LabVIEW 2017\resource\Framework\Providers\API\mxLvGenerateGuid.vi Changing the state shouldn't cause the VI to need to be saved unless it needs to be saved. So, yes, sure, in the IDE in a directly called VI, yes, changing state dirties the VI. But obviously that doesn't happen in a built app. AND, importantly, it doesn't happen in the IDE for any dynamically loaded VI (unless you are adding the 0x1 flag to track changes, in which case you get what you requested). If you're loading the hosted VI into a subpanel, that means you're working with it by VI Reference. So load it using Open VI Reference (without the flag) and the problem of being prompted to save should go away.
  39. 2 points
    So, I've gotten word that some of y'all are concerned about me because in the last year, I basically vanished from both the LAVA forums and the NI forums other than the Idea Exchange. One person at the CLA Summit in Europe last week wondered if I'd died. Honestly, I had no idea that I'd dropped my post frequency down so low. What happened was that in May the forums that I monitor exploded with content. This is generally a good thing -- says the community is vibrant. But it meant that I went from having tens of posts in each forum to hundreds of posts, and the deluge overwhelmed me, and I started ignoring the backlog. That's just turned into a natural attrition. I'm going to try to get back to reading (and posting) the forums. I doubt I get back to the high rate of read that I had before -- I've got a lot more internal-to-NI stuff that I deal with on a daily basis these days -- but I intend to get back to posting at least every couple days instead of every couple months. And, just to be clear: no, I'm not dead. :-)
  40. 2 points
    Here's a shortcut menu plugin I wrote that does something I've found myself needing every now and then. You select some objects, right-click, select "Ad-Hoc Scripting", and then it'll open a new VI with pre-populated refnums in a cluster. All selected objects with a label (even a hidden one) will be included in the cluster, as will a refnum to the VI, its panel, and its diagram. Ad-Hoc VI Scripting.llb
  41. 2 points
    Short version - you're running a 32 bit process on a 64 bit OS which causes a mess as to how to correctly run LPR. Here are a couple of relevant links: https://knowledgebase.progress.com/articles/Article/Running-OS-COMMAND-LPR-EXE-from-within-32-bit-OpenEdge-the-Procedure-Editor-fails-on-64-bit-Windows https://docs.microsoft.com/en-us/windows/desktop/winprog64/file-system-redirector The first one suggests a solution, although I haven't tried it myself.
  42. 2 points
    Try this. Windows User Login 2017.zip
  43. 2 points
    If the DVM and power supply are SCPI compliant; you only need to change the address of the command you send.
  44. 2 points
    Could you use an adaptor around the DVM that inherits from the desired abstract classes? That has been my solution to this problem in the past.
  45. 2 points
    Here is a small and borderless picture frame, along with smaller array. https://forums.ni.com/t5/LabVIEW/One-pixel-frame-for-picture-control/m-p/3716581#M1046089
  46. 2 points
    Thanks for the interesting conversation. I've resolved the issue however, in a roundabout way and by cleaning up my code. The UDP communication code in question is a model written in LabVIEW running on VeriStand, which is essentially a bunch of LabVIEW RT timed loops running on a Phar Lap target. So the model essentially opens a UDP connection, sends the message, then closes the connection. This is done at a rate of 50Hz. I changed the code so that it opens the connection at the start of the test and the model just continuously sends the message at the 50Hz rate, then at the end of the test I close the UDP connection. This resolved the issue because now the ARP is not sent anymore, like at all. Well, maybe at the start? But I haven't checked that, so I should do that later. The explanation I can come up with is, I was closing the connection every 20ms, so the OS considered the port closed, so it took that time to do the normal housekeeping of sending the ARP? But since the port was always open to a known IP address (and thus mac ID), it didn't need to do the ARP. I don't know, just my guess. Ok, so bring on the comments about, why I would keep opening and closing the port. Bring it on, I can handle it... 😀
  47. 2 points
    You know the 3D Picture control? I was messing with it and I noticed there wasn't any way to merge objects together except by chaining "Add Object" subVI's, which can be annoying if you have a whole lot of objects. I was thinking it could be a good idea to have a growable node to do it, so I decided to make one. Yes, a simple For loop (perhaps in a subVI) combined with a Build Array node would work just as well—and would really have simplified the code generation if I had thought to do it before—but I like making XNodes, and thought this would be a fun one. And yes, the usual disclaimer about XNodes applies—use it at your own risk; XNodes aren't supported by NI. Merge 3D Objects.zip
  48. 2 points
    I agree. Ben works on making a language safe for references. I work on making a language without references. Our goals are the same: a world where data can be trusted.
  49. 2 points
    Wait, what about the person who already had the name Bryan?
  50. 2 points
    You can also use Quick Drop Replace to replace multiple items at once. Select all the controls you want to replace > Ctrl-Space > Type name of new item > Ctrl-P to replace them all.


×
×
  • Create New...

Important Information

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