EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP withdxpStandalone_2-10
From: "Mark Rivers" <[email protected]>
To: "David Ehle" <[email protected]>
Cc: David Ehle <[email protected]>, [email protected]
Date: Wed, 17 Mar 2010 12:37:38 -0500
David, 

caRepeater is not needed to get the functionality you are seeing, i.e.
that PVs hosted on that system are visible to other systems, so it works
even without caRepeater.  caRepeater is needed to fan out CA beacon
messages to multiple clients in some circumstances.  This is from the
manual:

"When several client processes run on the same host it is not possible
for all of them to directly receive a copy of the server beacon messages
when the beacon messages are sent to unicast addresses, or when legacy
IP kernels are still in use. To avoid confusion over these restrictions
a special UDP server, the CA Repeater, is automatically spawned by the
CA client library when it is not found to be running. This program
listens for server beacons sent to the UDP port specified in the
EPICS_CA_REPEATER_PORT parameter and fans any beacons received out to
any CA client program running on the same host that have registered
themselves with the CA Repeater. If the CA Repeater is not already
running on a workstation, then the "caRepeater" program must be in your
path before using the CA client library for the first time."

> epicsSocketEnablePortUseForDatagramFanout: unable to set SO_REUSEADDR?

That message is not normal, and I have not seen it before.

Anyone else know what could be causing that?

Mark





-----Original Message-----
From: David Ehle [mailto:[email protected]] 
Sent: Wednesday, March 17, 2010 12:12 PM
To: Mark Rivers
Cc: David Ehle; [email protected]
Subject: RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP
withdxpStandalone_2-10


Mark,

Thank you very much for your quick reply yesterday AND your onsite visit

:)

I think we are functional now and I feel a bit silly - you were correct 
that the template files were the culprit, they had an incorrect PV
prefix.

(all that is old news for you but I thought I'd include it for anyone 
searching the list in the future.)

We do have 2 other items that are just curiosities at this point but I 
thought I would see if the list could shed some light on.

1st.  It seems that medm clients (and caget/cainfo) on other systems as 
the beamline can access the PV's hosted on this system even if the 
caRepeater app from EPICS Win32 Extensions has not been started... is 
there a caRepeater service implicit in the dxpStandalone package
somehow? 
Or am I really just misunderstanding how the PV values are made
available? 
(quite possible - I'm a EPICS novice).

Second, when running caget or caingo from the precompiled 
epics_base..../bin/cyginw-x86/ on the system acting as the IOC I get
this 
message:
epicsSocketEnablePortUseForDatagramFanout: unable to set SO_REUSEADDR?

But it also returns the provided value.

Does this mean anything I should be concerned about? Or is it just an 
artifact of the different behaviors of the ports and SO_REUSEADDR
between 
'nix/Cygwin/Windows?

Thanks again for you help!

David.

On Tue, 16 Mar 2010, Mark Rivers wrote:

> David,
>
> I suspect the problem could be hinted at in these messages:
>
> save_restore: connect failed for channel 'XMAP_med1:EnableClientWait'
> save_restore: connect failed for channel 'XMAP_med1:mca1.CALO'
> errlog = 611 messages were discarded
> save_restore: connect failed for channel 'XMAP_med1:mca4.R3HI'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R3IP'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R3NM'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R4LO'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R4HI'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R4IP'
>
> It looks like maybe your 8element.template file, which is not included
> in your message, is using a different PV prefix than the save/restore
is
> expected, and perhaps different from what your medm screens are
> expecting.
>
> I wrote that dxp software, so I can probably help figure it out.  Are
> you at the APS?  If so I can come down and take a look.
>
> Mark
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of David Ehle
> Sent: Tuesday, March 16, 2010 3:18 PM
> To: [email protected]
> Subject: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP
> withdxpStandalone_2-10
>
> Hello,
>
> I'm trying to make 2 DXP-XMAP "cards" available via Epics.
>
> I have mostly duplicated an almost identical setup that Nino
> configured for us that was using 1 DXP-XMP.
>
> Everything seems to be set up correctly, but I can't see the PV's via
> caget or an medm interface.
>
> Below is the output of running the batchfile sets up the environment
> and starts cygwin-x86\dxpApp.exe 8element.cmd  Any ideas would be very
> much appreciated.
>
> The biggest oddity I'm seeing is that it seems like there are no
> values for most of the PVs when its restoring from last saved state.
> Do I need to set these from scratch or are there default values?
>
> Please send any responses to [email protected] as well as the list as I am
> not a regular subscriber.
>
> Output Follows:
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM Tell
> medm where to look for .adl files.  Edit the follow
> ing line, or comment it
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM out if
> the environment variable is already set
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>set
> EPICS_DISPLAY_PATH=D:\dxp_adls;D:\epics\dxpStandalone_2-
>
10\dxp\2-10\dxpApp\op\adl;D:\epics\dxpStandalone_2-10\autosave\4-5\asApp
> \op\adl;D:\epics\dxpStandalone_2-10\mca\6-11\mca
>
App\op\adl;D:\epics\dxpStandalone_2-10\sscan\2-6-3\sscanApp\op\adl;D:\dx
> p_adls
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM Set up
> environment form Mingwin
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM
> DISPLAY=localhost:0.0
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM
> XKEYSYMDB=C:\Program Files\Xming\XKeysymDB
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM
> XLOCALEDIR=C:\Program Files\Xming\locale
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM Start
X
> Server
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM
> C:\Program Files\Xming\Xming.exe :0 -clipboard -multiwin
> dow
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM Note
> that we must use the Windows "start" command or med
> m won't find X11 dlls
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM start
> medm -x -macro "P=XMAP_med1:, D=dxp, M=mca" 8eleme
> nt_dxp.adl
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM Put
> Cygwin in the path so the EPICS application can find
>  cygwin1.dll
>
>
D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>PATH=c:\cygw
> in\bin;
>
> D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>REM
> ..\..\bin\cygwin-x86\dxpApp.exe 4element.cmd
>
>
D:\epics\dxpStandalone_2-10\dxp\2-10\iocBoot\iocXMAPid_med1>..\..\bin\cy
> gwin-x86\dxpApp.exe
> 8element.cmd
> < envPaths
> epicsEnvSet("ARCH","cygwin-x86")
> epicsEnvSet("IOC","iocXMAPid_med1")
> epicsEnvSet("TOP","D:\epics\dxpStandalone_2-10\dxp\2-10")
>
epicsEnvSet("SNCSEQ","/cygdrive/d/epics/dxpStandalone_2-10/seq/2-0-12")
> #epicsEnvSet("EPICS_BASE","/corvette/usr/local/epics/base-3.14.10")
>
epicsEnvSet("ASYN","/cygdrive/d/epics/dxpStandalone_2-10/asyn/4-11beta")
> epicsEnvSet("MCA","/cygdrive/d/epics/dxpStandalone_2-10/mca/6-11")
> epicsEnvSet("CAMAC","/cygdrive/d/epics/dxpStandalone_2-10/camac/2-5")
> epicsEnvSet("DXP","/cygdrive/d/epics/dxpStandalone_2-10/dxp/2-10")
> epicsEnvSet("CALC","/cygdrive/d/epics/dxpStandalone_2-10/calc/2-7")
>
epicsEnvSet("SSCAN","/cygdrive/d/epics/dxpStandalone_2-10/sscan/2-6-3")
> epicsEnvSet("BUSY","/cygdrive/d/epics/dxpStandalone_2-10/busy/1-2")
>
epicsEnvSet("AUTOSAVE","/cygdrive/d/epics/dxpStandalone_2-10/autosave/4-
> 5")
> # Tell EPICS all about the record types, device-support modules,
> drivers,
> # etc. in this build from dxpApp
>
dbLoadDatabase("/cygdrive/d/epics/dxpStandalone_2-10/dxp/2-10/dbd/dxp.db
> d")
> dxp_registerRecordDeviceDriver(pdbbase)
> # Setup for save_restore
> < ../save_restore.cmd
> ### save_restore setup
> #
> # The rest this file does not require modification for standard use,
> but...
> # If you want save_restore to manage its own NFS mount, specify the
name
> and
> # IP address of the file server to which save files should be written.
> # This currently is supported only on vxWorks.
> #save_restoreSet_NFSHost("oxygen", "164.54.52.4")
> # status-PV prefix
> #save_restoreSet_status_prefix("xxx:")
> # Debug-output level
> save_restoreSet_Debug(0)
> # Ok to save/restore save sets with missing values (no CA connection
to
> PV)?
> save_restoreSet_IncompleteSetsOk(1)
> # Save dated backup files?
> save_restoreSet_DatedBackupFiles(1)
> # Number of sequenced backup files to write
> save_restoreSet_NumSeqFiles(3)
> # Time interval between sequenced backups
> save_restoreSet_SeqPeriodInSeconds(300)
> # specify where save files should be
> set_savefile_path("autosave")
> ###
> # specify what save files should be restored.  Note these files must
be
> # in the directory specified in set_savefile_path(), or, if that
> function
> # has not been called, from the directory current when iocInit is
> invoked
> #set_pass0_restoreFile("auto_positions.sav")
> #set_pass0_restoreFile("auto_settings.sav")
> #set_pass1_restoreFile("auto_settings.sav")
> # load general-purpose interpolation tables with local, user-editable
> file
> # (if interp_settings.req is included in auto_settings.req, the next
> line
> # will overwrite those restored values)
> #set_pass1_restoreFile("interp.sav")
> ###
> # specify directories in which to to search for included request files
> set_requestfile_path("./")
>
set_requestfile_path("/cygdrive/d/epics/dxpStandalone_2-10/autosave/4-5"
> ,
> "asApp/Db")
> set_requestfile_path("/cygdrive/d/epics/dxpStandalone_2-10/calc/2-7",
>    "calcApp/Db")
> set_requestfile_path("/cygdrive/d/epics/dxpStandalone_2-10/camac/2-5",
>    "camacApp/Db")
> set_requestfile_path("/cygdrive/d/epics/dxpStandalone_2-10/dxp/2-10",
>     "dxpApp/Db")
> set_requestfile_path("/cygdrive/d/epics/dxpStandalone_2-10/mca/6-11",
>     "mcaApp/Db")
>
set_requestfile_path("/cygdrive/d/epics/dxpStandalone_2-10/sscan/2-6-3",
>
> "sscanApp/Db")
> #dbLoadRecords("$(AUTOSAVE)/asApp/Db/save_restoreStatus.db", "P=xxx:")
> save_restoreSet_status_prefix("XMAP_med1:")
>
dbLoadRecords("/cygdrive/d/epics/dxpStandalone_2-10/autosave/4-5/asApp/D
> b/save_restoreStatus.db",
> "P=XMAP_med1:")
> set_pass0_restoreFile("auto_settings8.sav")
> set_pass1_restoreFile("auto_settings8.sav")
> # Set logging level (1=ERROR, 2=WARNING, 3=XXX, 4=DEBUG)
> xiaSetLogLevel(2)
> xiaInit("xmap8.ini")
> xiaStartSystem
> # DXPConfig(serverName, ndetectors, ngroups, pollFrequency)
> DXPConfig("DXP1",  8, 1, 100)
> dbLoadTemplate("8element.template")
> #xiaSetLogLevel(4)
> #asynSetTraceMask DXP1 0 255
> #asynSetTraceIOMask DXP1 0 2
> #var dxpRecordDebug 10
> ### Scan-support software
> # crate-resident scan.  This executes 1D, 2D, 3D, and 4D scans, and
> caches
> # 1D data, but it doesn't store anything to disk.  (See 'saveData'
> below for that.)
>
dbLoadRecords("/cygdrive/d/epics/dxpStandalone_2-10/sscan/2-6-3/sscanApp
> /Db/scan.db","P=XMAP_med1:,MAXPTS1=2000,MAXPTS2=
> 1000,MAXPTS3=10,MAXPTS4=10,MAXPTSH=2048")
> iocInit
> Starting iocInit
>
########################################################################
> ####
> ## EPICS R3.14.10 $$Name: R3-14-10 $$ $$Date: 2008/10/27 19:39:04 $$
> ## EPICS Base built Apr 29 2009
>
########################################################################
> ####
> reboot_restore: entry for file 'auto_settings8.sav'
> reboot_restore (v4.11): entry for file 'auto_settings8.sav'
> reboot_restore: Found filename 'auto_settings8.sav' in
restoreFileList.
> *** restoring from 'autosave/auto_settings8.sav' at initHookState 5
> (before record/device init) ***
> 1569 PVs had no saved value.
> reboot_restore: done with file 'auto_settings8.sav'
>
> Registered for notification of PCI DMA channel 0: HANDLE 0x564
> 2010/03/16 15:07:31.901 drvDxp::drvUserCreate, unknown
command=ACQUIRING
> dxpXMAP1:ReadCallback devAsynInt32::initCommon drvUserCreate
> recDynLinkOut: waiting for CA context
> reboot_restore: entry for file 'auto_settings8.sav'
> recDynLinkOut: got CA context
> reboot_restore (v4.11): entry for file 'auto_settings8.sav'
> reboot_restore: Found filename 'auto_settings8.sav' in
restoreFileList.
> *** restoring from 'autosave/auto_settings8.sav' at initHookState 6
> (after record/device init) ***
> 1569 PVs had no saved value.
> reboot_restore: done with file 'auto_settings8.sav'
>
> iocRun: All initialization complete
> seq dxpMED, "P=XMAP_med1:, DXP=dxp, MCA=mca, N_DETECTORS=8"
> SEQ Version 2.0.12: Mon Feb  2 14:57:27 2009
> Spawning state program "dxpMED", thread 0x10432b10: "dxpMED"
> ### Start up the autosave task and tell it what to do.
> # Save settings every thirty seconds
> create_monitor_set("auto_settings8.req", 30, "P=XMAP_med1:")
> ### Start the saveData task.
> saveData_Init("saveData.req", "P=XMAP_med1:")
> saveData: message queue created
> saveData: Can't connect to some or all retry PVs
> saveData: section [basename] not found
> CAS: UDP recv error (errno=Interrupted system call)
> epics> Registered for notification of PCI DMA channel 0: HANDLE 0x568
> save_restore:connect_list: not all searches successful
> save_restore: connect failed for channel 'XMAP_med1:PresetReal'
> save_restore: connect failed for channel 'XMAP_med1:PresetLive'
> save_restore: connect failed for channel 'XMAP_med1:StatusAll.SCAN'
> save_restore: connect failed for channel 'XMAP_med1:ReadAll.SCAN'
> save_restore: connect failed for channel 'XMAP_med1:ReadDXPs.SCAN'
> save_restore: connect failed for channel
> 'XMAP_med1:ReadDXPBaselines.SCAN'
> save_restore: connect failed for channel
> 'XMAP_med1:BaselineHistoryTimes'
> save_restore: connect failed for channel 'XMAP_med1:TraceWaits'
> save_restore: connect failed for channel 'XMAP_med1:EnableClientWait'
> save_restore: connect failed for channel 'XMAP_med1:mca1.CALO'
> errlog = 611 messages were discarded
> save_restore: connect failed for channel 'XMAP_med1:mca4.R3HI'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R3IP'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R3NM'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R4LO'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R4HI'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R4IP'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R4NM'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R5LO'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R5HI'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R5IP'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R5NM'
> save_restore: connect failed for channel 'XMAP_med1:mca4.R6LO'
>
> CAS: UDP recv error (errno=Interrupted system call)
> CAS: Client accept error was "Interrupted system call"
> eAS: Client accept error was "Interrupted system call"
> CAS: UDP recv error (errno=Interrupted system call)
>
> Thanks in advance!
> David.
>
>
>
>
>


References:
Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP with dxpStandalone_2-10 David Ehle
RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP withdxpStandalone_2-10 Mark Rivers
RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP withdxpStandalone_2-10 David Ehle

Navigate by Date:
Prev: RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP withdxpStandalone_2-10 David Ehle
Next: RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP withdxpStandalone_2-10 Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP withdxpStandalone_2-10 David Ehle
Next: RE: Help Request: Setting up NIXI-1042/NI-MXI-4/DXP-XMAP withdxpStandalone_2-10 Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·