Are you sure that your EPICS base and test application are built properly?
I started with the example app and then added code as you showed:
wenorum@enorum 274> cat exampleApp/Db/dbSubExample.db
record(sub,"$(user):subExample")
{
field(INAM,"mySubInit")
field(SNAM,"mySubProcess")
field(INPA, "$(user):subInc")
field(INPB, "123")
}
record(aSub,"$(user):aSubExample")
{
field(INAM,"myAsubInit")
field(SNAM,"myAsubProcess")
field(FTA,"DOUBLE")
field(NOA,"10")
field(INPA,"$(user):compressExample CPP")
}
record(calc, "$(user):subInc") {
field(SCAN, "1 second")
field(VAL, "0")
field(CALC, "(A+1)")
field(INPA, "$(user):subInc.VAL NPP")
field(FLNK, "$(user):subExample")
}
wenorum@enorum 275> cat exampleApp/src/dbSubExample.c
..........
static long mySubInit(subRecord *precord)
{
if (mySubDebug)
printf("Record %s called mySubInit(%p)\n",
precord->name, (void*) precord);
return 0;
}
static long mySubProcess(subRecord *precord)
{
if (mySubDebug)
printf("Record %s called mySubProcess(%p)\n",
precord->name, (void*) precord);
printf("precord->a %lf\n", precord->a);
printf("precord->b %lf\n", precord->b);
return 0;
}
..........
When I run this I see:
epics> precord->a 1.000000
precord->b 123.000000
precord->a 2.000000
precord->b 123.000000
precord->a 3.000000
precord->b 123.000000
precord->a 4.000000
precord->b 123.000000
Looks right to me.
On Nov 24, 2010, at 6:49 AM, Hinko Kocevar wrote:
> Hi,
>
> I'm poking around the example IOC I've created with:
>
> $ makeBaseApp.pl -t example app1
> $ makeBaseApp.pl -i -t example app1
>
> Example runs fine and records are behaving as expected, but..
>
> I tried to experiment with subRecord, but the mySubProcess routine does not seem to get values on INPx fields if they are not constants. I've added following line to get INPA value inside the C function:
>
> static long mySubProcess(subRecord *precord)
> {
> if (mySubDebug)
> printf("Record %s called mySubProcess(%p)\n",
> precord->name, (void*) precord);
>
> printf("precord->a %lf\n", precord->a);
> printf("precord->b %lf\n", precord->b);
>
> return 0;
> }
>
>
> Example:
>
> record(sub,"$(user):subExample")
> {
> field(INAM,"mySubInit")
> field(SNAM,"mySubProcess")
> field(INPA, "$(user):subInc")
> field(INPB, "123")
> }
>
> record(calc, "$(user):subInc") {
> field(SCAN, "1 second")
> field(VAL, "0")
> field(CALC, "(A+1)")
> field(INPA, "$(user):subInc.VAL NPP")
> }
>
> Output from IOC:
> Record hinkoHost:subcall called mySubProcess(0x9205998)
> precord->a 0.000000
> precord->b 123.000000
> Record hinkoHost:subcall called mySubProcess(0x9205998)
> precord->a 0.000000
> precord->b 123.000000
> Record hinkoHost:subcall called mySubProcess(0x9205998)
> precord->a 0.000000
> precord->b 123.000000
>
>
> At the same time, if I monitor the $(user):subInc:
> camonitor hinkoHost:subInc
> hinkoHost:subInc 2010-11-24 15:45:57.346136 14
> hinkoHost:subInc 2010-11-24 15:45:58.346438 15
> hinkoHost:subInc 2010-11-24 15:45:59.346628 16
>
> What am I missing?
>
> Best regards,
> Hinko
>
> --
> Hinko Kocevar
> Technical support software engineer
> Instrumentation Technologies d.d.
> Velika pot 22, SI-5250 Solkan - Slovenia
> T:+386 5 3352600, F:+386 5 3352601
> mailto: [email protected]
>
> http://www.i-tech.si - When your users demand stability
>
> The information transmitted is intended solely for the addressee and may
> contain confidential and/or privileged information. Any review, retention,
> disclosure or other use by persons other than the intended recipient is
> prohibited. If you received this in error, please notify the sender and
> delete all copies.
--
Eric Norum
[email protected]
- Replies:
- RE: subrecord INPx Hinko Kocevar
- References:
- subrecord INPx Hinko Kocevar
- Navigate by Date:
- Prev:
Re: ca_put_callback once again Andrew Johnson
- Next:
RE: subrecord INPx Hinko Kocevar
- 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: subrecord INPx Hinko Kocevar
- Next:
RE: subrecord INPx Hinko Kocevar
- 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
|