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  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Areadetector error in version R3-8
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: Sandeep Kumar Malu - UKRI STFC <sandeep-kumar.malu at stfc.ac.uk>
Cc: tech-talk <tech-talk at aps.anl.gov>
Date: Mon, 24 Feb 2020 13:57:02 +0000
Hi Sandeep,


I was able to reproduce your problem.


It does not happen when I use the asyn/iocBoot/iocTestAsynPortDriver test IOC.


I changed the st.cmd to use the environment variable PORT and set it to what you are using Y-CAM:CAM.


******************************

corvette:asyn/iocBoot/ioctestAsynPortDriver>more st.cmd
dbLoadDatabase("../../dbd/testAsynPortDriver.dbd")
testAsynPortDriver_registerRecordDeviceDriver(pdbbase)

epicsEnvSet("PORT", "Y-CAM:CAM")

# Turn on asynTraceFlow and asynTraceError for global trace, i.e. no connected asynUser.
#asynSetTraceMask("", 0, 17)

testAsynPortDriverConfigure("$(PORT)", 1000)

dbLoadRecords("../../db/testAsynPortDriver.db","P=testAPD:,R=scope1:,PORT=$(PORT),ADDR=0,TIMEOUT=1,NPOINTS=1000")
dbLoadRecords("../../db/asynRecord.db","P=testAPD:,R=asyn1,PORT=$(PORT),ADDR=0,OMAX=80,IMAX=80")
#asynSetTraceMask("$(PORT)",0,0xff)
asynSetTraceIOMask("$(PORT)",0,0x2)
iocInit()

******************************


It worked fine:


******************************

corvette:asyn/iocBoot/ioctestAsynPortDriver>../../bin/linux-x86_64/testAsynPortDriver st.cmd
dbLoadDatabase("../../dbd/testAsynPortDriver.dbd")
testAsynPortDriver_registerRecordDeviceDriver(pdbbase)
epicsEnvSet("PORT", "Y-CAM:CAM")
# Turn on asynTraceFlow and asynTraceError for global trace, i.e. no connected asynUser.
#asynSetTraceMask("", 0, 17)
testAsynPortDriverConfigure("Y-CAM:CAM", 1000)
dbLoadRecords("../../db/testAsynPortDriver.db","P=testAPD:,R=scope1:,PORT=Y-CAM:CAM,ADDR=0,TIMEOUT=1,NPOINTS=1000")
dbLoadRecords("../../db/asynRecord.db","P=testAPD:,R=asyn1,PORT=Y-CAM:CAM,ADDR=0,OMAX=80,IMAX=80")
#asynSetTraceMask("$(PORT)",0,0xff)
asynSetTraceIOMask("Y-CAM:CAM",0,0x2)
iocInit()
Starting iocInit
############################################################################
## EPICS R7.0.3.1
## EPICS Base built Nov  2 2019
############################################################################
cas warning: Configured TCP port was unavailable.
cas warning: Using dynamically assigned TCP port 37076,
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>
epics> asynReport
Y-CAM:CAM multiDevice:No canBlock:No autoConnect:Yes
Port: Y-CAM:CAM

******************************

However, I then tested with the areaDetector/ADSimDetector IOC.

I made this change in st_base.cmd:

 # The port name for the detector
-epicsEnvSet("PORT",   "SIM1")
+epicsEnvSet("PORT",   "Y-CAM:CAM")

When I boot the IOC on linux-x86_64 I get the same error as you:

dbLoadRecords("/home/epics/devel/areaDetector-3-9/ADSimDetector/iocs/simDetectorIOC/../../db/simDetector.template","P=13SIM1:,R=cam1:,PORT=Y-CAM:CAM,ADDR=0,TIMEOUT=1")
Error: syntax error
 at or before ":CAM" in path "/corvette/home/epics/devel/areaDetector-3-9/ADCore/db"  file "ADBase.template" line 660
 in file "/home/epics/devel/areaDetector-3-9/ADSimDetector/iocs/simDetectorIOC/../../db/simDetector.template" line 7
dbReadCOM: Parser stack dirty w/o error. 1

This appears to me to be a bug in base 7.0.3.1.

This shows line 660 in ADBase.template:

   653  ###################################################################
   654  #  The asynRecord is used for mainly for trace mask               #
   655  ###################################################################
   656
   657  # Set ASYN_TRACEIO_HEX bit by default
   658  record(asyn,"$(P)$(R)AsynIO")
   659  {
   660      field(PORT, $(PORT))
   661      field(TIB2,"1")
   662      info("ADType", "ADDriver")
   663  }

So the error is coming when loading the asyn record.  All of the other records load OK with that PORT name containing a ":".

In the asyn/iocBoot/iocTestAsynPortDriver test it also loads an asyn record with the same port name on this line.

dbLoadRecords("../../db/asynRecord.db","P=testAPD:,R=asyn1,PORT=Y-CAM:CAM,ADDR=0,OMAX=80,IMAX=80")

That worked, but loading a similar asyn record in simDetector fails.

This is strange.

Mark








________________________________
From: Sandeep Kumar Malu - UKRI STFC <sandeep-kumar.malu at stfc.ac.uk>
Sent: Monday, February 24, 2020 6:54 AM
To: Mark Rivers
Cc: tech-talk
Subject: RE: Areadetector error in version R3-8

Hi Mark

Yes, Indeed all the support modules were build separately for base 3.15 & base 7.0.3. The error is when I use colon(:) in the macro name PORT in ADBase template for ex -  dbLoadRecords("ADBase.template","P=Y-CAM:,R=cam1:,PORT=Y-CAM:CAM,ADDR= 0,TIMEOUT=1"). Here I used Y-CAM:CAM. But If I use Y-CAMCAM in PORT macro the error is resolved.

Any suggestions on that?

Many Thanks
Sandeep

-----Original Message-----
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Monday, February 24, 2020 12:30 PM
To: Malu, Sandeep Kumar (-,RAL,CLF) <sandeep-kumar.malu at stfc.ac.uk>
Cc: tech-talk <tech-talk at aps.anl.gov>
Subject: Re: Areadetector error in version R3-8

Hi Sandeep,


> The error is because I was using camera IOC created on Base 3.15.

> However, when a fresh IOC is created on base 7.0.3, there is no such error.

>  I am still digging out why IOC created on base 3.15 is giving "asyn" record syntax error on compiling on base 7.03?


I don't understand what you mean by the last statement above.  How can an IOC be created on base 3.15 and compiled on base 7.0.3?  When you replace your version of base you need to rebuild everything, i.e. asyn, all of the required synApps modules, and areaDetector.  At that point there should be no difference between a "fresh IOC created on base 7.0.3" and an IOC that was originally built on 3.15.


Please explain what you mean.


Mark



________________________________
From: Sandeep Kumar Malu - UKRI STFC <sandeep-kumar.malu at stfc.ac.uk>
Sent: Sunday, February 23, 2020 10:22 PM
To: Mark Rivers
Cc: tech-talk
Subject: RE: Areadetector error in version R3-8

Hi mark

The error is because I was using camera IOC created on Base 3.15. However, when a fresh IOC is created on base 7.0.3, there is no such error. I am still digging out why IOC created on base 3.15 is giving "asyn" record syntax error on compiling on base 7.03?

Thanks
Sandeep

-----Original Message-----
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Saturday, February 22, 2020 12:33 PM
To: Malu, Sandeep Kumar (-,RAL,CLF) <sandeep-kumar.malu at stfc.ac.uk>
Cc: tech-talk <tech-talk at aps.anl.gov>
Subject: Re: Areadetector error in version R3-8

Hi Sandeep,


The error you are getting is one I have never seen before.


> dbLoadRecords("ADBase.template","P=Y-CAM:,R=cam1:,PORT=Y-CAM:CAM,ADDR=
> 0,TIMEOUT=1")
> Error: syntax error
> at or before ":CAM" in path
> "/usr/local/epics/support/areaDetector/current/ADCore/db"  file
> "ADBase.template" line 660
> dbReadCOM: Parser stack dirty w/o error. 1


It seems like something is wrong on your end.  I know of a number of sites are running with 7.0.3.1 and ADCore R3-8 or master branch and are not seeing this problem.


What is your EPICS_HOST_ARCH?

I wonder if there is some problem with line endings on startup script or template files.  Can you run dos2linux on your startup script and any template files you have edited to try to remove any DOS line endings?

Mark



________________________________
From: Sandeep Kumar Malu - UKRI STFC <sandeep-kumar.malu at stfc.ac.uk>
Sent: Saturday, February 22, 2020 2:55 AM
To: Mark Rivers
Cc: tech-talk
Subject: RE: Areadetector error in version R3-8

Hi Mark

You were right, I was on master branch in ADCore but then I checkout to R3-8 and error still remain same though the error line now in 656.
I also compiled with base 7.0.3, Asyn 4-38 & areadetector 3-8. The error again remains the same.

Thanks
Sandeep

-----Original Message-----
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, February 21, 2020 2:07 PM
To: Malu, Sandeep Kumar (-,RAL,CLF) <sandeep-kumar.malu at stfc.ac.uk>
Cc: tech-talk <tech-talk at aps.anl.gov>
Subject: RE: Areadetector error in version R3-8

> Also FYI, for me line no 660 points to field(PORT, $(PORT)) in
> ADBase.template file

If that is true then you are not using ADCore R3-8, which you said you were in your original message.

Here is the proof:

corvette:ADCore/ADApp/Db>git checkout R3-8 ADBase.template corvette:ADCore/ADApp/Db>cat -n ADBase.template
     1  #=================================================================#
     2  # Template file: ADBase.template
     3  # Database for area detector control using asyn driver and standard asyn device support
     4  # Mark Rivers
     5  # March 9, 2008
     6
...
   649  ###################################################################
   650  #  The asynRecord is used for mainly for trace mask               #
   651  ###################################################################
   652
   653  # Set ASYN_TRACEIO_HEX bit by default
   654  record(asyn,"$(P)$(R)AsynIO")
   655  {
   656      field(PORT, $(PORT))
   657      field(TIB2,"1")
   658      info("ADType", "ADDriver")
   659  }
   660

So in R3-8 line 660 is blank.

However, if I checkout the master branch of ADBase.template I see this:

   653  ###################################################################
   654  #  The asynRecord is used for mainly for trace mask               #
   655  ###################################################################
   656
   657  # Set ASYN_TRACEIO_HEX bit by default
   658  record(asyn,"$(P)$(R)AsynIO")
   659  {
   660      field(PORT, $(PORT))
   661      field(TIB2,"1")
   662      info("ADType", "ADDriver")
   663  }
   664

So I think you may be running the master branch of ADCore.

I am running the master branch and I don't see your error.

It will be interesting to see if the problem goes away if you run base 7.0.3.1.

Mark


-----Original Message-----
From: Sandeep Kumar Malu - UKRI STFC <sandeep-kumar.malu at stfc.ac.uk>
Sent: Friday, February 21, 2020 7:40 AM
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: tech-talk <tech-talk at aps.anl.gov>
Subject: Re: Areadetector error in version R3-8

Hi Mark

I used base 3.15 for areadetector 3-5 and asyn 4-33. Meanwhile I'll check with base 7.0.3

Also FYI, for me line no 660 points to field(PORT, $(PORT)) in ADBase.template file

Thanks
Sandeep

Get Outlook for Android<https://aka.ms/ghei36>

________________________________
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, 21 February 2020, 6:36 pm
To: Sandeep Kumar Malu - UKRI STFC
Cc: tech-talk
Subject: Re: Areadetector error in version R3-8

Hi Sandeep, > The error I get on loading ADBase template is - > dbLoadRecords("ADBase.template","P=Y-CAM:,R=cam1:,PORT=Y-CAM:CAM,ADDR=0,TIMEOUT=1") > Error: syntax error > at or before ":CAM" in path "/usr/local/epics/support/areaDetector/current/ADCore/db" file "ADBase.template" line 660 > dbReadCOM: Parser stack dirty w/o error. 1 > Also please note, there is no such error in Areadetector version R3-5 with asyn version 4-33. The reason for upgrade is to use ADVimba plugin instead of ADProsilica plugin. That is a strange error. Line 660 is a blank line at the end of ADBase.template. I am using asyn R4-38 and areaDetector R3-8 with no problems, and I think many others are as well. I notice that you are using base 7.0.2.2. I am using base 7.0.3.1. You said that you did not see the problem with areaDetector R3-5 and asyn R4-33. What version of base were you using with those versions of areaDetector and asyn? I would suggest updating base to 7.0.3.1 and see if the problem persists. Mark ________________________________ From: Tech-talk on behalf of Sandeep Kumar Malu - UKRI STFC via Tech-talk Sent: Friday, February 21, 2020 6:11 AM To: tech-talk at aps.anl.gov Subject: Areadetector error in version R3-8 Hi I recently upgrade EPICS base & support modules to latest versions which are as follows base - 7.0.2.2 seq - 2.2.6 asyn - 4-38 autosave - 5-9 astream - 2-6 busy -1-6 sscan - 2-10 areaDetector - 3-8 The error I get on loading ADBase template is - dbLoadRecords("ADBase.template","P=Y-CAM:,R=cam1:,PORT=Y-CAM:CAM,ADDR=0,TIMEOUT=1") Error: syntax error at or before ":CAM" in path "/usr/local/epics/support/areaDetector/current/ADCore/db" file "ADBase.template" line 660 dbReadCOM: Parser stack dirty w/o error. 1 Though If I comment these line in ADBase template, I can stream camera without any error # Set ASYN_TRACEIO_HEX bit by default record(asyn,"$(P)$(R)AsynIO") { field(PORT, $(PORT)) field(TIB2,"1") info("ADType", "ADDriver") } Also please note, there is no such error in Areadetector version R3-5 with asyn version 4-33. The reason for upgrade is to use ADVimba plugin instead of ADProsilica plugin. Many Thanks Sandeep Malu

Replies:
RE: Areadetector error in version R3-8 Mark Rivers via Tech-talk
References:
Re: Areadetector error in version R3-8 Sandeep Kumar Malu - UKRI STFC via Tech-talk
RE: Areadetector error in version R3-8 Mark Rivers via Tech-talk
RE: Areadetector error in version R3-8 Sandeep Kumar Malu - UKRI STFC via Tech-talk
Re: Areadetector error in version R3-8 Mark Rivers via Tech-talk
RE: Areadetector error in version R3-8 Sandeep Kumar Malu - UKRI STFC via Tech-talk
Re: Areadetector error in version R3-8 Mark Rivers via Tech-talk
RE: Areadetector error in version R3-8 Sandeep Kumar Malu - UKRI STFC via Tech-talk

Navigate by Date:
Prev: Re: firewalld configuration for EPICS? Jörn Dreyer via Tech-talk
Next: RE: Areadetector error in version R3-8 Mark Rivers via Tech-talk
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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Areadetector error in version R3-8 Sandeep Kumar Malu - UKRI STFC via Tech-talk
Next: RE: Areadetector error in version R3-8 Mark Rivers via Tech-talk
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  <20202021  2022  2023  2024 
ANJ, 24 Feb 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·