I see the problem:
drvAsynSerialPortConfigure(PUMP:1, COM1:, 0, 0, 0)
## Load record instances
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.
From: Heesterman, Peter J [mailto:Peter.Heesterman@ccfe.ac.uk]
Sent: Friday, October 31, 2014 12:36 PM
To: Mark Rivers; email@example.com
Subject: RE: devAsynFloat64::initCommon findInterface asynFloat64Type
Please send the complete output when the IOC starts up. Also send the output of the command
Here is this constructor (unashamedly copied from your TestAsynPortDriver class):
/* maxAddr */
asynInt8ArrayMask | asynInt32Mask | asynFloat64Mask | asynFloat64ArrayMask | asynEnumMask | asynDrvUserMask,
/* Interface mask */
asynInt8ArrayMask | asynInt32Mask | asynFloat64Mask | asynFloat64ArrayMask | asynEnumMask,
/* Interrupt mask */
/* asynFlags. This driver does not block and it is not multi-device, so flag is 0 */
/* Autoconnect */
/* Default priority */
/* Default stack size*/
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.
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?