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.