TimeDX Help.
Keithley DLL Name Selection
The Keithley drivers come in a DLL that
has to be nominated by TimeDX and DMDX as they run. Which would be fine if
Keithey deigned to provide some way of enumerating possible DLL names but they
don't or if they do they sure don't go out of their way to tell anyone about it
because I sure haven't found it yet. Instead their solution is to ask the
user what DLL to use, which is fine if (a) the user knows what it is that they
are doing, a postulate rarely found to be true in my experience and (b) if the
process using the Keithley card is amenable to having a dialog displayed --
which DMDX is not. Or at least it would be if the Keithley stuff wasn't
designed by blind monkeys, circumstances being as they are the Keithley drivers
(for want of a better word) require initialization in the thread doing the
hardware instead of the process that uses the hardware. Unfortunately in
DMDX that thread is a real time thread running out of ring 0 and you can't just
stop and display a dialog then. Not a big deal, when I first facilitated
the Keithley crap with DMDX there was only one DLL (KPCIPIO.DLL) that was used
so I didn't make a big fuss about it despite the fact that looking at sample
code was the only way to determine just what that name might be (believe it or
not there are other worse features of their software). Along comes their
PCMCIA card and now the DLL name is KPCPIO.DLL (found that one out by searching
for all DLLs that begin with a K and guessing which was the likely candidate).
So TimeDX has to know this name so it can store it in the registry so DMDX can
use it. You have to figure out what it is -- you'll know you've got the
right name when TimeDX stops asking which Keithley driver to use and DMDX stops
crashing. The DLL can live in \DrvLINX4\Common although not always
and not in the case of the PCMCIA drivers I've seen. I've seen KPCIDIO
instead of KPCIPIO (KPCIPIO appears to be the one that actually works
though). Interesting tidbit I found on the web:
If the driver loading fails, because maybe your application has been run on a
computer where the DriverLINX driver has not been installed, then the Open
DriverLINX dialog will appear to give you another chance to select a driver. To
suppress this behavior, append a dollar sign character onto the end of the
driver name as in "KPCPIO$".
TimeDX Index.