Thanks Keenan, that must be my bug then!
- Andrew
On 12/18/2017 04:29 PM, Lang, Keenan C. wrote:
> Looked into it. The missing output wasn't being provided by the ioc
> shell, but rather the epicsReadline functions. This can be seen by
> compiling EPICS base 7.0.1.1 with the osd/os/default/epicsReadline.c/h
> from base 3.15.5. Some other parts of how things are displayed will be
> messed up, but the echo'd commands will all be there.
>
>
> Keenan
>
> ------------------------------------------------------------------------
> *From:* Johnson, Andrew N.
> *Sent:* Monday, December 18, 2017 10:20:11 AM
> *To:* Lang, Keenan C.
> *Cc:* EPICS core-talk
> *Subject:* Fwd: Problem with iocsh output in 7.0.1?
>
> Hi Keenan,
>
> I believe you were the last person to work on the iocsh scripting code
> in Base, could you check whether your changes broke Mark's use case and
> let us know what you discover please?
>
> Thanks,
>
> - Andrew
>
>
> -------- Forwarded Message --------
> Subject: Problem with iocsh output in 7.0.1?
> Date: Fri, 15 Dec 2017 23:20:39 +0000
> From: Mark Rivers <[email protected]>
> To: 'Andrew Johnson' <[email protected]>, EPICS core-talk
> <[email protected]>
>
>
>
> I have a vxWorks IOC startup script that mostly uses the VxWorks shell,
> but switches to the iocsh shell for some commands. In 3.15.5 this works
> fine, and I see the following:
>
>
>
> *****************************************
>
> value = 0 = 0x0
>
> <SIS3820.cmd
>
> # Example vxWorks startup file for SIS3820
>
>
>
> iocsh
>
> epics>
>
> epics> epicsEnvSet("PREFIX", "13LAB:SIS3820:")
>
> epics> epicsEnvSet("RNAME", "mca")
>
> epics> epicsEnvSet("MAX_SIGNALS", "2")
>
> epics> epicsEnvSet("MAX_CHANS", "10000")
>
> epics> epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", "500000")
>
> epics> epicsEnvSet("PORT", "SIS3820/1")
>
> epics> # For MCA records FIELD=READ, for waveform records FIELD=PROC
>
> epics> epicsEnvSet("FIELD", "PROC")
>
> epics>
>
> epics> #drvSIS3820Config("Port name",
>
> epics> # baseAddress,
>
> epics> # interruptVector,
>
> epics> # int interruptLevel,
>
> epics> # channels,
>
> epics> # signals,
>
> epics> # use DMA
>
> epics> # fifoBufferWords)
>
> epics> drvSIS3820Config($(PORT), 0xA8000000, 224, 6, $(MAX_CHANS),
> $(MAX_SIGNALS), 1, 0x20000)
>
> epics>
>
> epics> # This loads the scaler record and supporting records
>
> epics> dbLoadRecords("$(STD)/stdApp/Db/scaler32.db", "P=13LAB:,
> S=scaler3, DTYP=Asyn Scaler, OUT=@asyn($(PORT)), FREQ=50000000")
>
> epics>
>
> epics> # This database provides the support for the MCS functions
>
> epics> dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX.template", "P=$(PREFIX),
> PORT=$(PORT), SCALER=13LAB:scaler3")
>
> epics>
>
> epics> # Load either MCA or waveform records below
>
> epics> # The number of records loaded must be the same as MAX_SIGNALS
> defined above
>
> epics>
>
> epics> # Load the MCA records
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)1, DTYP=asynMCA, INP=@asyn($(PORT) 0), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)2, DTYP=asynMCA, INP=@asyn($(PORT) 1), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)3, DTYP=asynMCA, INP=@asyn($(PORT) 2), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)4, DTYP=asynMCA, INP=@asyn($(PORT) 3), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)5, DTYP=asynMCA, INP=@asyn($(PORT) 4), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)6, DTYP=asynMCA, INP=@asyn($(PORT) 5), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)7, DTYP=asynMCA, INP=@asyn($(PORT) 6), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)8, DTYP=asynMCA, INP=@asyn($(PORT) 7), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)9, DTYP=asynMCA, INP=@asyn($(PORT) 8), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)10, DTYP=asynMCA, INP=@asyn($(PORT) 9), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)11, DTYP=asynMCA, INP=@asyn($(PORT) 10), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)12, DTYP=asynMCA, INP=@asyn($(PORT) 11), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)13, DTYP=asynMCA, INP=@asyn($(PORT) 12), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)14, DTYP=asynMCA, INP=@asyn($(PORT) 13), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)15, DTYP=asynMCA, INP=@asyn($(PORT) 14), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)16, DTYP=asynMCA, INP=@asyn($(PORT) 15), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)17, DTYP=asynMCA, INP=@asyn($(PORT) 16), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)18, DTYP=asynMCA, INP=@asyn($(PORT) 17), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)19, DTYP=asynMCA, INP=@asyn($(PORT) 18), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)20, DTYP=asynMCA, INP=@asyn($(PORT) 19), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)21, DTYP=asynMCA, INP=@asyn($(PORT) 20), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)22, DTYP=asynMCA, INP=@asyn($(PORT) 21), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)23, DTYP=asynMCA, INP=@asyn($(PORT) 22), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)24, DTYP=asynMCA, INP=@asyn($(PORT) 23), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)25, DTYP=asynMCA, INP=@asyn($(PORT) 24), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)26, DTYP=asynMCA, INP=@asyn($(PORT) 25), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)27, DTYP=asynMCA, INP=@asyn($(PORT) 26), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)28, DTYP=asynMCA, INP=@asyn($(PORT) 27), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)29, DTYP=asynMCA, INP=@asyn($(PORT) 28), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)30, DTYP=asynMCA, INP=@asyn($(PORT) 29), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)31, DTYP=asynMCA, INP=@asyn($(PORT) 30), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db", "P=$(PREFIX),
> M=$(RNAME)32, DTYP=asynMCA, INP=@asyn($(PORT) 31), PREC=3,
> CHANS=$(MAX_CHANS)")
>
> epics>
>
> epics> # This loads the waveform records
>
> epics> dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)1, INP=@asyn($(PORT) 0), CHANS=$(MAX_CHANS)")
>
> epics> dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)2, INP=@asyn($(PORT) 1), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)3, INP=@asyn($(PORT) 2), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)4, INP=@asyn($(PORT) 3), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)5, INP=@asyn($(PORT) 4), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)6, INP=@asyn($(PORT) 5), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)7, INP=@asyn($(PORT) 6), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)8, INP=@asyn($(PORT) 7), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)9, INP=@asyn($(PORT) 8), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)10, INP=@asyn($(PORT) 9), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)11, INP=@asyn($(PORT) 10), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)12, INP=@asyn($(PORT) 11), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)13, INP=@asyn($(PORT) 12), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)14, INP=@asyn($(PORT) 13), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)15, INP=@asyn($(PORT) 14), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)16, INP=@asyn($(PORT) 15), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)17, INP=@asyn($(PORT) 16), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)18, INP=@asyn($(PORT) 17), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)19, INP=@asyn($(PORT) 18), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)20, INP=@asyn($(PORT) 19), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)21, INP=@asyn($(PORT) 20), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)22, INP=@asyn($(PORT) 21), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)23, INP=@asyn($(PORT) 22), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)24, INP=@asyn($(PORT) 23), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)25, INP=@asyn($(PORT) 24), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)26, INP=@asyn($(PORT) 25), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)27, INP=@asyn($(PORT) 26), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)28, INP=@asyn($(PORT) 27), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)29, INP=@asyn($(PORT) 28), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)30, INP=@asyn($(PORT) 20), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)31, INP=@asyn($(PORT) 30), CHANS=$(MAX_CHANS)")
>
> epics> #dbLoadRecords("$(MCA)/mcaApp/Db/SIS38XX_waveform.template",
> "P=$(PREFIX), R=$(RNAME)32, INP=@asyn($(PORT) 31), CHANS=$(MAX_CHANS)")
>
> epics>
>
> epics> asynSetTraceIOMask($(PORT),0,2)
>
> epics> #asynSetTraceMask("$(PORT)",0,0xff)
>
> epics>
>
> epics> # Exit iocsh
>
> epics> exit
>
> value = 0 = 0x0
>
> *****************************************
>
>
>
>
>
> However, when I boot the same IOC in 7.0.1 I see this:
>
>
>
> *****************************************
>
> value = 0 = 0x0
>
> <SIS3820.cmd
>
> # Example vxWorks startup file for SIS3820
>
>
>
> iocsh
>
> epics> epics> epics> epics> epics> epics> epics> epics> epics> epics>
> epics> epics> epics> epics> epics> epics> epics> epics> epics> epics>
> epics> epics> epics> epic s> epics> epics> epics>
> epics> epics> epics> epics> epics> epics> epics> epics> epics> epics>
> epics> epics> epics> epics> epics> epics> epics> epics> epics> epics>
> e pics> epics> epics> epics> epics> epics> epics>
> epics> epics> epics> epics> epics> epics> epics> epics> epics> epics>
> epics> epics> epics> epics> epics> epics> epics >
> epics> epics> epics> epics> epics> epics> epics> epics> epics> epics>
> epics> epics> epics> epics> epics> epics> epics> epics> epics> epics>
> epics> epics> epics> ep ics> epics> epics> epics>
> epics> epics> epics> epics> value = 0 = 0x0
>
> *****************************************
>
>
>
> So the iocsh commands are not echoed, I only see the epics> prompt, not
> the command that is being executed. This seems like an undesirable
> change in behavior?
>
>
>
> Thanks,
>
> Mark
>
>
>
>
>
>
>
--
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon
- References:
- Problem with iocsh output in 7.0.1? Mark Rivers
- Fwd: Problem with iocsh output in 7.0.1? Andrew Johnson
- Re: Problem with iocsh output in 7.0.1? Lang, Keenan C.
- Navigate by Date:
- Prev:
Re: Question about Busy Record and ASYN Slepicka, Hugo Henrique
- Next:
Build failed in Jenkins: EPICS-3.14 #26 PSI Jenkins
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Problem with iocsh output in 7.0.1? Lang, Keenan C.
- Next:
PSI Jenkins Dirk Zimoch
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
|