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>
Sent: Thursday, August 25, 2022 11:56 PM
To: Gofron, Kazimierz <kgofron at bnl.gov>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: setInteger64Param
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
On Aug 25, 2022, at 6:42 PM, Gofron, Kazimierz via Tech-talk <tech-talk at aps.anl.gov> wrote:
Hi all,
I am writing an areaDetector driver that reads integer time in multiples of fractions of ns.
ADCore: R3-11
asyn: R4-22
OS: ubuntu 20.04LTE
===============
record(ai, "$(P)$(R)ElapsedTime_RBV"){
field(DTYP, "asynFloat64")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_ELAPSED_TIME")
field(SCAN, "I/O Intr")
}
In the driver the value is set using (hard coded value here):
setInteger64Param(ADTimePixStartTime, 1661466046253);
However, the PV value does not change from 0.
------------
PV is created:
createParam(ADTimePixStartTimeString, asynParamInt64, &ADTimePixStartTime);
==========
The caput changes the value of PV:
kgofron@myHP$ caput TPX3-TEST:cam1:StartTime_RBV 1661466046253
Old : TPX3-TEST:cam1:StartTime_RBV 0
New : TPX3-TEST:cam1:StartTime_RBV 1.66147e+12
=================
Any suggestions would be much appreciated.
Kazimierz
|