Hi Lin,
I cannot reproduce this problem. Like you I am running asyn R4-44-2, with only the change you listed to the testAsynPortDriver.cpp source file:
diff --git a/testAsynPortDriverApp/src/testAsynPortDriver.cpp b/testAsynPortDriverApp/src/testAsynPortDriver.cpp
index 359c89a..fa4534a 100644
--- a/testAsynPortDriverApp/src/testAsynPortDriver.cpp
+++ b/testAsynPortDriverApp/src/testAsynPortDriver.cpp
@@ -99,7 +99,7 @@ testAsynPortDriver::testAsynPortDriver(const char *portName, int maxPoints)
/* Set the initial values of some parameters */
setIntegerParam(P_MaxPoints, maxPoints);
- setIntegerParam(P_Run, 0);
+ setIntegerParam(P_Run, 1);
setIntegerParam(P_VertGainSelect, 10);
setVertGain();
setDoubleParam (P_VoltsPerDiv, 1.0);
I also set the TraceMask to 0x20. I see this when the IOC boots:
corvette:asyn/iocBoot/ioctestAsynPortDriver>../../bin/linux-x86_64/testAsynPortDriver st.cmd
dbLoadDatabase("../../dbd/testAsynPortDriver.dbd")
testAsynPortDriver_registerRecordDeviceDriver(pdbbase)
# Turn on asynTraceFlow and asynTraceError for global trace, i.e. no connected asynUser.
#asynSetTraceMask("", 0, 17)
testAsynPortDriverConfigure("testAPD", 1000)
dbLoadRecords("../../db/testAsynPortDriver.db","P=testAPD:,R=scope1:,PORT=testAPD,ADDR=0,TIMEOUT=1,NPOINTS=1000")
dbLoadRecords("../../db/asynRecord.db","P=testAPD:,R=asyn1,PORT=testAPD,ADDR=0,OMAX=80,IMAX=80")
#asynSetTraceMask("testAPD",0,0xff)
asynSetTraceIOMask("testAPD",0,0x2)
iocInit()
Starting iocInit
############################################################################
## EPICS R7.0.7
## Rev. R7.0.7-dirty
## Rev. Date Git: 2022-09-07 13:50:35 -0500
############################################################################
cas WARNING: Configured TCP port was unavailable.
cas WARNING: Using dynamically assigned TCP port 34051,
cas WARNING: but now two or more servers share the same UDP port.
cas WARNING: Depending on your IP kernel this server may not be
cas WARNING: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)
iocRun: All initialization complete
epics>
I do not get any warning messages.
I have attached a screenshot showing the testAsynPortDriver.adl screen. Note that the update time is 0.5 seconds and the waveform record has SCAN=I/O Intr. This seems
to be what you were using, because the warning messages were every 0.5 seconds and you seem to be using interrupt callbacks as well.
I am running on Centos 7, using base 7.0.7. You are running a much older version of base, 3.14.12.5. I don’t think that should cause this problem, but it is possible.
You can build your IOC with a new version of base, even if you are using an old version for medm.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of
Wang, Lin via Tech-talk
Sent: Monday, May 22, 2023 3:49 AM
To: tech-talk at aps.anl.gov
Subject: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp
Dear all,
testAsynPortDriver is a pretty good example for learning basic usage of asynPortDriver, however I encountered a warning message that I do not understand when made some modifications and ran it.
The initial status of the digital scope simulator is "Stop", if I try to set the initial status to "Run" by changing Line 102 of https://github.com/epics-modules/asyn/blob/master/testAsynPortDriverApp/src/testAsynPortDriver.cpp
from
setIntegerParam(P_Run, 0);
to
setIntegerParam(P_Run, 1);
then make and add "asynSetTraceMask("testAPD", 0, 0x20)" to the end of st.cmd, the following warning will display continuously,
epics>
epics>
epics> 2023/05/22 01:05:14.319 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:14.819 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:15.320 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:15.820 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:16.320 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:16.820 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:17.321 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:17.821 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:18.322 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:18.822 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
In order to install the old MEDM, the test environment is old as follows,
Debian 7 wheezy
base-3.14.12.5
asyn-R4-44-2
Any hint or suggestion is appreciated.
Thanks,
Lin