Hi Andrew,
Thanks for the hint, it fixed the problem. I now have yet another one
with the initialization of fields at startup. For instance, for the SIMM
and DBUG fields I have:
menu(ecsMotorSIMM) {
choice(SIM_NONE,"NONE")
choice(SIM_VSM,"VSM")
choice(SIM_FAST,"FAST")
choice(SIM_FULL,"FULL")
}
menu(ecsMotorDBUG) {
choice(DBUG_NONE,"NONE")
choice(DBUG_MIN,"MIN")
choice(DBUG_FULL,"FULL")
choice(DBUG_MAX,"MAX")
}
at the beginning of ecsMotorRecord.dbd. The fields are defined as
follows:
field(SIMM,DBF_MENU) {
prompt("Simulation Mode")
asl(ASL1)
pp(NO)
interest(1)
menu(ecsMotorSIMM)
initial("0")
}
field(DBUG,DBF_MENU) {
prompt("Debug Mode")
asl(ASL1)
pp(NO)
interest(1)
menu(ecsMotorDBUG)
initial("0")
}
Despite the "initial" statements, SIMM and DBUG have big (and invalid)
values after iocInit completes. Any ideas?
Thank you,
Pedro.
Andrew Johnson wrote:
>
> Pedro Gigoux wrote:
> >
> > dbLoadRecords "./data/ecs.db"
> > filename="../dbStaticRun.c" line number=667
> > Missing SizeOffset Routine - No record support?
> > _ecsMotorRecordSizeOffset
> > 0xf4f008 (tShell): memPartFree: invalid block 0x734d in partition
> > 0xbd288.
> > 0xf4f008 (tShell): memPartFree: invalid block 0x14fbc in partition
> > 0xbd288.
> > 0xf4f008 (tShell): memPartFree: invalid block 0x7930 in partition
> > 0xbd288.
> > Cannot set field FLNK to ec:domeMotorFan.VAL ((null))
> > Cannot set field DSTL to ec:domeC.IVAL .PP.NMS ((null))
> > Cannot set field MSGL to ec:domeC.IMSS .NPP.NMS ((null))
> > Cannot set field DBGL to ec:debugM ((null))
> > Cannot set field SIML to ec:simulateL ((null))
> > dbAllocRecord(ecsMotor) record_size =0
> >
> > What's the function of this SizeOffset routine? I don't seem to find a
> > reference to it in the source code of other records.
>
> It gets generated automatically in the .h file that is created from your
> record.dbd file. In the record support routine you have to define and
> then undefine the macro GEN_SIZE_OFFSET around the #include of that .h
> file, for example the following is the relevent part of the aiRecord.c
> file:
>
> #define GEN_SIZE_OFFSET
> #include "aiRecord.h"
> #undef GEN_SIZE_OFFSET
>
> This causes the routine to be built into your record.o file. The other
> errors may be related to not having that routine defined, I'm not sure.
>
> - Andrew
> --
> Perfection is reached, not when there is no longer anything to add,
> but when there is no longer anything to take away.
> - Antoine de Saint-Exupery
- Replies:
- Re: porting record to 3.13.4 (part 2) Marty Kraimer
- References:
- porting record to 3.13.4 Pedro Gigoux
- porting record to 3.13.4 (part 2) Pedro Gigoux
- Re: porting record to 3.13.4 (part 2) Andrew Johnson
- Navigate by Date:
- Prev:
CapFast Windows version special Dr. Chong Lee
- Next:
Re: porting record to 3.13.4 (part 2) Marty Kraimer
- 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: porting record to 3.13.4 (part 2) Andrew Johnson
- Next:
Re: porting record to 3.13.4 (part 2) Marty Kraimer
- 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
|