The only way seems to be to use OpenDevice(CardAddress) for the K8055 to check if connected.
For VM167 you can use OpenDevices() and then also Connected() function to check if card is still connected.
The VM167 is using full speed USB communication and is much faster than the K8055.
A difference compared to the K8055 is that the VM167 needs a driver to be installed when the card is first time plugged in.
It seems possible to mix the new VM167 and the VM140 boards on one PC, if the new .dll is used (and of course giving them different addresses).
But I haven’t found anything about mixing VM167 and VM110 (K8055) boards on the same PC (I have one VM110 aready installed). Although different addresses can be given (0 and 1 for VM167 and 2 and 3 for VM110), they use different .dll’s but the same function name calls like ReadDigitalChannel, etc.
That makes that a mix is impossible, except if the new .dll also supports the VM110. Is that the case?
[quote]Just as with the .NET Framework, the Declare statement supports the Alias clause that allows you to specify that the function has a different name in the DLL. This is useful when the function name in the DLL conflicts with a keyword or another function already defined in your code. The DllImportAttribute attribute supports this feature as well, through the EntryPoint property that can be added to the attribute declaration, as follows.
[DllImport("coredll.dll", EntryPoint="SHGetSpecialFolderPath")]
static extern bool GetFolderPath( //the rest of the declaration[/quote]
Here a Visual C++ 2008 Express axample:
[DllImport("vm167.dll", EntryPoint = "SetAllDigital", CharSet=CharSet::Ansi)]
static void VM167SetAllDigital(int CardAddress);
And here how to use the function:
Thanks a lot! Never used the Alias function, but in this case we will try it to avoid conflicts between the boards.
I will buy a VM167 as soon as available, it just meets what I need!