Handling IMAQ Images in the TestStand Opeator Interface

I'm modifying the LabVIEW Operator Interface to display images from IMAQ VIs on the front panel. I've got it to work a number of ways, but never if I compile the interface into an executable.
I've tried using the "IMAQ Image Cluter to Image Dataype" and "IMAQ Image Datatype to Image Cluster" vi's to store and pass references to the Operator Inteface. It works in development mode but not when built. I understand this won't work as the reference is local to the adapter you are using so I abandoned that.
I've tried storing the Image into a global VI and then reading that global VI in the interface for display. I've made sure to call the Global VI dynamically in the operator interface so I'm using the same VI and not one compiled into the executable. It works in development mode but not compiled. Don't know why.
Another method I tried was to use the "Flatten To String" and "Unflatten From String" functions to store the image in a local string (as a binary string) in the sequence. I then tried accessing the local with the "ProperyObject" Method "GetValString" in the Operator Interface VI. When I try this I get an error and the development system shuts down. I know I'm access the local correctly as I have accessed other locals from the sequence in this manner.
Any ideas why one or both of the last two methods are not working for me? Is there any other methods that would work? How about sending the image to a common dll? Can you store an image or image reference in a dll so any platform could access it?
Thanks,
Dave

Thanks for the tip about trying another data type. I tried an numeric array and it did not work as well. But now I could see what is happening. When the GetValString reads the local it does not interpret the escape code '\'. i.e. if the string contains '\00' it ends up as '5C 30 30'. The Unflatten From String vi is expecting hex 00 and an error occures.
I wrote a crude VI to look for the escape code and convert what follows to pure hex. It first converts the string to byte array, interprets each byte, creates a new hex array then converts it back to a string. The good news is that it works for numeric arrays, and I was able to read the array values in the Operator Interface by reading the flattened data from the sequence. However, when I applied the VI to the Image Flattened data, the array was 2,295,879 elements long and my VI was way too slow to convert the whote image.
Is there a fast way of converting the string to pure hex values?
Don't know why my VI didn't show up. I'm now trying to attach an image of the block diagram.
Attachments:
FlattendImagefromSequence.jpg ‏46 KB

Similar Messages

  • How does Labview handle 16bit images with the VI "ImagetoAr​ray"?

    Hi...
    The ImagetoArray function in labview 6.1 handles 16 bit images as an I16 data. This seems to cause memory overflow when I have intensities past 32k. How do I change this to an unsigned 16 bit array or is there a different function that I can use? Thanks much

    Ivan,
    At first I wasn't sure what you were asking.  Now I think I understand.
    If you have a 16 bit image, it doesn't matter if it is signed or unsigned.  Both the U16 and I16 have 65,000 different intensity values, the numbers are just represented differently.  In order to convert a 2-Dimensional I16 array to a 2-Dimensional U16 array, you will need to do some simple bit manipulation.
    Basically you need to first cast the I16 into a U16 and then XOR each element in the I16 2D Array with a 0b1000000000000000.  I have attached an example VI which shows how to do this.  This basically changes the flips the left most bit.
    I hope I answered your question,
    Lorne Hengst
    Application Engineer
    National Instruments
    Attachments:
    IMAQ Signed Unsigned Example.vi ‏51 KB

  • I'm developing a test system that reqiures that I run a TCP/IP session in the background while running TestStand. How could I incorporate this TCPIP vi into the TestStand Operator Interface ?

    Test Engineering
    Empower RF Systems Inc.

    Mal,
    If you have the LabVIEW Operator Interace, you can place your TCP/IP Vi anywhere you want. Either at the beginning of the execution, when a particular sequence is running, when a user logs in, etc. Since you have the LV code, you can just add your TCP/IP as a subVI in the right place. You could also place a button in the front panel that will allow you to CONNECT/DISCONNECT by calling your VIs.
    Does this help?
    Azucena

  • How will I be able to make the TestStand UI objects into XP theme?

    Hi, I am using TestStand UI in .net, How will I be able to make the UI objecys of TestStand to adapt the XP theme?
    Is there any example code that you can give me? Thanks!
    Solved!
    Go to Solution.

    The shipped TestStand  .NET Operator Interface  has a manifest file included in the project. This manifest file includes the Micrsoft.Windows.Common-Controls which is needed to identify the XP theme that has been configured on the operating system. In the shipped .NET Operator interface, this .manifest file is being embedded into the executable and formats the TestStand Operator Interface to display the XP theme that has been configured on the operating system. in the shipped TestStand 4.1.1 Operator Interface, the manifest file is embedded into the executable in a Project post-build event.
    There are three things that the manifest file is required to have in order to allow the TestStand Operator Interface executable to adapt to the XP theme. They are as follows:
    The manifest file must have the same name as the executable. For example, if your executable is named MyExecutable.exe, your manifest file is required to have the name MyExecutable.exe.manifest.
    The manifest file must include the Micrsoft.Windows.Common-Controls in order to identify the XP theme that has been configured on the operating system.
    The manifest file must reside in the same directory as the executable.
    If you are building on an existing Operator interface that ships with TestStand 4.1.1, make sure that the manifest file meets these two requirements. If it does you can test that the theme is properly adapting by selecting Debug»Start Without Debugging.
    If this works properly, you can rest assured that when building a release version of the TestStand Operator Interface, it will adapt to the XP theme that has been configured on the operating system.
    NOTE:  that you can only test this feature if you launch the executable without debugging because this allows the executable to run its own process. If you run the executable with debugging, the Visual Studio environment will host the process and will not allow the manifest file to be embedded into the executable.
    -Adri
    Message Edited by Adri K. on 03-04-2009 04:15 PM
    Adri Kruger
    National Instruments
    LabVIEW Product Marketing
    Attachments:
    matching names.jpg ‏27 KB
    debug.jpg ‏20 KB
    manifest.jpg ‏65 KB

  • Send CurrentUse​r Name to TestStand User Interface

    Dear All,
    I am using the TestStand User Interface (LabVIEW) to execute the test sequence file (TestStand).
    I need to show the current user name (i.e. the user name what we enter in TestStand Login window) in the TestStand User Interface VI.  Please let me know the way to get the login details (current user name & privilege) from TestStand to TestStand UserInterface VI.
    Thanks & Regards,
    Sathish kumar D
    Solved!
    Go to Solution.

    Hey Sathish,
    I found a forum post from earlier this year with a similar question, and I think it will apply here as well. See it here: http://forums.ni.com/t5/NI-TestStand/Monitoring-ac​tivity-of-Login-Logout-button-in-LabVIEW-Simple-OI​...
    Basically, you can connect to the UserName caption of the Application Manager to display the username. Let us know if you have any further questions about it!
    Daniel E.
    TestStand Product Support Engineer
    National Instruments

  • IMAQ image out- what's the best way?

    Hello forum,
    I'm developing an interface to acquire a square image from an NI-DAQmx PCI 6221 on LabVIEW 7.0 and Windows XP. At present I am simply collecting my information from a physical sine wave generator on the bench, but eventually this will be used to process images from a CARS microscope.
    My problem is that I am trying to figure out a user-friendly way of "buffering" all previously acquired images in the session, and then choosing one several of them to save as an uncompressed BMP. At the moment I am using two image displays; one for the whole image overview (picture indicator) and one to pan around and zoom on fine details (IMAQ image indicator). The IMAQ image indicator is also outputting to an IMAQ browser window, which I have modified based on the Browser Example.vi which ships with LV. However, there are several difficulties with this method.
    Firstly, I'm not sure how to select an indexed image from the browser itself to save; the only way I can think of would end up wiring the IMAQ image out to the BMP writing VI, but that would only save the current image, and not necessarily the one the user wants.
    Secondly, I haven't quite got the hang of combining case structures, event structures and while loops yet, so there's a very specific order things have to be done in or the program hangs, (e.g.. you must press the buttons: Acquisition - Unlock Browser - Stop in that order, nothing else works properly), and I'm pretty sure I've set the browser up wrong because every time I finish with the acquisition window, an error message appears.
    Thirdly, it would be nice if I could hide the browser window until I've finished with the other window, but I can't seem to get IMAQ windshow to do that. I have boolean constants wired to Hide/Show and Set/Get but no matter what combination of false and true I use, the window appears anyway.
    I will attach the VI and subVIs to this post in a zipped folder, and would appreciate any help you could give me. General constructive criticism on my wiring, methods, Rude Goldbergs, etc, would also be appreciated if anyone has the time, as I'm still pretty new to LabVIEW.
    Thanks in advance!
    LabVIEW 2013, Windows 7
    He who asks the question is a fool for five minutes; he who does not ask the question remains a fool forever.
    Attachments:
    Image Acquisition VI 0.4.zip ‏187 KB

    DH is right about the difficulty in removing wind noise, but hoping it might prove useful, here is a hint I copied from a thread somewhere in this discussion list.
    How to export audio from Final Cut Express to (free) Audacity and back again after noise removal.
    1) download Audacity
    2) in fce timeline, place in and out points at beginning and end of audio
    3) select that audio clip, and that clip only
    4)file-export-using quicktime conversion, in the pop-up box format as aiff, 44.1kwh 16bit stereo
    5)open audacity, make sure box in bottom left corner says 44100
    6)file-import-audio
    7)go to file and select it, click choose
    8) select part of audio with just wind noise, then go to effects noise removal, click get noise profile etc.
    9)when satisfied, click file-export, click ok, close audacity
    10)Open fce, drag your audio clip to the right hand end of clip. Move playhead to the in marking. Go to File-import
    select your audio file, choose.
    11) file appears in fce browser. Drag from there to overwrite and the audio goes into the track, perfectly synced
    My apologies to whoever posted this hint, I tried to find the name to give credit. This really does work to get rid of room hum, but wind noise is a really different beast and this may not help. I suspect, as DH says, it will remove too much of the audio you want to keep. Hugh

  • Can LabVIEW process images in RAW format? Can LabVIEW handle images in the multimegapixel formats produced by some of the current DSLR cameras (e.g. 5000x3500 pixels)?

    Can LabVIEW process images in RAW format?  Can LabVIEW handle images in the multimegapixel formats produced by some of the current DSLR cameras (e.g. 5000x3500 pixels)?
    Can LabVIEW be programmed to remotely acquire images from a commercial DSLR camera with DirectShow capability?  e.g. Canon Rebel T2i.

    1) So RAW files have a multitude of possible file extensions / formats, and it depends on which of these extensions you use. If the image can fit in memory, it can be brought into LabVIEW. An image of that size should be able to come into LabVIEW. Are you considering using NI-Vision to do this? You would look into the VI called "IMAQ ReadFile." There are a certain set of standard formats that can be read.
    2) If a camera is DirectShow capable, and there are USB drivers available to access that camera through a Windows machine, then you should be able to bring that camera up in NI's software such as LabVIEW.
    Ravi A.
    National Instruments | Applications Engineer

  • Is there a way to list the 'names' of the IMAQ images in memory?

    looking for a way to generate an array of strings that contains the 'names' of all the IMAQ images in memory. I'm doing some heavy image processing and the nature of the image processing functions makes it easier to work with multiple copies of images to avoid nasty surprises (like images declared one type being unexpectedly recast as another). Unfortunately, this means drawing dozens of wires everywhere to image disposal points, which does nothing but add clutter to the block diagram.
    I'd like to be able to poll the images in memory and delete only those images which are no longer needed.
    Thanks,
    Root
    global variables make robots angry

    Root,
    You could use IMAQ GetImageInfo to get the name of an image.  If your image references are stored in an array it would be easy to generate a list of image names using IMAQ GetImageInfo in a For Loop.
    Hope this helps,
    Message Edited by mfitzsimons on 01-29-2008 05:21 PM
    Matthew Fitzsimons
    Certified LabVIEW Architect
    LabVIEW 6.1 ... 2013, LVOOP, GOOP, TestStand, DAQ, and Vison

  • Why does moving the mouse over an IMAQ image display slow the GUI down so much?

    I have a large application with several vi's running simultaneously under labview 8.6.1.  When I mouse over an image display control in one of the vi's, everything slows down a shocking amount in all the other vi's.  The windows task manager does not show a large increase in CPU use.  My pc is has a quad cpu with 4GB of RAM, and the CPU and memory loads do not appear to be terribly taxing to the system.  However, many of my vi's apparently come almost to a standstill if I just move the mouse in a circle around my image control.
    This looks like it is largely a GUI display issue.  If I make a new vi and put a while loop in it that only displays the iteration loop number to an indicator, I can see the iterating occurring, then stopping totally when I mouse inside the image display control.  When I stop moving the mouse inside the control, or when I move it outside the control, the interation loop number jumps up, as if it had been incrementing behind the scenes the whole time.  So only display of the interating was halted.
    This problem occurs even if the vi with the image control is not executing.  If the vi with the image control is open but not running, and I mouse over the image on it, the other guis all come to a screeching halt.
    Does mousing in the image display control really utterly crush all other guis in all other labview windows?  Is this an issue inherent to the image display control?  If so, is there anything I can do about this? 
    Also, this issue is not entirely limited to display.  I started looking at it in greater detail because this issue also exposed what I think is a race condition in my code.  I have a vi that acquires an image from a ccd and puts it into an IMAQ image.ctl.  This image then gets passed up to a vi up the call chain, and is put on a queue and sent over to be de-queued by a vi that has the image display control.  Here's the kicker:  when I mouse over the image display control, the image successfully gets acquired inside the subvi, and if I probe the wire leading to the output IMAQ image display.ctl, I see the image.  If I simultaneously probe the wire coming out of the subvi one level up the call chain, the image gets lost about half the time.  This only happens if I am mousing in the image display control IN A TOTALLY DIFFERENT AND SEPARATE VI.  If I bump up the priority of the ccd image acquisition vi to 'highest priority', the problem only happens about 1% of the time, and I really have to mouse around to make it happen.  Still, it's disturbing that mousing in the GUI in one window results in a failure of a separate subvi to simply pass an image up the call chain.  I understand that IMAQ images are referenced rather than passed by value, but I don't see why there should be a failure to pass the image up the call chain.  I've looked for a race condition, but can't find one.
    Eric

    I have finally been able to replicate the behavior that you are seeing on another computer once the image was large enough.  Here are a few notes about this behavior:
    First. The UI only slows down when the images are large, 16 bit images.  The reason why this is unique to 16 bit images is that they can only be displayed on the front panel as 8 bit images.  The workaround that Weiyuan suggested to change the 16 bit display mapping hints towards the root of the problem...that any time a mouse runs over the indicator, Windows asks the entire image to re-draw (having a separate indicator overlapping the image will create the same behavior).  With a 16 bit image, not only does the image have to re-draw on the screen but the 16 bit pixels need to be mapped to 8 bits.  When setting the 16 bit display mapping to Full Dynamic, this requires mor computation/pixel than 90% dynamic or one of the other mapping schemes.
    This is expected behavior if your program is running and you're trying to display a large 16 bit image.  To fix this behavior there are a couple options:
    Change the 16 bit display mapping to something other than full dynamic.  You can choose which 8 bits to display or if you want to map the bits. 
    Resize the image just for viewing purposes on your front panel (since you aren't going to view every single pixel of you image on the screen). You can use the IMAQ Resample.vi to do this.  This will allow you to take your 1500x1500 pixel image and only display a 500x500 pixel version.
    If you are interested in viewing small details of the large image, consider just displaying a smaller region of interest at a time.
    Let me know if any of these solutions work for you.  Good luck on your application.
    Zach C.
    Field Engineer
    Greater Los Angeles

  • How to disable the run-time popup menu in the sequence display on TestStand Operator Interface, that allow the use to skip the test?

    How to disable the run-time popup menu in the sequence display on TestStand Operator Interface, that allow the use to skip the test?

    Hello,
                  Regarding the skip/force pass/force fail options, when I set the ControlExecFlow to True in Teststand 3.1 and 3.5, in the Sequence Editor the menu options for skip/force pass/force fail are not active for Technician but, when I launch the Operator Interface logged with Technician the options are active. The problem is that if the technician sets one step to one of these options, and change the user to Operator, the test step remains skip/force pass.
                  Is there any possibility without modifying the Operator Interface (at programming level), to reload default values of the steps when changing the user to Operator?
    Thank you,
    Best regards,
    paio

  • Adding an "IMAQ Image.ctl" to the "Display State.ctl" of an XControl prevents LabVIEW from creating a probe of "Display State.ctl"

    I am working on an extended IMAQ Display control using LabVIEWs XControl capabilities.
    I need a copy of the original image passed to add some overlays which must not affect the original image. To achieve this I am creating a backup image in the "Init.vi" and deleting it in the "Uninit.vi". I am storing the reference of this image in the "Display State.ctl" which is part of every XControl.
    As soon as I am adding an "IMAQ Image.ctl" to the Display State cluster, it is no longer possible to generate a probe of the Display State cluster for debugging purposses. I am always getting the message: "Failed to load or create probe."
    Deleting the "IMAQ Image.ctl" from the cluster makes the probe working again.
    Is it a bug or am I doing something wrong?
    I am working with LabVIEW 8.5 and Vision 8.5.
    Regards
    Ingo Bartsch

    Hello Mr. Bartsch,
    is it possible for you to post a small example to reproduce the behaviour? It would be helpful to get a description in which way you use the typedef files.
    I found a example/knowledge base where some informations were included to XControl and LV but not with Vision.
    http://digital.ni.com/public.nsf/allkb/1DC1ADD2A136DA298625712C00635758?OpenDocument
    Best wishes
    Jan Kniewasser
    Jan Kniewasser | Applications Engineer | Tel.: +49 89 7413130 | Fax: +49 89 7146035

  • How is it possible to use a COM interface in the teststand?

    Hi,
    we have developed some small aplications that control our devices and we are planning to make a com interface for these applications?
    We would like to control this com (NOT the serial interface) interface from teststand. We do not have Labview.
    Is this possible and if yyes can you point me where I can read the procedure?
    Or if it is not described can you briefly describe it?
    Is there any other more suited options of controlling an application from Teststand? The answer to this question for us is extremly important because we would like to develope as little as possible beside the application and use the Teststand ablities to the maximum.
    Our application is written in C++ with VC++ .net 2005
    I already checked out the manuals and the source code but I didn't find any examples most of them use dll-s and ActiveX.
    Thank you fro your help and time,
    Dacian

    Hi,
    Maybe this will point you in the right direction.
    http://zone.ni.com/devzone/cda/epd/p/id/1219
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • How I can make a note on an image in the IMAQ browser?

    Hi,
    I searching for the way to add a text on a thumnail image in the IMAQ browser.
    I just ran Browser Example.vi and tried to add a note on a thumnail image using IMAQ Overlay Text API.
    And also tried adding Overlay Text on the source image and then add that source image to the IMAQ browser.
    But both way failed to make it work!
    So.. Is there any way I can add a text on the image in the IMAQ browser?
    Thanks for your help!
    Regards,
    YoungMin
    Attachments:
    browser window.png ‏51 KB

    You need to add a text overlay to each image, then merge the overlay with the image before it's loaded into the image browser.  Look in the sequence frame 1 of the outer sequence structure in the attached VI.
    www.movimed.com - Custom Imaging Solutions
    Attachments:
    Browser Example (modified).vi ‏39 KB

  • Using the Camera RAW interface for JPEG images

    I realize JPEG's don't have the information level of RAW files, but does the convenience and speed of the RAW interface not make it worth using rather then going to the usual tools like Levels and Hue/Saturation? I discovered that you can open JPEG images in the RAW interface by choosing File > Open As...and selecting "Camera RAW" as the file format. Here you can not only use the RAW interface but also change the image to 16-bits. I also understand that upscaling an image from 8 to 16-bits doesn't add more information, but would working on it in the RAW interface at 16-bits not produce more subtle changes and give you more control over the outcome.
    Looking forward to some intelligent feedback.
    Deep Woods

    From a mathematical perspective, it would seem that using the extra information in the up-sampling interpolation calculations would be better. The question is whether or not the extra digits in the calculation would produce a difference in the image. I suspect that it would be quite image dependent. Easy enough to test, with the right kind of image, whatever that is?
    Don S.

  • How can I tile up the execution window in the Labview Teststand user interface

    I am using the Labview User interface provided with the TestStand development environment.
    Running the BatchUUT.seq Example using the TestStand Sequence Editor, you will see that the Execution Window will be divided in 4 windows showing the execution status of the 4 UUTs.
    Running the same Sequence using the provided Labview User Interfaces (Simple or Full-Featured) will just show one window with the execution status.
    Is there a way to tile up the window to display the execution status in the Labview User Interface?

    Try something like this:
    You wouldn't use random numbers of course, but rely on already opened clones. So you would extend the "Manage Clones" to manage the data for the window position, but set it for each clone in the way the screenshot shows.
    hope this helps,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

Maybe you are looking for

  • ISE 1.2...Nest AuthZ rules?

    Is it possible to nest rules in ISE 1.2?  For example, rule 1 matches parent group, then rule 1.1 is a sub-group that applies policy 1, rule 1.2 matches another sub-group that applies policy 2. So on... Thanks.

  • Invoking web service using Weblogic Workshop (JCX)

    Invoking web service using Weblogic Workshop Posted: 5 Jan 2005 23:31 PM Reply Hi, I have WSDL from which I have generated a web service control (.jcx) using Weblogic Workshop. I need to write a client which will invoke the web service using the cont

  • Iweb, video and non-mac platforms

    ive placed an mp4 video on my iweb site with images and hyperlinks over it. when i view in safari and firefox it views beautifully. when i view in google chrome or on a pc the mp4 jumps in front of the other images and hyperlinks restricting my acces

  • Windows Update 956391 causes texture anomalies upon U3D creation

    This message is to make others aware of a texture problem that occurs when U3D files are created in the toolkit (and subsequently imported into Acrobat 3D) due to an automatic update of Windows Active X Renderer(956391). I am working on a project tha

  • DW8 - FTP not disconnecting

    DW8.0.2 never "disconnects" from my FTP server despite whatever parameter I set in the preferences site dialog. This is frustrating because my server does disconnect, but DW assumes it has not. So when I go to put a file up to the site DW tries to up