EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: New/improved iocsh debug utility functions (dbll)
From: Dirk Zimoch <[email protected]>
To: <[email protected]>
Date: Fri, 2 Mar 2018 10:37:23 +0100
On 02.03.2018 01:19, Andrew Johnson wrote:
dbll (list links)
New: List all database links to given records or fields.
"database links_to_  given records or fields", so it's finding DB links
that point to a particular record or field? Are you using the BKNLK list
field that Michael added to dbCommon in 3.16? This information can be
obtained from the DB LockSet Report command (dblsr with level=2) in all
versions of Base, although it's fairly verbose, e.g:

epics> dblsr signal 2
Lock Set 5 5 members 5 refs epicsMutexId 0x156e2b0
signal:averaged
	INP	 INLINK NPP NMS signal
signal
	FLNK	FWDLINK NPP NMS signal:averaged
	INPB	 INLINK NPP NMS signal:step
	INPC	 INLINK NPP NMS signal:amplitude
	INPD	 INLINK NPP NMS signal:noise
signal:step
signal:amplitude
signal:noise

As I have implemented it in 3.14, I do not use 3.16 features.
I go through the list of all records (as usual) and check each link against the argument pattern. The 3.16. feature may help here but when using a pattern for the record name you still need to go through all records.

Output of an IOC with iocStats:
epics> dbll
MYIOC:FD_CNT.FLNK ==> MYIOC:FD_FREE
MYIOC:FD_FREE.INPA ==> MYIOC:FD_CNT NPP MS
MYIOC:FD_FREE.INPB ==> MYIOC:FD_MAX NPP MS
MYIOC:SCANMON_SEVR.INPA ==> MYIOC:01HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPB ==> MYIOC:02HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPC ==> MYIOC:05HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPD ==> MYIOC:1HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPE ==> MYIOC:2HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPF ==> MYIOC:5HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPG ==> MYIOC:10HZ_UPD_TIME.SEVR NPP MS
MYIOC:CALCSTATUS.INPA ==> MYIOC:SUSP_TASK_CNT.SEVR CP MS
MYIOC:CALCSTATUS.INPB ==> MYIOC:SYS_CPU_LOAD.SEVR CP MS
MYIOC:CALCSTATUS.INPC ==> MYIOC:IOC_CPU_LOAD.SEVR CP MS
MYIOC:CALCSTATUS.INPD ==> MYIOC:MEM_FREE.SEVR CP MS
MYIOC:CALCSTATUS.INPE ==> MYIOC:FD_FREE.SEVR CP MS
MYIOC:CALCSTATUS.INPH ==> MYIOC:CALINK_BROKEN.SEVR CP MS
MYIOC:CALCSTATUS.OUT ==> MYIOC:STATUS PP MS
MYIOC:HEARTBEAT.INPA ==> MYIOC:HEARTBEAT NPP NMS
MYIOC:START_CNT.INPA ==> MYIOC:START_CNT NPP NMS
MYIOC:01HZ_UPD_TIME.INPA ==> MYIOC:01HZ_MODE NPP NMS
MYIOC:02HZ_UPD_TIME.INPA ==> MYIOC:02HZ_MODE NPP NMS
MYIOC:05HZ_UPD_TIME.INPA ==> MYIOC:05HZ_MODE NPP NMS
MYIOC:10HZ_UPD_TIME.INPA ==> MYIOC:10HZ_MODE NPP NMS
MYIOC:1HZ_UPD_TIME.INPA ==> MYIOC:1HZ_MODE NPP NMS
MYIOC:2HZ_UPD_TIME.INPA ==> MYIOC:2HZ_MODE NPP NMS
MYIOC:5HZ_UPD_TIME.INPA ==> MYIOC:5HZ_MODE NPP NMS

Filtering with record pattern:
epics> dbll *CPU_LOAD
MYIOC:CALCSTATUS.INPB ==> MYIOC:SYS_CPU_LOAD.SEVR CP MS
MYIOC:CALCSTATUS.INPC ==> MYIOC:IOC_CPU_LOAD.SEVR CP MS

Filtering with field pattern:
epics> dbll *.SEVR
MYIOC:SCANMON_SEVR.INPA ==> MYIOC:01HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPB ==> MYIOC:02HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPC ==> MYIOC:05HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPD ==> MYIOC:1HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPE ==> MYIOC:2HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPF ==> MYIOC:5HZ_UPD_TIME.SEVR NPP MS
MYIOC:SCANMON_SEVR.INPG ==> MYIOC:10HZ_UPD_TIME.SEVR NPP MS
MYIOC:CALCSTATUS.INPA ==> MYIOC:SUSP_TASK_CNT.SEVR CP MS
MYIOC:CALCSTATUS.INPB ==> MYIOC:SYS_CPU_LOAD.SEVR CP MS
MYIOC:CALCSTATUS.INPC ==> MYIOC:IOC_CPU_LOAD.SEVR CP MS
MYIOC:CALCSTATUS.INPD ==> MYIOC:MEM_FREE.SEVR CP MS
MYIOC:CALCSTATUS.INPE ==> MYIOC:FD_FREE.SEVR CP MS
MYIOC:CALCSTATUS.INPH ==> MYIOC:CALINK_BROKEN.SEVR CP MS

*.VAL looks for links without field name as well:
epics> dbll *.VAL
MYIOC:FD_CNT.FLNK ==> MYIOC:FD_FREE
MYIOC:FD_FREE.INPA ==> MYIOC:FD_CNT NPP MS
MYIOC:FD_FREE.INPB ==> MYIOC:FD_MAX NPP MS
MYIOC:CALCSTATUS.OUT ==> MYIOC:STATUS PP MS
MYIOC:HEARTBEAT.INPA ==> MYIOC:HEARTBEAT NPP NMS
MYIOC:START_CNT.INPA ==> MYIOC:START_CNT NPP NMS
MYIOC:01HZ_UPD_TIME.INPA ==> MYIOC:01HZ_MODE NPP NMS
MYIOC:02HZ_UPD_TIME.INPA ==> MYIOC:02HZ_MODE NPP NMS
MYIOC:05HZ_UPD_TIME.INPA ==> MYIOC:05HZ_MODE NPP NMS
MYIOC:10HZ_UPD_TIME.INPA ==> MYIOC:10HZ_MODE NPP NMS
MYIOC:1HZ_UPD_TIME.INPA ==> MYIOC:1HZ_MODE NPP NMS
MYIOC:2HZ_UPD_TIME.INPA ==> MYIOC:2HZ_MODE NPP NMS
MYIOC:5HZ_UPD_TIME.INPA ==> MYIOC:5HZ_MODE NPP NMS
(OK, FLNK->VAL is a bit questionable, maybe I should change this)


References:
New/improved iocsh debug utility functions Dirk Zimoch
Re: New/improved iocsh debug utility functions Andrew Johnson

Navigate by Date:
Prev: Re: New/improved iocsh debug utility functions (dbla) Dirk Zimoch
Next: Re: New/improved iocsh debug utility functions (dbli) Dirk Zimoch
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: New/improved iocsh debug utility functions (dbla) Dirk Zimoch
Next: Re: New/improved iocsh debug utility functions (dbli) Dirk Zimoch
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 02 Mar 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·