Multiple K8055 board output issues

I have three K8055 boards connected via a USB hub and my PC recognizes each one just fine. I have set the card address jumpers for the first card to 0, the second card address jumpers to 1, and the third card address jumpers to 2.

I have written a small C++ program that allows me to activate the individual digital output channels on any one of the three cards by selecting check boxes (like the demo program). I do this by first opening the card I wish to access, set the digital channel of the channel I wish to energize, and then close the device.

I’ve notitce that when any digital output is selected to be activiated, the LED goes on as expected. However, if another board is opened (closing the previous card first), and another digital channel is activated, not only does the LED illuminate for the channel selected, but ALSO the digital channel that was selected from the previous card. If the third card is opened and a digital channel is selected for activation, the LED for the digital channel illuminates In ADDITION to the two previous digital channels that were selected on the other two cards. How can this be if only one digital channel is being activated?

This doesn’t mean that there is something wrong with the cards. There is something wrong with the way the program is opening or closing the cards and activiating the output channels using the check boxes as a way of activating the channels like the demo program.

Can anyone tell me how to solve this problem of multiple channel activation? If not, then only one card can ever be used on a project
making this card of no value when multiple cards are needed.

The DLL contains one register to hold the digital output value of the card. After each change the state of the digital outputs of the card are updated according to the register content. This causes that the DLL “reminds” the last value of the digital output byte.
The solution is to use the WriteAllDigital procedure to send the data to the digital output. You may keep track in your application about the content of each card’s digital output and send this value to the card just after you have selected it.

Thank you for your help, I appreciate the rapid response.
I suspected the use of a register somewhere and will be using a
set of arrays to keep track of not only the digital channel output status for each card, but also the analog output status as well since the analog output channels have a similar issue.

Yes, there is same (problem) with the analog outputs too. You have to keep track of the analog output status for each card in your application. Using the set of arrays is good idea for this.