I see the problem:
LeyboldTurboPortDriverConfigure(TURBO:1)
drvAsynSerialPortConfigure(PUMP:1, COM1:, 0, 0, 0)
## Load record instances
dbLoadRecords("db/LeyboldTurbo.db", "P=PUMP:1:,PORT=PUMP:1")
You have connected the record to the PUMP:1 port, but you should connect it to the TURBO:1 port. PUMP:1 is the underlying serial port, which does not implement asynFloat64. You need to connect it
to your LeyboldTurboPortDriver port, TURBO:1.
Mark
From: Heesterman, Peter J [mailto:[email protected]]
Sent: Friday, October 31, 2014 12:36 PM
To: Mark Rivers; [email protected]
Subject: RE: devAsynFloat64::initCommon findInterface asynFloat64Type
Hi Mark,
Attached.
Cheers,
Peter.
Please send the complete output when the IOC starts up. Also send the output of the command
asynReport 10
Mark
Hi Mark,
Here is this constructor (unashamedly copied from your TestAsynPortDriver class):
CLeyboldTurboPortDriver::CLeyboldTurboPortDriver(const
char *AsynPortName)
: asynPortDriver(AsynPortName,
1,
/* maxAddr */
NUM_PARAMS,
asynInt8ArrayMask | asynInt32Mask | asynFloat64Mask | asynFloat64ArrayMask | asynEnumMask | asynDrvUserMask,
/* Interface mask */
asynInt8ArrayMask | asynInt32Mask | asynFloat64Mask | asynFloat64ArrayMask | asynEnumMask,
/* Interrupt mask */
0,
/* asynFlags. This driver does not block and it is not multi-device, so flag is 0 */
1,
/* Autoconnect */
0,
/* Default priority */
0)
/* Default stack size*/
Cheers,
Peter.
I suspect that in the constructor for your driver you did not set the asynFloat64Mask bit in the interfaceMask argument to the asynPortDriver constructor. If your driver will do callbacks on the asynFloat64 interface you also need to set
that bit in the interruptMask argument to the asynPortDriver constructor.
Mark
Hi all,
I’m developing a device that needs to read out a floating point value that forms part of a 24-byte structure read from the serial port.
I’m doing this as an AsynPortDriver device.
I get the above error on my record definition, but I’m not sure why.
I’m still new as an EPICS user, so my question is: can you give me some advice as to what I’m missing?
Many thanks,
Peter.