Experimental Physics and Industrial Control System
Hi Peter,
Those reports shows the following:
- The port does have multiDevice:Yes, so it is a multi-device
- asynPortDriver reports that there are 5 parameters lists (0-4), so you have correctly initialized the asynPortDriver base class
- However, asynManager reports "nDevices 1"
asynManager creates devices "on-demand", i.e. when a client tries to communicate with device N, then device N is created if it does not already exist. This suggests to me that your records are only trying to talk to address 0. Can you do the following for the records that should be on devices 1-4?
dbpr "my_record", 10
Mark
________________________________________
From: Heesterman, Peter J [[email protected]]
Sent: Tuesday, December 23, 2014 4:04 AM
To: Mark Rivers
Cc: EPICS Tech-Talk ([email protected])
Subject: RE: getAddress method behaviour
Hi Mark,
I attach 2 reports.
(FYI, I am working with 2 separate IOC apps.
The second being a TCP server that is intended to simulate the I/O behaviour of the pump(s).
I don't currently have access to the 'real' hardware.)
Cheers,
Peter.
-----Original Message-----
From: Mark Rivers [mailto:[email protected]]
Sent: 23 December 2014 02:43
To: Heesterman, Peter J
Cc: EPICS Tech-Talk ([email protected])
Subject: RE: getAddress method behaviour
What does the following show?
asynReport 10 YOUR_PORT_NAME
Mark
________________________________________
From: Heesterman, Peter J [[email protected]]
Sent: Monday, December 22, 2014 9:23 AM
To: Mark Rivers
Cc: EPICS Tech-Talk ([email protected])
Subject: RE: getAddress method behaviour
Hi Mark,
I am passing the former.
BTW, I have configured the IOC with ASYN_MULTIDEVICE, and maxAddr 5.
Cheers,
Peter.
-----Original Message-----
From: Mark Rivers [mailto:[email protected]]
Sent: 22 December 2014 15:21
To: Heesterman, Peter J
Cc: EPICS Tech-Talk ([email protected])
Subject: Re: getAddress method behaviour
I suspect you are passing the wrong pasynUser to getAddres(). Are you passing the one that was passed into writeInt32 or the pasynUserSelf? You should pass the former.
Mark
Sent from my iPhone
On Dec 22, 2014, at 9:12 AM, Heesterman, Peter J <[email protected]<mailto:[email protected]>> wrote:
Hi Mark,
I’m sorry to trouble you.
In my application I am seeking to connect multiple devices (i.e. multiple pumps, in this case).
So, for example, I have record names like:
TURBOSIM:5:WarningTemperature (5 being the last of 5 devices connected).
I had expected asynPortDriver::getAddress to emit the index of the device being addressed (0..4, in this example).
But the only address value I can detect being emitted from the method, is 0 (e.g. when called within readInt32).
I believe it is being invoked with asynUser(s) that are correctly associated with a specific device.
What could I be missing?
Many thanks,
Peter.
- References:
- getAddress method behaviour Heesterman, Peter J
- Re: getAddress method behaviour Mark Rivers
- RE: getAddress method behaviour Heesterman, Peter J
- RE: getAddress method behaviour Mark Rivers
- RE: getAddress method behaviour Heesterman, Peter J
- Navigate by Date:
- Prev:
Re: getAddress method behaviour Pearson, Matthew R.
- Next:
Re: Bug in 3.14 and 3.15: "*.FLNK is a Channel Access Link ..." Andrew Johnson
- 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
- Navigate by Thread:
- Prev:
RE: getAddress method behaviour Heesterman, Peter J
- Next:
Bug in 3.14 and 3.15: "*.FLNK is a Channel Access Link ..." Dirk Zimoch
- 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