EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: devAsynFloat64::initCommon findInterface asynFloat64Type
From: "Heesterman, Peter J" <[email protected]>
To: "Mark Rivers" <[email protected]>, <[email protected]>
Date: Fri, 31 Oct 2014 18:21:12 -0000

Thank you, Mark.

 

I was very unsure about this.

I did my best to copy the logic of your existing file from your test project, but it’s kinda complicated, and I wouldn’t be surprised if I made a mistake.

 

I’ll study this in more detail next week.

 

Cheers,

 

Peter.

 

From: Mark Rivers [mailto:[email protected]]
Sent: 31 October 2014 17:57
To: Heesterman, Peter; [email protected]
Subject: RE: devAsynFloat64::initCommon findInterface asynFloat64Type

 

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.

 

From: Mark Rivers [mailto:[email protected]]
Sent: 31 October 2014 17:22
To: Heesterman, Peter; [email protected]
Subject: RE: devAsynFloat64::initCommon findInterface asynFloat64Type

 

Please send the complete output when the IOC starts up.  Also send the output of the command

 

asynReport 10

 

Mark

 

 

From: Heesterman, Peter J [mailto:[email protected]]
Sent: Friday, October 31, 2014 12:07 PM
To: Mark Rivers; [email protected]
Subject: RE: devAsynFloat64::initCommon findInterface asynFloat64Type

 

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.

 

 

From: Mark Rivers [mailto:[email protected]]
Sent: 31 October 2014 17:04
To: Heesterman, Peter; [email protected]
Subject: RE: devAsynFloat64::initCommon findInterface asynFloat64Type

 

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

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Heesterman, Peter J
Sent: Friday, October 31, 2014 11:57 AM
To: [email protected]
Subject: devAsynFloat64::initCommon findInterface asynFloat64Type

 

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.

 


Replies:
RE: devAsynFloat64::initCommon findInterface asynFloat64Type Heesterman, Peter J
References:
devAsynFloat64::initCommon findInterface asynFloat64Type Heesterman, Peter J
RE: devAsynFloat64::initCommon findInterface asynFloat64Type Mark Rivers
RE: devAsynFloat64::initCommon findInterface asynFloat64Type Heesterman, Peter J
RE: devAsynFloat64::initCommon findInterface asynFloat64Type Mark Rivers
RE: devAsynFloat64::initCommon findInterface asynFloat64Type Heesterman, Peter J
RE: devAsynFloat64::initCommon findInterface asynFloat64Type Mark Rivers

Navigate by Date:
Prev: Re: waveform with single element Andrew Johnson
Next: Re: Interface Labview and EPICS Dale L. Brewe
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: devAsynFloat64::initCommon findInterface asynFloat64Type Mark Rivers
Next: RE: devAsynFloat64::initCommon findInterface asynFloat64Type Heesterman, Peter J
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·