Jump to content

Francois Normandin

Members
  • Posts

    1,209
  • Joined

  • Last visited

  • Days Won

    46

Posts posted by Francois Normandin

  1. QUOTE (km4hr @ Oct 15 2008, 08:41 AM)

    normandinf,

    Wow! What a fantastic reply! Thank you VERY much. I learned more from this post than I've been able to find in days of searching.

    You're welcome.

    You can continue your findings about those functions by using the context help of LabVIEW. Press Ctrl-H and hover your mouse over any functions in the palettes to find out what they are, what they do and what it takes to wire them. A more detailed help link is provided with all native LabVIEW icons.

  2. Hi km4hr,

    there are more efficient ways to deal with arrays and matrices in LabVIEW than to use a Formula Node.

    I've simulated a Scaled Data stream with two channels (Black Box) and the video shows you where to look for when you want to play with nD-arrays. There is a lot to learn in the Array and Numeric palettes alone, and my demo is just the tip of the iceberg.

    Break out your individual streams using "Index Array", apply a customized function to each streams and put them back together by "building arrays".

  3. QUOTE (TG @ Oct 12 2008, 02:45 PM)

    Thanks Norm. that just cleared up something I was trying to get my head around regarding this topic.

    Good answer. :)

    Be careful though with my screenshot, as the OpenG "Get VI reference" is for the current VI: you should put a reference to the VI you wish to call, not to the one that is calling. I only wanted to show the property nodes and I Code Captured it too quickly...

  4. If you launch your VI with a subVI call, then use Ben's solution.

    If you use Invoke Node, you can transfer the reference owner to the subvi by setting AutoDispose Ref = TRUE.

    post-10515-1223671959.png?width=400

    QUOTE

    From NI Help (Invoke Node: Run VI)

    Auto Dispose Ref:

    Allows you to run a VI independently of the caller without opening its front panel immediately or opening another reference inside the target VI. If TRUE, the referenced VI transfers ownership of the reference from the calling VI to the VI that is running. This means LabVIEW disposes of the reference, along with the parallel data space, when the target VI goes idle, not when the VI that opened the reference goes idle. The reference can still be used by the calling VI until the target VI closes the reference. The calling VI does not need to close the reference unless the Run VI method returns an error. If the calling VI does close the reference, the target VI can abort and leave memory. If FALSE, LabVIEW automatically disposes of the VI reference when the VI that opened it goes idle. The default is FALSE.

  5. QUOTE (HChandler @ Oct 10 2008, 01:52 PM)

    O crap! they don't!

    They must have some sort of handle. Perhaps it could be done by array index number. Are they numbered in the order they're dropped on the panel?

    You can have a list of refnums to all decorations, so yes indexing would work.

  6. QUOTE (awkh1001 @ Oct 7 2008, 07:15 AM)

    Hi, everybody.

    I am new member here. I am student, now doing a project.

    I have one question.....

    Question like this:

    I have two computer, computer A add as Host; computer B add as Client.

    Now, computer B(client), got USB webcam, can capture continuous image, that means video. I using software IMAQ USB for camera to design it.

    Now, my question is:How I view this image or video from computer A(Host) via computer B(Client)? Got any idea or way to design it?

    There are a number of ways to do that. Not sure which one is best for video. (Depends on streaming rate).

    You have a host and a client... does that mean you have an Ethernet network? You could setup a TCPIP Server-Client. Search the LabVIEW examples for that, and send your images as strings. You could also use shared variables, remote panel, a queue, etc.

  7. QUOTE (ragglefrock @ Oct 6 2008, 12:15 PM)

    You can also use the Scan from String primitive to get the index of a particular enum string. This will work with any enum already, so there's no reason to build a generic subVI for it.

    This is absolutely true. However the initial question was to get it inside a SubVI.

    (But I see your point: Why wrap it up in a subVI if it works with a single drop from a palette? :thumbup: )

  8. QUOTE (Paul_at_Lowell @ Oct 3 2008, 05:26 PM)

    1) What I want to do is edit lvdiff.vi so that it will compare the .ctl files if the file extension is .lvclass.

    Unfortunately I haven't been able to get this to work. Lvdiff.vi uses "Open VI Reference" but this doesn't work with .lvclass files (returns Error 1059: LabVIEW: Unexpected file type). (And no, simply adding :ClassName.ctl doesn't work—then I end up with Error 7: File not found.) I know I have to use the project path as AQ describes but I don't know how to open the files—in LabVIEW--in the first place. I'd like to know how to do this anyway. Any hints?

    Hmmm...maybe Norm's approach will help me with getting a reference to the .lvclass.... but can I open the class this way, I wonder?

    You sure can. Notice that I use the VIReference property of "ProjectItem" class to get a reference to the "ClassName.lvclass:ClassName.ctl" VI. This is the only way I found you could access the class Private Data control. Don't forget that ctl files are VIs too...

    PS: Not only will adding ":ClassName.ctl" not work, but using the full path ".lvclass\ClassName.ctl" will not work either.

  9. QUOTE (Minh Pham @ Oct 1 2008, 11:33 PM)

    The 6 hours intro is a good start, concentrate on the dataflow as it is the main idea of LV.

    I used to be a VB programmer as well, since 2006, I started working at NI as Applications Engineer I fully

    moved to LabVIEW - probably permanently :) .

    So keep practising and wiring you will be just fine. However, can you move to a later version of LV rather than

    work with such an old version 6.1.

    Hi Minh,

    I see you're very enthusiastic about LAVAG and that's real great... but this topic is 4 years old. ;)

  10. QUOTE (Paul_at_Lowell @ Oct 1 2008, 06:37 PM)

    Norm,

    Very nice. I think what you have here is the start of a VI (maybe "CMP Compare two LVClasses.vi") that belongs perhaps in the prochmphier.llb library. Then we could write a version of LVDiff to call it when the file type is .lvclass....

    So nothing like this exists with LabVIEW currently, then? If not then I will submit an enhancement request to NI, since I think this should be part of LabVIEW itself in future releases.

    Paul

    I'm glad you think it's a good start. I don't use SVN myself (not yet anyway, but when I have time I'll install it and play a little.)

    I don't think it currently exists in 8.6 (but I've been proven wrng before!) That would make a good suggestion for NI.

    BTW: Thanks for the wiki on SVN. It's gonna be useful.

  11. QUOTE (TobyD @ Oct 1 2008, 11:27 AM)

    No, you can actually select a decoration from the front panel palette and drop it directly onto the block diagram.

    You're right, but normally my block diagram takes the whole screen... and Ctrl-E doesn't work when you have something selected. ;)

×
×
  • Create New...

Important Information

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