I have written a small C++ class wrapper which simplifies access to the PCSU1000D and DSOLINK DLLs. A testbed project, written in Borland BDS2006 C++ is included, although the implementation is intended to be compiler-agnostic. It can be downloaded from:
[size=84]<edit: corrected ZIP contents, added minimal docs in PCSU1000.cpp, 12:16pm 1/8/07>[/size]
[size=84]<edit: uploaded new version with support for latest DLL features, 08:16pm 1/13/07>[/size]
In my use of the PCSU1000, adding a delay of approximately 100 mS following use of a most of the DLL calls seems necessary. For instance, when changing volts/division or time/division, the instrument appears to program some switches in order to enter the new measurement mode which is a fairly time-consuming task. I understand this requirement and I it is perfectly reasonable that these sorts of operations may take appreciable time to execute.
However, I submit that waiting for the instrument to complete each requested function should be the responsibility of the DLL, not the application code. Within the DLL, you have greater visibility into the low-level machine state. In some cases, it may be possible to poll the actual machine state to determine when an operation has completed. When that is not feasible, the DLL could code a worst-case delay to insure that the operation has completed. The duration of these delays could be be tailored for each operation to optimized performance.