Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by DTaylor

  1. Did RegisterAddon.exe not run at all, or are you thinking it ran with incorrect privileges? I do see RegisterAddon.exe run every time I install.
  2. I think the included license is OK, we have a handful of users successfully using the trial, though you're the first to try it on Windows 10 (I don't see why that would matter). I did see the invalid status come up once when I was testing, though I don't remember the cause. If you uninstall the EM Control Refs package and re-install it, does it fix the issue? Would you be able to post a screenshot of what you're seeing? Thanks!
  3. Language-independent update just landed! For those curious, the node was creating some property nodes and setting the selected properties by the property's name, which varies from one language to another. We just needed to update it so that they were set by the property's unique ID.
  4. For right now, this node only support English LabVIEW installations. We are working on a language independent update.
  5. We have an internal tool at Erdos Miller that we've turned into a product. It's a node that outputs a cluster of references to all controls on the front panel. A free trial is available for download here: http://info.erdosmiller.com/node-control-references-software-download-v1 It replaces code like this: With a single node: It also lets you: Bind the output type to a typedef. Include a reference to the owning VI and/or the owning VI's front panel. Exclude references to controls above or to the left of the origin. Optionally exclude controls individually. Controls on tabs are organized into page clusters. Try it out and let us know what you think!
  6. Using this is almost assuredly a violation of license agreements: http://www.hmilch.net/h/labview
  7. Why stop there? It seems like there are a few nodes that disallow inlining even though it seems like it should be fine. Now we can just wrap them in an Error Ring.xnode!
  8. I think you can! It looks like the compiler exception doesn't check the fully qualified name. You can put your inline-safe XNodes inside libraries to namespace them, and name them all Error Ring.xnode.
  9. I think there is just a special case that LabVIEW knows the XNode named "Error Ring.xnode" can be inlined. If I rename an XNode to Error Ring.xnode, the aforementioned error goes away. I wonder if there is a way to whitelist other XNodes.
  10. There is a VI in the same directory as the Error Ring XNode named XSFP_ReplaceSelfWithGenCode.vi. I don't know if this has anything to do with this behavior. I've seen some private methods prefixed with XSFP - any idea what it stands for? That VI is not a member of the XNode, but I agree that none of the XNode's abilities or properties look like they have anything to do with the inlinability.
  11. I did , and the owning VI shows no error when it's replaced with it's generated code.
  12. Hmm Error Ring XNode does work for me, but others that I think should be inlinable are not, like the Butterworth Coefficients XNode.
  13. I'm also seeing this if the XNode contains only nodes that can be inlined. It appears that a VI that uses any XNode cannot be inlined, regardless of whether the generated code can be inlined or not.
  14. It seems that using an XNode in a VI in which inlining is enabled always generates the error: "This object is not allowed in a VI on which you enabled inlining. Disable inlining or remove this object." Is this always true, or is there some XNode ability that would allow it to be inlined?
  15. I can confirm as well. Parallel read-only access is broken until this is fixed. I played around with the bug a little bit, and it appeared as though up-to-date data fails to make it out of the SubVI when parallel read mode is enabled (super weird).
  16. from dmesg: [ 7.434709] usb 1- new full-speed USB device number 24 using xhci_hcd [ 7.577906] usb 1- Not enough host controller resources for new device state. [ 7.577923] usb 1- can't set config #1, error -12 It looks like this issue is not limited to NI Linux-RT: https://superuser.com/questions/731751/not-enough-host-controller-resources-for-new-device-state I poked around in the BIOS and couldn't find anything that would allow me to disable xhci. Does anyone know if this is possible without recompiling the kernel?
  17. But that's probably good advice. x-post here: https://forums.ni.com/t5/NI-Linux-Real-Time-Discussions/FTDI-USB-Device-Limit/td-p/3686134
  18. So I can't even get to the point where I attempt to send data to all 16 at the same time. I'm so far unable to get the OS to even enumerate all the devices. I should have mentioned that the first configuration I tried was two 8 port hubs each with their own 60W DC supply. The control boards have Arduino Megas on them that I'm connecting to. I have two Anker 8 port USB hubs each with their own 60W DC supply. I connected one to each USB port on the cRIO. If I instead daisy chain them, I can see up to 14 devices enumerated from the one cRIO USB port, and when I connect a 15th board directly to the second cRIO USB port (not through a hub), nothing new shows up in /dev and there are no new devices in MAX or VISA discovery.
  19. I have a cRIO 9030 based test system that connects to 16 control boards over USB (FTDI). I can connect and communicate with 14 just fine, but it seems NI Linux RT is not recognizing the 15th and 16th devices. /dev/ttyACM0 through /dev/ttyACM13 show up for the first 14 boards, but no new ttyACM files appear for devices 15 and 16. The first 14 also show up under devices and interfaces in MAX and are discoverable with VISA. I've tried a couple different hubs in different configurations connected to the two USB ports (including daisy chaining them), and I'm always able to get exactly 14 boards to connect. I can communicate with all 16 without issue on my desktop, so I don't think it's an issue with the hubs. Is this a real OS or hardware limitation, or does anyone know of a potential solution or workaround? If there is a real limitation, I can settle for testing two batches of 8 at a time. Thanks! x-post here: https://forums.ni.com/t5/NI-Linux-Real-Time-Discussions/FTDI-USB-Device-Limit/td-p/3686134
  20. Try out NSSM: http://www.nssm.cc/download It's still a wrapper, but an awesome one. In the pre-release builds, you can create custom actions that run when the service is stopped (i.e. to send your application a command to stop and clean up). It's super easy to use compared to everything else I've tried.
  21. Haskell has IORef, which along with modifyIORef/modifyIORef'/atomicModifyIORef etc functions a lot like a DVR + IPE structure. Haskell and Clojure (I don't know about other Lisps) both have STM reference implementations, which just require thread-safe transactions to update the values they reference. Rust has a strong emphasis on memory safety and "fearless concurrency", and it has several reference primitives. I think there are a lot of valid use cases for references, and I like that DVRs exist in LabVIEW. Depending on what OP is trying to do, I do think your solution is best. Functional programming? Does this mean that you're going to get this idea resurrected?: https://forums.ni.com/t5/LabVIEW-Idea-Exchange/New-Enum-Class-Primitive-quot-The-Defined-Enum-quot-with/idi-p/1904525
  22. I have a (small) update to these nodes since I learned about the RunTimeDoubleClick ability. They now open the target VI at run time as well. Async-Or-Show from this package has become one of my favorite things for non-reentrant UI VIs (runs the VI if its front panel isn't open, makes the target's front panel frontmost if it is open): https://github.com/erdosmiller/lv-async lv_async- lv_scripting- lv_vi-
  23. This works, but I think he'll also have to put Get LV Class Default Value by Name and Get LV Class Path into a SubVI - let's call it Get LV Class Path by Name. He'll then have to open a reference to that VI with the appropriate application reference and do a call by reference. Then he can go crazy with property nodes across application contexts.
  24. When you do this give LV-Scripting a chance: https://github.com/erdosmiller/lv-scripting It has similar functionality to the LAVA Scripting Library: https://lavag.org/files/file/54-scripting-tools/ , but with a heavy emphasis on ease of use for code generation. The package has a dozen or so examples which likely cover everything you need for your XNode.
  • Create New...

Important Information

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