epics-base / pva2pva

PV Access gateway/proxy and EPICS Process Database integration
https://epics-base.github.io/pva2pva/
Other
4 stars 13 forks source link

QSRV doesn't start automatically #57

Closed zhuzzzzzz closed 1 year ago

zhuzzzzzz commented 1 year ago

After adding these code in xxxAPP/src/Makefile while building IOC , I use ./st.cmd start the IOC but QSRV doesn't start automatically, and in iocsh there is no command related with pva. what is going wrong?

myiocname_DBD += qsrv.dbd
myiocname_LIBS += qsrv
ralphlange commented 1 year ago

What versions of EPICS Base and QSRV are you using?

ttkorhonen commented 1 year ago

This page might help: https://epics-base.github.io/pva2pva/ I guess you are missing myiocname_DBD += PVAServerRegister.dbd

zhuzzzzzz commented 1 year ago

What versions of EPICS Base and QSRV are you using?

base-7.0.7 while I didn't install the pva2pva extension and just use the qsrv shipped with epics base

zhuzzzzzz commented 1 year ago

This page might help: https://epics-base.github.io/pva2pva/ I guess you are missing myiocname_DBD += PVAServerRegister.dbd

I add this line and the make operation get error. It suggests "undefined reference to 'pvar_func_registerStartPVAServer'". Do I need to install this pva2pva extension separately?

ttkorhonen commented 1 year ago

Are you using the release tar file? If yes, then pva2pva is there already. qsrv is contained in the pva2pva module; if you clone from git, you have to use--recursive to get all the necessary submodules.

If you have already successfully built the EPICS base, please check if you have softIocPVA in the bin// directory. If yes, then you have all you need. Also, as this is (in my opinion) not a bug but rather a support request, posting to tech-talk might be a better option to get a fast response.

ralphlange commented 1 year ago

Here's what we have in src/Makefile to include QSRV (if available). (Replace _APPNAME_ with your application's name.)

# Link QSRV (pvAccess Server) if available
ifdef EPICS_QSRV_MAJOR_VERSION
    _APPNAME__LIBS += qsrv
    _APPNAME__LIBS += $(EPICS_BASE_PVA_CORE_LIBS)
    _APPNAME__DBD += PVAServerRegister.dbd
    _APPNAME__DBD += qsrv.dbd
endif

That's before linking to the Base libs, i.e., before

_APPNAME__LIBS += $(EPICS_BASE_IOC_LIBS)
zhuzzzzzz commented 1 year ago

Here's what we have in src/Makefile to include QSRV (if available). (Replace APPNAME with your application's name.)

# Link QSRV (pvAccess Server) if available
ifdef EPICS_QSRV_MAJOR_VERSION
    _APPNAME__LIBS += qsrv
    _APPNAME__LIBS += $(EPICS_BASE_PVA_CORE_LIBS)
    _APPNAME__DBD += PVAServerRegister.dbd
    _APPNAME__DBD += qsrv.dbd
endif

That's before linking to the Base libs, i.e., before

_APPNAME__LIBS += $(EPICS_BASE_IOC_LIBS)

Thanks, it works.