Hi
I have an ASYN port.
It registers the DrvUser interface:
I have this function:
asynStatus piDrvUserCreate(void *drvPvt, asynUser *pasynUser,
const char *drvInfo, const char **pptypeName,size_t *psize)
{
PythonPort *myport = (PythonPort*)drvPvt;
if (!myport){
printf("### ERROR - drvPvt = NULL\n");
return asynError;
}
printf("user = %p\n",pasynUser);
printf("drvUser = %p\n",pasynUser->drvUser);
PythonUser *myuser = new PythonUser(myport,drvInfo);
pasynUser->drvUser = myuser;
return asynSuccess;
}
Now my .db file has:
record(longout,"p0")
{
field(DTYP,"asynInt32")
field(OUT,"@asyn(testp) printp")
field(DESC,"burb")
}
dbl IOC command confirms I have only one record!
Yet output on IOC:
user = 0x80ee96c
drvUser = (nil)
Creating Python User options=printp
user = 0x80eeb24
drvUser = (nil)
Creating Python User options=printp
iocInit: All initialization complete
asynReport confirm that there is only 1 portname testp
I don't get it
Why is CreateUser called twice with different asynUser's ??
I've seen this dual-called behaviour of DrvUser before in my other
drivers. This time I would like to figure it out :)
Thanks in advance!
-Heinrich
- Replies:
- RE: ASYN - weird Mark Rivers
- Re: ASYN - weird Andrew Johnson
- Navigate by Date:
- Prev:
CA server problem on caserverio.c Zhichu Chen
- Next:
RE: ASYN - weird Mark Rivers
- 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: CA server problem on caserverio.c Jeff Hill
- Next:
RE: ASYN - weird Mark Rivers
- 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
|