I am currently getting NIMC_returnDataBufferNotEmptyError (-70025) errors intermittently when the computer processor is busy. My program tends to be very active updating status but is only using about 20-40 % of the CPU. The problem occurs when the CPU is at or around 100% (another process is using the CPU). I have tried to detect all errors and repeat commands when the error is detected however it has not resolved my issue. It seems that a call to a previous command fails to clear / read all the data from the buffer and it is not detected until the next command is called.
I would like to eliminate the error however I dont know the source of the issue. It seems to be a driver/firmware issue but I have a hard time believing it.
Some things I do that may be relevant:
-I force all ni commands to be spaced out by at least 10 ms.
-Before each command is sent I wait for the ready to receive bit to be set.
-All commands in my software are surrounded by thread locks.
-I only use the _rtn commands to avoid managing the buffer.
-After each command I check the return and if it fails I try again until it succeeds.
Some more information that may also be relevant:
-I have the same code on three different systems. Two of which are older and have the issue, one is newer and it runs with out issue.
-The problem showed up after the cards firmware was updated to the latest version and new software was added.
The computer that has issues:
Windows XP SP3
Pentium 4 3GHz
2GB RAM
NI version is 8.3
PCI Cards in the computer:
7344 and 7340
both have the same firmware version:
7.40.3003 / 7.32.3003 / 7.00.3001 / 7.00.3001
Any suggestions on what to check or do to avoid the issue?
Matt