Jump to content

Jeff

Members
  • Content Count

    17
  • Joined

  • Last visited

  • Days Won

    1

Jeff last won the day on December 8 2012

Jeff had the most liked content!

Community Reputation

3

About Jeff

  • Rank
    Active

Profile Information

  • Gender
    Not Telling
  • Location
    San Diego, CA

LabVIEW Information

  • Version
    LabVIEW 2018
  • Since
    1992

Contact Methods

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I wanted to do the same thing; but I had a discussion with some TS developers who told me this is not possible. What we need is to have PropertyObject.SetValVariant work for a LabVIEW object, or perhaps have a method something like PropertyObject.SetValLabVIEWObject, The only way to pass a LabVIEW object between TestStand and LabVIEW is through the VI's connector pane. NI suggested posting on the TestStand feature request page. I have been meaning to do that, but I haven't gotten around to it. If you post a suggestion, I will vote for it!
  2. You're right, the Automation Open function is not needed when the existing Engine is passed in from TestStand. To run the VI standalone (i.e., not called by TestStand), you would need the Automation Open in order to get an Engine reference. Have you tried passing False to the "open new instance" input of Automation Open? I haven't tried it, but in that case I would expect you would get a reference to the existing Engine object that was created by the Sequence Editor (or UI). With a value of True, you are creating a new Engine instance for which no Application Manager exists.
  3. You can get a reference to the Application Manager from the Engine.GetInternalOption method. Then you can use the Application Manager reference to register for events. However, just looking at it, it seems that your code should work too.
  4. Hi, Norm, I can change springboard code myself, so it's not a big deal. But if this tool is intended to be used by the general LabVIEW community, the code should use the older "official" version of AMC to keep it compatible with the AMC library that people may already have installed. Or perhaps it (and the example) should use its own private AMC library, just like the generated code does. Then the code will work no matter which AMC version you have installed. I previously thought that it would be better to have the generated code refer to the user.lib copy of the AMC library than its own
  5. This package seems to install v3.0.0.4 of the AMC library (and two dependencies), which is newer than (and is incompatible with) the version (2.1.4.5) library (and its own dependencies) that generally seems to be available here and that I had already installed. It is confusing to me that new projects built with the tool use a copy of the AMC library (i.e., it resides in the directory of the newly created project), but the tool itself uses the AMC library from user.lib. Since the new AMC library is incompatible with the old library, it seems that the tool itself should also use its own copy o
  6. By default, the LabVIEW adapter is configured to reserve loaded VIs for execution. This setting can be changed in the adapter configuration (Configure>>Adapters) for LabVIEW. To unreserve all reserved VIs, select File>>Unload All Modules. Also, if you select a step that calls a code module, then select Edit VI, the VI will open in an unreserved state.
  7. Not sure if this is what you are looking for, but you can display the sequence file hierarchy for a sequence file in a TestStand project (or even outside of a project) to see (non-dynamic) callers of sequences at edit time. From a sequence file in a TestStand project, right-click>>Display File Hierarchy; or just from an open sequence file: View>>Sequence File>>Display File Hierarchy.
  8. I will be there too. Is there anyone carpooling from the hotel?
  9. Not thinking about the underlying mechanisms, here is how I (used to) think about how the Register For Events node and event cases in the Event Structure work: The Register For Events node adds to the list of event sources and their corresponding events that I can register for by adding to the list of Event Sources in the Edit Events dialog for the Event Structure (at edit time). In spite of its name, I didn't think that this node causes LabVIEW to start looking for (registering for?) those events--I thought the actual checking for events (registration?) only occurs at runtime if a case (con
  10. I'm a little late to this conversation, but I would also be interested in helping where I can. It would be a good opportunity to bolster my knowledge of OOP. Jeff Siegel
  11. Another really nice feature of projects is that you can rename a VI, and all referencing VIs get updated to reflect the change. And in LV 8.5+, you can also move VI locations on disk (in the Files tab) and have referencing VIs automatically updated. (Just make sure you save the changes to the VIs when you close your project.) Jeff
  12. I am using a Linear Technology LTC1609 serial sampling A/D converter chip. Its 16-bit output data is serialized on one pin on the chip. There are several other ADC's that have a similar output (LTC1417, LTC2365, LTC2366, etc.). I would like to read the serial output using a digital input board. Has anyone done this before and have any advice/examples to share? Thanks! Jeff
  13. For my case, I think my answer would be "I would create a functional global that manages the <class data>" (and not, "I would create a reference to it"). But isn't that what GOOP effectively is? It's a functional global that manages data, with additional mechanisms to manage multiple data sets.
  14. Oops, I didn't mean to revive the by-ref/by-value debate. Sorry! Perhaps this should be the start of a separate thread, but let me explain what I am trying to do (at the risk of exposing myself to more wrath). I am creating a TestStand UUT dialog that runs in parallel to multiple UUT executions. The dialog acts on user interface events, updates the states of UUTs based on the events, and updates the display based on the states of the UUTs. In the meanwhile, the UUT executions are also getting and updating UUT states. So all the parallel threads require simultaneous access to the same obj
  15. Aristos Queue, thanks for that information. This will at least solve the problem about memory duplication when creating a new object. I haven't actually built anything yet. Without your example, I would have done something along the lines of what Daklu built, where a VI to create the new object has inputs for all the attributes from the parent object, and unbundles the old object's attributes and wires them into the new object's attributes using a bundle function. I'm still considering whether to do use a by-value or by-reference model. So I'd like to know if there is a way to replace a p
×
×
  • Create New...

Important Information

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