Jump to content

ShaunR

Members
  • Posts

    5,037
  • Joined

  • Days Won

    313

ShaunR last won the day on July 1

ShaunR had the most liked content!

Profile Information

  • Gender
    Male

LabVIEW Information

  • Version
    LabVIEW 2009
  • Since
    1994

Recent Profile Visitors

59,052 profile views

ShaunR's Achievements

  1. Why is the XKCD mage URL (for hotlinking/embedding) blocked for posting? -> "The link could not be embedded because that URL is not allowed."
  2. I see that as a testament to quality. No contact, no bugs.
  3. I think the main issue (and probably the reason for the question originally) is the Cyber Resilience Act which basically makes everybody legally responsible for software they use. There are carve-outs for opensource but the only real way forward is through what they call "Software Stewards". I wouldn't stick your head above the parapet for OpenG. The next question will be "where's the SBOM and CVD Policy" The way forward would be for NI or JKI to name themselves as "Software Stewards" for OpenG but it's a big ask for American companies.
  4. Me too, for the compane. I got fed up with deleting connectors every time I created a new VI.
  5. Can I Use LabVIEW on My Linux Machine with an ARM Processor?
  6. No. I'm saying *if* the device is hardware independent then it wouldn't matter if a CSZ and/or Enviro device was installed and deployment of the hardware driver could be based on the platform, not the device. Rolf solved that by abstracting through VISA. However, you stipulated that you can't have both (CSZ & Enviro) classes in memory.
  7. I wrote a markup string xcontrol. I really should look at it again because I don't think the mouse-over for links work properly on Windows 11.
  8. Then you added not in memory for deployment to platforms. That's what messes the straight forward choice up because the platform hardware isn't abstracted.
  9. Hooovahh is using the static binding for deployment though. Rather than abstract the transport he wants to abstract the device as a proxy for the transport because then platform specific deployment is automatic. You use VISA for the hardware abstraction and configure the transport with a string. Hooovahh is attempting to configure the transport by not installing a device so that when it's deployed only the platform classes are deployed. I think he will run in to trouble if he has a device that has multiple transports but that doesn't seem an issue right now.
  10. Parking deployment for the moment (as I said, I think it's a separate issue) ... I dislike both. My workflow would be "Find" a chamber (i.e. detect one or more), "open" comms then start setting setpoints, dwells, ramps etc. I don't care who the manufacturer is - that was all sorted during the install, right? Ideally the "find" would return a list of available chambers (an array of class objects) so I'm not sure why I would need to use class specific "find" functions, or even use the actual class constants from a palette. If you no longer require class constants to be passed in to "find", then you can build a "found" array dynamically that users can use. In this flavour of "find, internally you can coerce to a more specific from the general type to actually probe and that coercion can be dependent on what's installed.
  11. I'm not sure you can get away without dynamically loading. It seems you are basically wanting a plugin architecture. The problem with platform specific code is, I think, a separate issue. Note that a plugin architecture also solves your "find" since you can only find those that have been installed. The issue then becomes that you were reliant on static binding (class constants) to solve your deployment to target. This is the same as VI refnums. What do you envisage the process to be when you have a chamber that has different implementations depending on platform? Let's say that the CSZ chamber must use TCP for Linux but USB for Windows? Now you don't have a static binding problem for deployment but you still have a platform problem.
  12. That's not the real problem (but the same solution as I was about to suggest). The main issue is the LabVIEW static linking. Traditionally we have gotten around it with conditional disable structures or calling CLFN's with a path. hooovahh has created a class that isn't platform independent, only device independent and is attempting to solve platform dependencies with deployment. I'll have to sleep on it.
  13. I use a polymorphic VI. It basically just wraps the class constant for this purpose.The user can then have a single VI that they can choose the implementation method from a menu and that ripples down through the class functions. It means you only need 1 VI in the palette for the Open/New/Whatever and, once placed, the the user can change implementations without creating or deleting anything. When there is a single type wired it looks much better because LabVIEW will show the class instance (see below) rather than the generic instance see (above). The drawback is quick-drop (apparently) because you cannot choose a specific instance, only the polymorphic, but I ignore people that complain about that
  14. You should contact the developer. It may use features not available in earlier versions and it is a source control nightmare maintaining subtly difference versions.
  15. Retrieve Token String.vi
×
×
  • Create New...

Important Information

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