Zen, I don't know what's wrong, but I do see some things I don't have
in my build. Maybe one of these things is the problem. If not, someone
with a better understanding of the EPICS build may help us out.
My application's RELEASE file doesn't identify my application as a place
to look for stuff. (I.e., I don't have the analog of the line
"HP33120=/afs/slac/g/esa/esalib/app/epics/modules/hp33120".)
Also, I don't have a bunch of xxx_DBD += <external files>
Instead, I have xxx_DBD += iocxxx.dbd
and I have the file iocxxxInclude.dbd, in xxxApp/src, from which iocxxx.dbd
is built, and that file includes stuff like calcSupport.dbd.
Also, whenever I get make doing something I don't understand, I do a
"make clean uninstall" at the top level of my application, and try make
again. There are times when a build that did not complete correctly
leaves things behind that prevent the next try from succeeding.
Tim Mooney ([email protected]) (630)252-5417
Beamline Controls & Data Acquisition Group
Advanced Photon Source, Argonne National Lab.
Szalata, Zenon M. wrote:
Hi Tim,
I had no trouble installing calc module (standalone). I proceded to make the following modifications in my application files:
- in configure/RELEASE:
...
# EPICS_BASE usually appears last so other apps can override stuff:
CALC=/afs/slac/g/esa/easlib/app/epics/support/calc/2-6-3
HP33120=/afs/slac/g/esa/esalib/app/epics/modules/hp33120
ASYN=/afs/slac/g/esa/esalib/app/epics/support/asyn/4-8
EPICS_BASE=/afs/slac/g/esa/esalib/app1/epics/R3.14.9/base
- in hp33120/src/Makefile:
...
PROD_IOC = hp33120
DBD += hp33120.dbd
# hp33120.dbd will be made up from these files:
hp33120_DBD += base.dbd
#include definitions for any other support applications needed
hp33120_DBD += devhp33120.dbd
hp33120_DBD += drvVxi11.dbd
hp33120_DBD += calcSupport.dbd
...
#add a definition for each support application used by this application
hp33120_LIBS += devhp33120
hp33120_LIBS += asyn
hp33120_LIBS += calc
...
- when I make my application I get an error:
...
gmake -C src install
gmake[2]: Entering directory `/afs/slac.stanford.edu/g/esa/esalib/app/epics/hp33
120/hp33120App/src'
gmake -C O.linux-x86 -f ../Makefile TOP=../../.. T_A=linux-x86 install
gmake[3]: Entering directory `/afs/slac.stanford.edu/g/esa/esalib/app/epics/hp33
120/hp33120App/src/O.linux-x86'
gmake[3]: Leaving directory `/afs/slac.stanford.edu/g/esa/esalib/app/epics/hp331
20/hp33120App/src/O.linux-x86'
gmake[3]: Entering directory `/afs/slac.stanford.edu/g/esa/esalib/app/epics/hp33
120/hp33120App/src/O.linux-x86'
gmake[3]: *** No rule to make target `../../../lib/linux-x86//libcalc.a', needed
by `hp33120'. Stop.
gmake[3]: Leaving directory `/afs/slac.stanford.edu/g/esa/esalib/app/epics/hp331
20/hp33120App/src/O.linux-x86'
gmake[2]: *** [install.linux-x86] Error 2
gmake[2]: Leaving directory `/afs/slac.stanford.edu/g/esa/esalib/app/epics/hp331
20/hp33120App/src'
gmake[1]: *** [src.install] Error 2
gmake[1]: Leaving directory `/afs/slac.stanford.edu/g/esa/esalib/app/epics/hp331
20/hp33120App'
gmake: *** [hp33120App.install] Error 2
It is looking for the libcalc library in my application area. Libcalc is in
/afs/slac/g/esa/esalib/app/epics/support/calc/2-6-3/bin/linux-x86. What am I missing?
Thanks a lot for your help,
Zen
-----Original Message-----
From: Tim Mooney [mailto:[email protected]]
Sent: Monday, September 24, 2007 9:56 PM
To: Szalata, Zenon M.
Cc: Robert Horrox; EPICS tech-talk
Subject: Re: Learning EDM
The scalcout record is not part of base. It's in the calc module.
I think the link Robert gave has been overtaken by events.
See http://www.aps.anl.gov/aod/bcda/synApps/calc/calc.html.
To use the record, you will need to build the calc module, define the path to it, link it into your application, and include it in your .dbd file.
In your application, which I'll call 'xxx':
1) xxx/configule/RELEASE must contain
CALC=<absolute path to the calc module>
2) xxx/xxxApp/src/Makefile must contain
xxx_LIBS += calc
3) xxx/xxxApp/src/iocxxxInclude.dbd must contain include "calcSupport.dbd"
Unfortunately, the calc module also depends on the sscan module and the genSub module, though neither of these are needed for the scalcout record. You can either build these modules, or modify the calc module to remove the dependencies, as follows:
4) comment out lines containing the strings "SSCAN" and "GENSUB" from calc/configure/RELEASE,
and
5) comment out lines containing the strings "sscan", "genSub", "interp", "swait", and "arrayTest", from calc/calcApp/src/calcSupport.dbd and from calc/calcApp/src/Makefile (except for one line: in Makefile, change "calcApp_LIBS += calc sscan genSub" to "calcApp_LIBS += calc", instead of commenting the whole line out)
I guess I should split some modules up, so there aren't so many dependencies among them, but then we'd have a lot more modules to contend with. Maybe that wouldn't actually be better. Comments, advice, anyone?
--
Tim Mooney ([email protected]) (630)252-5417 Beamline Controls & Data Acquisition Group Advanced Photon Source, Argonne National Lab.
Szalata, Zenon M. wrote:
I assume that scalcout is defined in EPICS and yet I cannot find that definition. I have R3.14.9 installed. I see in base/dbd/calcoutRecord.dbd, which does not have the string inputs and operations. What am I missing? Thanks for your help.
Zen
-----Original Message-----
From: Robert Horrox [mailto:[email protected]]
Sent: Monday, September 24, 2007 2:07 PM
To: Szalata, Zenon M.
Cc: EPICS tech-talk
Subject: Re: Learning EDM
I'm not sure if there is a better way to do this so if anyone else has better way please mention it.
In order to get a newline character into the message box you need to send that character to it in epics. I achieve this with a database that writes a string to the PV the Msg Box is monitoring to, then waits a set amount of time, then writes a newline character to the PV the Msg Box is monitoring.
The other possibility is since you don't seem to need all 40 characters(38 are visible) you can just add the newline character to the values before you write them to the PV the Msg Box is monitoring.
The way to add an newline character to the PV would be a scalcout record.
I'm not sure on how you would take the input float and convert it to a string with scalcout but the documentation should help with that. Here is an example from my code on how to add the character, edited for clarity.
record(scalcout, "AddNewline") {
field(CALC, "AA + '\n'")
field(OUT, "MonitoredPV.VAL PP")
field(INAA, "InputString")
field(SCAN, "Passive")
}
That record will write the input string plus a newline character.
I hope this helps.
Documentation for scalcout:
http://www.aps.anl.gov/aod/bcda/synApps/calc/R2-6-3/sCalcoutRecord.html
----------------------------------------------------------------
Robert Horrox
University of Washington Medical Center
Department of Radiation Oncology
On Mon, 24 Sep 2007, Szalata, Zenon M. wrote:
I am learning how to use EDM. I have created a message box monitor and connected it to a PV of type double. The soft IOC updates the PV value avery few seconds. A typical value is 9.1990930. In the message box I see 99999999... Where another 9 is appended to the first line each time the PV updates. In the message box properties there is nothing that controls formatting displayed values, nor is there a way to add a newline after each update. Are these somehow controlled via the IOC record setup? What do I need to do to have each full floating point value appear on a separate line? The same string of 9's appears in the log file.
Also, how can I force a "Passive" record processing in the IOC from edm?
Thanks,
Zen
- Replies:
- RE: Learning EDM Szalata, Zenon M.
- References:
- RE: Learning EDM Szalata, Zenon M.
- Re: Learning EDM Tim Mooney
- RE: Learning EDM Szalata, Zenon M.
- Navigate by Date:
- Prev:
RE: Learning EDM Szalata, Zenon M.
- Next:
RE: Learning EDM Szalata, Zenon M.
- 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
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: Learning EDM Szalata, Zenon M.
- Next:
RE: Learning EDM Szalata, Zenon M.
- 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
2020
2021
2022
2023
2024
|