Hi Ying,
I believe you uncommented this line to get your debugging output:
//printf("nread_expected = %d\tnread = %d\n", nread_expect,nread);
Can you please change that to:
printf("nread_expected=%d, nread=%d, status=%d, timeout=%f, eomReason=%d\n", nread_expect, nread, status,
M1K_TIMEOUT+acquireTime, eomReason);
That will show more information returned by pasynOctetSyncIO->writeRead().
It seems like status must be asynSuccess, because otherwise you would have also seen the output from this statement:
if(status != asynSuccess) {
asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
"%s:%s: error using readout command status=%d, nRead=%d, eomReason=%d\n",
driverName, functionName, status, (int)nread, eomReason);
}
Since you don’t see that it seems like by pasynOctetSyncIO->writeRead() returned asynSuccess, even though it did not read the expected number of characters. That seems strange.
Mark
Hello, J. Sullivan:
We have a customized DCS6 (Detector control system for up to 6 detector modules ) with 5 Dextris Mythen detector modules. We are using ADMythen module to control those 5
Detectors. The result is as follows.
Figure 1.Read back results
It can be seen the controlling part works well, but the read back data is all 0 which is not reasonable.
We tried to print the debug. The result is like figure 2.
It can be seen “nread” never equals “nread_expected”. So we believe it happens in “acquisition” parts (from line 853 to line 947). But we have not find the actual line.
Any suggestions?
Thank you!
---Ying