Blocks the execution of the user Image Acquisition interface

I am currently trying to create a user interface that displays images from a camera attached to a microscope with a mobile table.  The user is able to interact with the images and can click on them, which causes the table to move to a new location.  Acquisition is made by calling a DLL, the DLL grey flycapture point camera, using a call library function node.

When I acquire images at 15 frames per second, it has no problem with user input.  However, when I drop the acquisition at 2 frames / second (necessary if you need to have the exposure time), labview seems to take a break from the user interface while the image acquisition is underway.  Interaction of the UI seems possible in the holes between the image acquisitions.

I'm sure that this is happening because there is a kind of blocking going on here.  The program is waiting for the new image to be returned and will not not something else happen while he waits.  I have image acquisition running in a separate, called function from a higher level, VI, which puts the image data in a global variable (I know I know... global variables).  When I need to display the image, I read of the global variable and display it on my form of user interface.

I think I need to run things in separate threads to avoid the problems that I have because I have a dependency that is the cause of blocking.  I'm looking for any suggestions on how I can the architect this.  I have thought about using a VI server to launch the acquisition of the camera and will try to implement this, but I wonder if there is another method that I'm missing here.

Any suggestions would be greatly appreciated!  I use LabVIEW 8.6 on a Windows 7 machine indeed.  I do not use LabVIEW image acquisition module.

Thank you

Hey Gerry,.

It's Paul in Ministry here at National Instruments engineering applications. What Paul was referring to a call library function node configuration properties. If you right-click on the node library function call you can click on configure and you should see a window that looks like the image below.

As you can see, you have the option to select run this library in the UI thread or any thread. This is important because there is only a single user interface thread. Therefore, deadlocks can occur when the code is written in parallel, but operations are both occurring in the UI thread. What results is a part of the code has to wait that the other part at the end and so the lock upwards in the user interface. The reason why the call library function node is set to run in the default UI thread is now, because only the security thread functions can be performed in any thread. So before you change this configuration it is strongly recommended that you check that the functions you call are thread-safe. You can also check which configuration, the node library function call is in the color of the node itself. If it is an orange color which means that it is set to run in the UI thread. If it is a pale yellow color, it is set to run in any thread. Let me know if you have any other questions!

Paul M

Tags: NI Software

Similar Questions

  • How can I block the users access to microsoft office?

    How can I block the users access to microsoft office?

    You must set "" permission to run on each of the Microsoft Office programs (word.exe, excel.exe, powerpnt.exe, etc.) such that the group 'Administrators' and the SYSTEM is allowed to run.  To do this, you do a right click on the .exe file, select 'Properties', then click on the 'Security' tab and change security as you wish.

    If you do not have a 'Security' tab, then it is because you have XP Home Edition, or if you have XP Pro with active Simple file sharing.  For XP Home, you must boot mode safe (repeatedly tap F8 at startup key) and login as an administrator to access this tab.  For XP Pro, follow the instructions in the following article:

    "How to disable the file sharing simple and how to set permissions on a shared folder in Windows XP"
      <>http://support.Microsoft.com/kb/307874 >

    HTH,
    JW

  • How do you get the Windows Image Acquisition (stisvc) service to restart?

    HP Pavilion DV6-2088dx running Win 7.0 64 Bit Ultimate

    When I try to restart the Windows Image Acquisition Service I get a message access denied (Services tab in the Task Manager) or an "error 1068: the dependency service or group could start" (in the Services window).

    Hello

    One thing to check is the following.

    Open windows control panel, open administrative tools, and then open Services.  Make sure that the following services (order of th specified below check them) are all showing that status = started and the Startup Type = Automatic

    Remote procedure call (RPC)

    Detection material core

    Windows Image Acquisition

    If you need to make a change to one of the above, just right-click the service and select Properties, and then in the drop-down list box next to "Startup Type", select automatic and click on apply to save the changes.  Then click on the Start button.

    Kind regards

    DP - K

  • Using Captivate to record the user of Captivate interface

    I want to Captivate allows you to create a Captivate demo video. How can I keep the user of Captivate interface to reduce when I start recording?

    Mike

    You can open several instances of Captivate and recording of one of them.

    Anthony

  • Block the Google Images

    Hello

    I wonder if there is a way to block Google Images?

    The problem is that even if the filter is turned on and functioning properly, you can go to Google Images and then find XXX Note: images...

    For example, you can block Google search engine specifically & I blocked as far as I could think of, Google.com/us/uk etc.

    but then I find search results for other countries in google sites, so it's easy to spend the family fishing using Google Images to get the xxx images.

    How can this be repaired?

    Thanks for your help

    Kind regards.

    You can also try to explicitly block google.com/images - I found that it works

  • Time after the event, without blocking the user

    Hi, I am creating a software to control a power supply. One feature that I have bad to add is a timer.

    I have a structure for the event that fires when the user clicks on the buttons, which most slowly increases the current for a period defined by the user. I want the timer to count so far defined by the user of time (in seconds) after the event fires. One thing, however, is that I need to be free to trigger another event (which stops the power supply in an emergency) so I can't have this synchronization process lock me up for snap buttons.

    I was experimenting with the millisecond timer, as well as with a loop that goes through with a defined time interval, but it is not quite give me the functionality I want. (I've been placing these loops of timing outside the structure of the event to other events run yet, but I want the timer to only is triggered after an event is triggered, is it still possible?)

    If you need more information, just ask, thanks!

    Thnigs to do to dramatically improve your code:

    You need not separate loop.  Put your code from timer inside the structure of the case of timeout event.  Set the time-out to 50 instead of 500 to match what is in your separate loop.  You can get rid of the becaue of queue, it is no longer necessary.  Create registry to offset on the main loop.  When the event occurs to start timer, pass the time for the shift on the right side register.  Wire the shift register on the left side in the event of timeout to use its value.  BTW, the shift in your separate loop register is used to nothing because you do not change the value on the wire.  Don't put all the loop in the case of timeout, get rid of the loop and just put the code of the loop, with the exception of the EndTime variable that can be removed and 50mS delay, which can be removed.

    Put the Boolean value of early Inc. inside the case to start Inc. value change event.  Same for all Boolean values.  Put them in their cases of particular event.

    Get rid of local variables now.  You'll race conditions if you do not, you doing wrong in that you don't need especially now.  Look at the current limit control.  Add a wire from the control of the current limit to where feeds the local variable of the current limit.  Delete the local section.

    Move all the controls from the inside of the structure of the event outside the structure of the event, but still within the main loop.  Wire controls where they are going.  Now you can eliminate all local variables of thos and just wire from control where they are needed.

    All outputs error.  One is enough.  Create an error in your front panel.  On the block-diagram wire the error in the first function of Sorrensen before the loop.  Where the error from the Sorrensen hit the loop function, change the terminal on a shift register (right click and select replace with shift register).  Move the error Out 2 to out of the loop on the right side.  Error 2 wire the register shift on the right side.  Everywhere, you need a mistake in, branch off the error in the thread because it is in the loop.  Wire all your outs of the error in the case of the event and the last Sorrensen function to a function of merge error.  Wire of this error on the shift register.  All your errors are combined in a single indicator.

    That should do for now.

  • The user image display

    When a user login, I wanted to display a small image of the user) about the name of connection in the upper right corner.  How can I achieve this?

    George

    gkthomas wrote:

    When a user login, I wanted to display a small image of the user) about the name of connection in the upper right corner.  How can I achieve this?

    See the image in the dashboard Navigation Bar display list customary at the APEX 5

  • How to use the progress indicator that block the user for editing?

    Hi all

    I have a requirement where I need to display a round progress bar while processing the database. For example:-I have a stubborn taskflow and in it, I have a two jspx page called 'First.jspx' and 'Second.jspx '. And I have two text boxes and a button 'Save' on the first.jspx page.
    Now, when the user puts the values in the text boxes and click the 'Save', my ticker or the progress indicator should say "Please wait while running" and as soon as the transaction is complete, I need to show another page which is the page of "Second.jspx". The 'Save' button action has method within a managed bean that has some features and then it executes the VO (View object) and validates the data.


    How can I implement the indicator?

    I read this article:- http://www.oracle.com/technetwork/developer-tools/adf/learnmore/42-progressbarcolor-169184.pdf , but it does not match my needs. I need indicator that holds the user to change anything on the page. Like what we get when we do any operation on the banks when navigating to the payment gateway.

    Please suggest!
    Thank you and best regards,
    Shah

    Hi Shah,

    The answer was around the same are looking in. http://www.Oracle.com/technetwork/developer-tools/ADF/learnmore/27-long-running-queries-169166.PDF, but the sample was 27.

    -Juan Camilo

  • User Message interface help - table to send to the user through ActiveX interface

    Hello

    I asked a similar question before, but now I'm having problems trying to get a table in the user interface via the mail user interface. I am my code TestStand, I have an expression to send a picture that is as a container of table of FileGlobal to the UI as such:

    RunState.Thread.PostUIMessageEx (UIMsg_UserMessageBase + 2, 0, "", FileGlobals.DataRead, False)

    and in the UImessage callback I what I thought, I have to do to send the data to an array of text on the user interface. It does not work.

    Can someone tell me what I am doing wrong?

    Is attached, the UIcallback, a picture of the table on my user interface and control


  • The font size of the user of CS6 interface

    I see there is an option for the police of the UI, for small, medium and large (after a reboot) except on my copy, it seems to make no difference?

    I'm doing something wrong?

    Thank you

    Peter

    Police of the user interface. Must say the font size of the User Interface of the Photoshop application as indicated in the preferences > Interface.

    On a normal laptop screen, the three parameters look like this on a screen of 1280 x 800.

    It makes a difference on a 100 dpi monitor, but if you have a portable computer the HiDpi 200 of PPI, I don't think you'll see a difference. I think that yours is 136 ppi

    CS6 was designed before the screens high-resolution laptops Windows were around.

    I know a hack which may help. Watch over and proceed with caution.

    http://www.danantonielli.com/Adobe-app-scaling-on-high-DPI-displays-fix/

    Gene

  • Can I block the user to connect to the VPN 3030 by type of customer or version?

    I would like to block some users who use to connect to our VPN 3030 client Win98 or very old version of VPN client.

    Is there a way to set up my VPN 3030 so I can block customers? I don't want to push new customer for them or that you don't have a server radius or something like that to put them on an isolated network independent.

    I want to configure VPN 3030, is it possible?

    Thank you.

    Jayesh,

    Reach:

    Configuration | User management | Groups

    Go to the specific group and click on modify.

    On the IPSec tab, you will see a section for:

    Customer type & Version limiting

    For example:

    p *: 4.7*

    This will allow the version 4.7 of customers.

    See you soon

    Gilbert

    Write it down, if it can help

  • Virus - hacker blocks the user to open the profile.

    A pirate got into my PC (OS Windows7) and place a notification of FBI professional looking that my PC was blocked and pay $300.00 to have it unlocked.   They took a picture of me and placed in the notification of the FBI.  I ran virus scan and delete what I was fine as the virus.  However, after restarting the PC, I clicked on my journal on the ICON, what came was a blank white screen.  Someone knows how to get arround this problem?  Any help will be appreciated.

    Try to clean boot. If it works fine, use Malwarebytes to find malicious programs. Cases of failure to boot, as billybogs suggested, start mode safe and try to use Malwarebytes. But don't USE SYSTEM RESTORE, BECAUSE IT IS VERY UNLIKELY THAT THE WILLINGNESS of MALWARE ALSO RESTORED.

  • Hide the user of Excel interface

    I use the report generation tool to treat a large number of Excel files, up to 15,000 at the time. I would like to ensure that the Excel user interface does not appear. I think it will increase speed dramatically. I say that it is a method of ActiveX or property, but cannot locate the appropriate injector. Someone at - it a trick?

    Hi rimfire,.

    You must call Excel with a magic ActiveX:

  • Issue of the user of LabVIEW interface

    Hi guys:

    I have two question about LV user interface design:

    Referring to the generation of the LV application:

    1 How do I hide the runing mode menu bar

    2 How do I change the title, I mean, usually the title of the application window is "xxx.vi", I can change it?

    Thank you

    You can mark as solution has agreed to close the thread

  • Cannot read the labels in the user of LR interface!

    I am a user of LR long tried items during the time of the party. It is almost impossible for me to read the black text on a dark gray background, which is used on most controls. Is it possible to change to a user interface with a bit more contrast? Thank you.

    I use Color Munki to calibrate my screen and my prints match the screen very well. This isn't a problem of monitor and it is not unique to LR. Adobe Digital Editions has the same problem. For example, I can't see the thumb on the vertical scroll bar in Digital Editions.

    The good news is that the text, I can barely see in LR is for items that are disabled. The elements that are activated are readable, so the problem is not serious because I first thought. Thanks for the reply and suggestion.

Maybe you are looking for

  • Why your site continue to send me in circles?

    When you try to contact support, they will send you one place and then he sends you to another, and then shazam, you're back where you started. How (and more importantly, why) what do I do? My real question is - when I delete a message my e-mail serv

  • Satellite A100 - 147 Compression file error with the product recovery disc

    I have Toshiba A100-147, just out of warranty. I tried to recover with a disk, disk unpack to 69% and then I get the message "ERROR READING OF COMPRESSION FILE (1). I have no choice but to click OK in the error message box, and then quit the recovery

  • Lenovo G560 bluetooth?

    I have lenovo G560 679 99u and I was wonder that, if it had bluetooth. I see all kinds of bluetooth drivers and other wonderful things. but I would like to know if this model actully comes with it?

  • HELP - can't get VIsta system out of safe mode

    Can someone help me? I tried to install a pc game for my granddaughter on my Vista computer. The computer went into safe mode and I can't get it back in normal mode. I tried to reboot (key F8), compensation tab, click Normal, safe mode reboot, but th

  • Cannot create the contact group

    I have Windows Vista. On my toolbar of Windows Mail, there is no pull down for "new group contacts. He goes to the file/new/contacts, and that's all! The new group contacts seems to have dissappeared in option.