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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: setInteger64Param |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | Torsten Bögershausen <Torsten.Bogershausen at ess.eu>, "Gofron, Kazimierz" <kgofron at bnl.gov> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Fri, 26 Aug 2022 12:51:46 +0000 |
>>I wonder if "ai" record is correct for asyInt64. > Of course not ;-)
Actually the ai record works with asynInt64, and is documented here:
which says this:
Even if it does not do what Kaz wants because of the limited number of bits, it should not giving a 0 value.
Perhaps this problem is this line:
setInteger64Param(ADTimePixStartTime, 1661466046253);
Should that be:
setInteger64Param(ADTimePixStartTime, 1661466046253LL);
i.e. explicitly tell the compiler that is a long long constant.
If that does not work then please send the output of
asynReport 1 driver_name
That will show the values of all parameters in the parameter library, and we can see if it has the correct value there.
Mark
From: Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Sent: Friday, August 26, 2022 7:39 AM To: Gofron, Kazimierz <kgofron at bnl.gov>; Mark Rivers <rivers at cars.uchicago.edu> Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov> Subject: Re: setInteger64Param
Hej Kaz >>I wonder if "ai" record is correct for asyInt64. Of course not ;-)
Please try record(int64in, "$(P)$(R)StartTime_RBV"){ field(DTYP, "asynInt64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_START_TIME") field(SCAN, "I/O Intr") } /Torsten
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of "Gofron, Kazimierz via Tech-talk" <tech-talk at aps.anl.gov>
Hi Mark,
Sorry, I copied a wrong record to the previous email.
The correct record is
record(ai, "$(P)$(R)StartTime_RBV"){ field(DTYP, "asynInt64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_START_TIME") field(SCAN, "I/O Intr") } ---------- setInteger64Param(ADTimePixStartTime, 1661466046253); createParam(ADTimePixStartTimeString, asynParamInt64, &ADTimePixStartTime);
The callParamCallbacks(); was there. I added additional one just after the setInteger64Param()
I wonder if "ai" record is correct for asyInt64.
Kaz
From: Mark Rivers <rivers at cars.uchicago.edu>
I just noticed that you created the parameter with Type asynInt64 but your record has DTYP asynFloat64. That is not correct, and should have produced an error message after iocInit.
You should either use an ai record with DTYP asynInt64 or an int64In record.
Mark
Sent from my iPhone
|