Hi,
Lei Ge wrote:
> Hello, everyone,
>
> I made a record support for our special needs. There are 2 arrays in this
> record support, and I wish to read them from host caget. We are using
> base3.13.8.
>
> The definitions for these fields in the dbd file are:
>
> field(BCME,DBF_NOACCESS) {
> prompt("BCM readout for BER")
> extra("char bcme[402] ")
> asl(ASL1)
> special(SPC_DBADDR)
> interest(3)
> }
> field(BCMP,DBF_NOACCESS) {
> prompt("BCM readout for BER")
> extra("char bcmp[402] ")
> asl(ASL1)
> special(SPC_DBADDR)
> interest(3)
> }
>
> But whenever I caget one of these fields, the cvt_dbaddr is called twice. Is
> it normally called twice? What's the possible problem in my codes?
I'm not sure if it is "Normal" or not, but cvt_dbaddr is called twice in
my RFFT/CFFT records, which has more than 4 waveforms in it without any
functional problem.
(You can download source code for them from the link at
http://www-acc.kek.jp/EPICS_Gr/products.html )
>
> static long cvt_dbaddr(paddr)
> struct dbAddr *paddr;
> {
> struct bktRecord *pbkt=(struct bktRecord *)paddr->precord;
> struct bktdset *pdset = (struct bktdset *)(pbkt->dset);
>
> if (bkt_debug>3) {
> printf("cvt_dbaddr\n");
> printf("pbkt bcme, %u, bcmp, %u\n", (long)pbkt->bcme, (long)pbkt-
>> bcmp);
> printf("paddr pfield %u\n", paddr->pfield);
> }
>
> if ( ((long)paddr->pfield)==((long)pbkt->bcme) ) {
> if (bkt_debug>1) printf("cvt_dbaddr for bcme\n");
> (*pdset->read_rfm)(pbkt);
> } else if ( ((long)paddr->pfield)==((long)pbkt->bcmp) ) {
> if (bkt_debug>1) printf("cvt_dbaddr for bcmp\n");
> (*pdset->read_rfm)(pbkt);
> } else printf("cvt_dbaddr, where is it called?\n");
As far as I understand, the functionality of cvt_dbaddr is
to supply information on the requested field.
It may not a good idea to call a fuction to fill a buffer area, I guess.
>
> /* paddr->pfield = (void *)(pbkt->bcme); */
> paddr->no_elements = 402;
> paddr->field_type = DBF_CHAR;
> paddr->field_size = 1;
> paddr->dbr_field_type = DBF_CHAR;
> return(0);
> }
>
> Thank you all,
>
> Ge
Regards,
Noboru
begin:vcard
fn:Noboru Yamamoto
n:Yamamoto;Noboru
email;internet:[email protected]
tel;work:+81-29-864-1171, ext. 5209
tel;fax:+81-29-879-6130
x-mozilla-html:FALSE
version:2.1
end:vcard
- References:
- medm with epics-base 3.14.6+ Emmanuel Mayssat
- Re: medm with epics-base 3.14.6+ Ralph Lange
- cvt_dbaddr called twice Lei Ge
- Navigate by Date:
- Prev:
RE: asyn driver for CMLOG? Allison, Stephanie
- Next:
Re: firewire video on RTEMS-4.6.x-MVME5500 Kate Feng
- 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:
cvt_dbaddr called twice Lei Ge
- Next:
Alternative for National instruments card Heinrich du Toit
- 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
|