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