1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Problem with drvAsynIPPortConfigure |
From: | Dariush Hampai via Tech-talk <tech-talk at aps.anl.gov> |
To: | tech-talk at aps.anl.gov, Mark Rivers <rivers at cars.uchicago.edu> |
Date: | Fri, 19 Sep 2025 10:03:56 +0200 |
Hi Community,
I didn't write all the codes that are automatically generates by
makeAppBase.pl application. By the way, I'll report below all the
infos:
1) mdrive_1IOC/src/Makefile
# SPDX-FileCopyrightText: 2003 Argonne National Laboratory
#
# SPDX-License-Identifier: EPICS
TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
# ADD MACRO DEFINITIONS AFTER THIS LINE
#=============================
#=============================
# Build the IOC application
PROD_IOC = mdrive_1IOC
# mdrive_1IOC.dbd will be created and installed
DBD += mdrive_1IOC.dbd
# mdrive_1IOC.dbd will be made up from these files:
mdrive_1IOC_DBD += base.dbd
# Include dbd files from all support applications:
#mdrive_1IOC_DBD += xxx.dbd
mdrive_1IOC_DBD += asyn.dbd
mdrive_1IOC_DBD += drvAsynIPPort.dbd
mdrive_1IOC_DBD += stream-base.dbd
# Add all the support libraries needed by this IOC
#mdrive_1IOC_LIBS += xxx
mdrive_1IOC_LIBS += stream
mdrive_1IOC_LIBS += asyn
# mdrive_1IOC_registerRecordDeviceDriver.cpp derives from
mdrive_1IOC.dbd
mdrive_1IOC_SRCS += mdrive_1IOC_registerRecordDeviceDriver.cpp
# Build the main IOC entry point on workstation OSs.
mdrive_1IOC_SRCS_DEFAULT += mdrive_1IOCMain.cpp
mdrive_1IOC_SRCS_vxWorks += -nil-
# Add support from base/src/vxWorks if needed
#mdrive_1IOC_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
# Finally link to the EPICS Base libraries
mdrive_1IOC_LIBS += $(EPICS_BASE_IOC_LIBS)
#===========================
2) in st.cmd file
#!../../bin/linux-x86_64/mdrive_1IOC
#- SPDX-FileCopyrightText: 2003 Argonne National Laboratory
#-
#- SPDX-License-Identifier: EPICS
#- You may have to change mdrive_1IOC to something else
#- everywhere it appears in this file
< envPaths
cd "${TOP}"
epicsEnvSet ("STREAM_PROTOCOL_PATH", "${TOP}/db")
epicsEnvSet ("PORT_mdrive_x", "ip_x")
#X Axis
drvAsynIPPortConfigure($(PORT_mdrive_x), "100.100.0.23:503")
asynOctetSetInputEos($(PORT_mdrive_x),0,"\n\r")
asynOctetSetOutputEos($(PORT_mdrive_x),0,"\n\r")
asynSetTraceMask($(PORT_mdrive_x),-1,0x9);
asynSetTraceIOMask($(PORT_mdrive_x),-1,0x2)
## Register all support components
dbLoadDatabase "dbd/mdrive_1IOC.dbd"
mdrive_1IOC_registerRecordDeviceDriver pdbbase
## Load record instances
#dbLoadRecords("db/mdrive_1IOC.db","user=xlabsrv2")
dbLoadTemplate("db/mdrive_1IOC.val")
cd "${TOP}/iocBoot/${IOC}"
iocInit
## Start any sequence programs
#seq sncxxx,"user=xlabsrv2"
3) "make all clean"
[xlabsrv2@xlabsrv2 mdrive_1IOC]$ make clean all
make -C ./configure clean
make[1]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/configure»
rm -rf O.linux-x86_64 O.Common
make[1]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/configure»
make -C ./mdrive_1IOCApp clean
make[1]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp»
make -C ./src clean
make[2]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/src»
rm -rf O.linux-x86_64 O.Common
make[2]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/src»
make -C ./Db clean
make[2]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/Db»
rm -rf O.linux-x86_64 O.Common
make[2]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/Db»
make[1]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp»
make -C ./iocBoot clean
make[1]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot»
make -C ./iocmdrive_1IOC clean
make[2]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot/iocmdrive_1IOC»
rm -f cdCommands envPaths dllPath.bat relPaths.sh
make[2]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot/iocmdrive_1IOC»
make[1]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot»
make -C ./configure install
make[1]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/configure»
perl -CSD /home/xlabsrv2/epics/bin/linux-x86_64/makeMakefile.pl
O.linux-x86_64 ../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[2]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/configure/O.linux-x86_64»
perl -CSD /home/xlabsrv2/epics/bin/linux-x86_64/convertRelease.pl
checkRelease
make[2]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/configure/O.linux-x86_64»
make[1]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/configure»
make -C ./mdrive_1IOCApp install
make[1]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp»
make -C ./src install
make[2]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/src»
perl -CSD /home/xlabsrv2/epics/bin/linux-x86_64/makeMakefile.pl
O.linux-x86_64 ../../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[3]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/src/O.linux-x86_64»
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_
-DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64
-I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc
-I../../../include/os/Linux -I../../../include
-I/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/include
-I/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/include
-I/home/xlabsrv2/epics/include/compiler/gcc
-I/home/xlabsrv2/epics/include/os/Linux
-I/home/xlabsrv2/epics/include -MM -MF mdrive_1IOCMain.d
../mdrive_1IOCMain.cpp
Creating dbd file mdrive_1IOC.dbd
perl -CSD /home/xlabsrv2/epics/bin/linux-x86_64/dbdExpand.pl -I.
-I.. -I../O.Common -I../../../dbd
-I/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/dbd
-I/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/dbd
-I/home/xlabsrv2/epics/dbd -o mdrive_1IOC.dbd base.dbd asyn.dbd
drvAsynIPPort.dbd stream-base.dbd
perl -CSD
/home/xlabsrv2/epics/bin/linux-x86_64/registerRecordDeviceDriver.pl
-I. -I.. -I../O.Common -I../../../dbd
-I/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/dbd
-I/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/dbd
-I/home/xlabsrv2/epics/dbd -o
mdrive_1IOC_registerRecordDeviceDriver.cpp \
../O.Common/mdrive_1IOC.dbd
mdrive_1IOC_registerRecordDeviceDriver
/home/xlabsrv2/epics/IOCs/mdrive_1IOC
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_
-DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64
-I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc
-I../../../include/os/Linux -I../../../include
-I/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/include
-I/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/include
-I/home/xlabsrv2/epics/include/compiler/gcc
-I/home/xlabsrv2/epics/include/os/Linux
-I/home/xlabsrv2/epics/include -MM -MF
mdrive_1IOC_registerRecordDeviceDriver.d
mdrive_1IOC_registerRecordDeviceDriver.cpp
Installing created dbd file ../../../dbd/mdrive_1IOC.dbd
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_
-DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64
-I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc
-I../../../include/os/Linux -I../../../include
-I/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/include
-I/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/include
-I/home/xlabsrv2/epics/include/compiler/gcc
-I/home/xlabsrv2/epics/include/os/Linux
-I/home/xlabsrv2/epics/include -c
mdrive_1IOC_registerRecordDeviceDriver.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_
-DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64
-I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc
-I../../../include/os/Linux -I../../../include
-I/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/include
-I/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/include
-I/home/xlabsrv2/epics/include/compiler/gcc
-I/home/xlabsrv2/epics/include/os/Linux
-I/home/xlabsrv2/epics/include -c ../mdrive_1IOCMain.cpp
/usr/bin/g++ -o mdrive_1IOC
-L/home/xlabsrv2/epics/IOCs/mdrive_1IOC/lib/linux-x86_64
-L/home/xlabsrv2/epics/lib/linux-x86_64
-L/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/lib/linux-x86_64
-L/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/lib/linux-x86_64
-Wl,-rpath,/home/xlabsrv2/epics/IOCs/mdrive_1IOC/lib/linux-x86_64
-Wl,-rpath,/home/xlabsrv2/epics/lib/linux-x86_64
-Wl,-rpath,/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24/lib/linux-x86_64
-Wl,-rpath,/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2/lib/linux-x86_64
-rdynamic -m64
mdrive_1IOC_registerRecordDeviceDriver.o mdrive_1IOCMain.o
-lstream -lasyn -ldbRecStd -ldbCore -lca -lCom
Installing created executable
../../../bin/linux-x86_64/mdrive_1IOC
make[3]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/src/O.linux-x86_64»
make[2]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/src»
make -C ./Db install
make[2]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/Db»
perl -CSD /home/xlabsrv2/epics/bin/linux-x86_64/makeMakefile.pl
O.linux-x86_64 ../../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[3]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/Db/O.linux-x86_64»
make[3]: Nessuna operazione da eseguire per «install».
make[3]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/Db/O.linux-x86_64»
make[2]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp/Db»
make[1]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/mdrive_1IOCApp»
make -C ./iocBoot install
make[1]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot»
make -C ./iocmdrive_1IOC install
make[2]: ingresso nella directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot/iocmdrive_1IOC»
perl -CSD /home/xlabsrv2/epics/bin/linux-x86_64/convertRelease.pl
-t /home/xlabsrv2/epics/IOCs/mdrive_1IOC envPaths
make[2]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot/iocmdrive_1IOC»
make[1]: uscita dalla directory
«/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot»
4) "./st.cmd"
[xlabsrv2@xlabsrv2 iocmdrive_1IOC]$ ./st.cmd
#!../../bin/linux-x86_64/mdrive_1IOC
< envPaths
epicsEnvSet("IOC","iocmdrive_1IOC")
epicsEnvSet("TOP","/home/xlabsrv2/epics/IOCs/mdrive_1IOC")
epicsEnvSet("SUPPORT","/home/xlabsrv2/epics/synApps_6_3/support")
epicsEnvSet("ASYN","/home/xlabsrv2/epics/synApps_6_3/support/asyn-R4-44-2")
epicsEnvSet("STREAM","/home/xlabsrv2/epics/synApps_6_3/support/StreamDevice-2-8-24")
epicsEnvSet("EPICS_BASE","/home/xlabsrv2/epics")
cd "/home/xlabsrv2/epics/IOCs/mdrive_1IOC"
epicsEnvSet ("STREAM_PROTOCOL_PATH",
"/home/xlabsrv2/epics/IOCs/mdrive_1IOC/db")
epicsEnvSet ("PORT_mdrive_x", "ip_x")
#X Axis
drvAsynIPPortConfigure(ip_x, "100.100.0.23:503")
ERROR st.cmd line 36: Command drvAsynIPPortConfigure not found.
asynOctetSetInputEos(ip_x,0,"\n\r")
ERROR st.cmd line 37: Command asynOctetSetInputEos not found.
asynOctetSetOutputEos(ip_x,0,"\n\r")
ERROR st.cmd line 38: Command asynOctetSetOutputEos not found.
asynSetTraceMask(ip_x,-1,0x9);
ERROR st.cmd line 40: Command asynSetTraceMask not found.
asynSetTraceIOMask(ip_x,-1,0x2)
ERROR st.cmd line 41: Command asynSetTraceIOMask not found.
## Register all support components
dbLoadDatabase "dbd/mdrive_1IOC.dbd"
mdrive_1IOC_registerRecordDeviceDriver pdbbase
## Load record instances
#dbLoadRecords("db/mdrive_1IOC.db","user=xlabsrv2")
dbLoadTemplate("db/mdrive_1IOC.val")
cd "/home/xlabsrv2/epics/IOCs/mdrive_1IOC/iocBoot/iocmdrive_1IOC"
iocInit
Starting iocInit
############################################################################
## EPICS R7.0.8.2-DEV
## Rev. R7.0.8.1-142-g144f9756eac4e800f18d
## Rev. Date Git: 2025-02-05 10:16:16 -0600
############################################################################
2025/09/19 09:56:08.550149 _main_ Cannot find a bus named 'ip_x'
for 'mdrive_x:model'
2025/09/19 09:56:08.550225 _main_ mdrive_x:model: Can't attach to
bus ip_x 0
2025/09/19 09:56:08.550243 _main_ mdrive_x:model: Record
initialization failed
iocRun: All initialization complete
## Start any sequence programs
#seq sncxxx,"user=xlabsrv2"
5) "epics> help"
# ClockTime_Report asDumpHash
asInit
asSetFilename asSetSubstitutions ascar
asdbdump
asphag aspmem asprules aspuag
astac
asynAutoConnect asynEnable asynInterposeDelay
asynInterposeEcho asynInterposeEosConfig
asynInterposeFlushConfig asynOctetConnect
asynOctetDisconnect asynOctetFlush
asynOctetGetInputEos
asynOctetGetOutputEos asynOctetRead
asynOctetSetInputEos
asynOctetSetOutputEos asynOctetWrite asynOctetWriteRead
asynRegisterTimeStampSource asynReport
asynSetAutoConnectTimeout
asynSetMinTimerPeriod asynSetOption
asynSetQueueLockPortTimeout
asynSetTraceFile asynSetTraceIOMask
asynSetTraceIOTruncateSize asynSetTraceInfoMask
asynSetTraceMask asynShowOption
asynUnregisterTimeStampSource
asynWaitConnect callbackParallelThreads callbackQueueShow
callbackSetQueueSize casr cd
coreRelease
date dbCreateAlias dbDumpBreaktable
dbDumpDevice
dbDumpDriver dbDumpField dbDumpFunction dbDumpLink
dbDumpMenu
dbDumpPath dbDumpRecord dbDumpRecordType
dbDumpRegistrar dbDumpVariable dbLoadDatabase dbLoadRecords
dbLoadTemplate
dbLockShowLocked dbNotifyDump dbPutAttribute
dbPvdDump
dbPvdTableSize dbReportDeviceConfig dbStateClear
dbStateCreate
dbStateSet dbStateShow dbStateShowAll dba
dbap
dbb dbc dbcar dbd
dbel
dbgf dbgrep dbhcr dbior
dbjlr
dbl dbla dbli dblsr
dbnr
dbp dbpf dbpr dbs
dbsr
dbstat dbtgf dbtpf dbtpn
dbtr
drvAsynIPPortConfigure drvAsynIPServerPortConfigure
echo
eltc epicsEnvSet epicsEnvShow epicsEnvUnset
epicsMutexShowAll epicsParamShow epicsPrtEnvParams
epicsThreadResume epicsThreadShow epicsThreadShowAll
epicsThreadSleep errlog errlogInit
errlogInit2
exit generalTimeReport gft
help
installLastResortEventProvider iocBuild iocInit
iocLogInit
iocLogPrefix iocLogShow iocPause iocRun
iocshCmd
iocshLoad iocshRun
mdrive_1IOC_registerRecordDeviceDriver
on pft postEvent pwd
registerAllRecordDeviceDrivers registryDeviceSupportFind
registryDriverSupportFind registryDump
registryFunctionFind
registryRecordTypeFind scanOnceQueueShow
scanOnceSetQueueSize scanpel scanpiol
scanppl
setIocLogDisable streamReinit streamReload
streamReportRecord streamSetLogfile
taskwdShow
tpn var
I
I think you have the order of things in the startup file wrong.
The block
## Register all support componentsdbLoadDatabase "dbd/mdrive_1IOC.dbd"mdrive_1IOC_registerRecordDeviceDriver pdbbase
loads the dbd file and registers all Record, Device and Driver Support modules with EPICS. This includes the registration of iocShell commands.Before this block is run, the iocShell does not know the asyn-related commands.
Cheers,
~Ralph
-- ************************************ Dr. Dariush Hampai, PhD INFN - LNF X-Lab Frascati Via E. Fermi, 54 (ex 40) I-00044 Frascati (RM) Italy Mail Address: XLab-Frascati LNF-INFN Casella Postale 13 Frascati (RM) Italy Room: +39.06.9403.5248 Lab.: +39.06.9403.2286 Mob.: +39.06.9403.8025 Fax.: +39.06.9403.2597 ************************************