LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Granting Window / process absolute control??

I hope that someone out there can help:

I need to find a way to either 1) grant absolute
priority to a certain thread (or process), or
2) lock out other UI processes (windows) from taking control of the computer during th etime that one VI
runs.
Presently using Win98SE and LV5.1.1.
The computer is a P5-133.

Background:
I am writing a program which is an adaptive controller for a machine. It has to learn the
behaviour of the machine at its present operating
point and then make it perform a series of motions.
We are using some 3rd party hardware to perform
DMA AO. The on-board DMA controller interfaces
with the computer's DMA controller.
The problem occurs when another UI process (window)
takes (or
is granted) control of the system at the
same time that new data is written to the DMA buffer.
A buffer swap routine was supposed to be included in
the drivers for the hardware, but wasn't there.
OEM gave a snip of C code to build, that was supposed to work, but didn't.
Now we are stuck with having to overwrite the buffer
during DMA output from that same buffer. This has been
working okay, but now we've found this new problem.
I know that one fix might be to get a faster
machine, but there's no guaranty that will work.
We chose the hardware because we already had
much of it so needed little more to complete.
We need to perform 4 (different) channels of
DMA 16b analog output with external pacer(clock)
and trigger.

Thanks in advance
Dave Karon
Concepts NREC
0 Kudos
Message 1 of 2
(2,299 Views)
Hi Dave,

FindFast has been the culprit behind coments of this type in the past. Have you shut this down? You could also lock up the keyboard and mouse while the busy stuff is happening.

Another thought, calls to dll's will default to running in the UI thread. You can configure them as threadsafe to get them out of the UI thread if the code is re-entrant.

Otherwise, this is one of those times I hope I am wrong.
You just can't do that with Win98.

First, I guess we will have to rule out a RT environment.

I believe a NT machine with two proccessors will allow you to bind an app to one of the cpu's. I think that is about as close as you will be able to get on a MicroSoft platform.

Please chime in if there are other options.

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 2 of 2
(2,299 Views)