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  <20132014  2015  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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: asynInt32 pass 2 value
From: Mark Rivers <[email protected]>
To: Vikram Bhagat <[email protected]>, "[email protected]" <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 14 Mar 2013 12:02:12 +0000
I don't understand how it make the user level simpler to write both at once.  The user needs to enter 2 values, and they can't do this "simultaneously", they need to do one and then the other.  But when they enter the first one you don't want the power supply to change, you only want something to happen after they have entered both values.  How do you envision doing this?

You can do this in the driver by simply caching the value of V, and only changing the power supply when I is written.  But users would need to be trained that only writing I changes it, and they need to change V first.  Having a separate "Apply" button is how many GUI applications work: you fill out a form with several values and then hit Apply.

Mark

________________________________
From: [email protected] [[email protected]] on behalf of Vikram Bhagat [[email protected]]
Sent: Thursday, March 14, 2013 4:30 AM
To: [email protected]; [email protected]
Subject: Re: asynInt32 pass 2 value

Thanks Ian,
   ok,  i think you mean to say use 2  PV for V & I which sets a globle variable and use 1 "bo"  PV which takes the value of these 2 pv and sets the hardware accordingly.


But directly not possible?   which make user level simpler.

Thanks

________________________________
From: "[email protected]" <[email protected]>
To: [email protected]; [email protected]
Sent: Thursday, March 14, 2013 10:04 AM
Subject: RE: asynInt32 pass 2 value

You could set V and I using separate records (as Mark suggests), but to simply write the setpoints to the asyn driver (not immediately to the device). Once they are both established in the asyn driver, write to another record (‘bo’) to instruct the asyn driver to send both setpoint values to the hardware.

Regards,
Ian

From: [email protected] [mailto:[email protected]] On Behalf Of Vikram Bhagat
Sent: 14 March 2013 08:31
To: Mark Rivers; [email protected]
Subject: Re: asynInt32 pass 2 value


Yes, you are right. But slightly different. User have to set the V & I. EPICS device support takes these values and need to pass both value to linux driver to set power.
Linux driver takes 2 value so we have to set both value we cant set single value.

as you suggest way to take 2 PVs how i can combine both in the asyn driver ? if by some way it is possible in asyn driver can combine it then my problem solve.


Thanks  Mark


________________________________
From: Mark Rivers <[email protected]<mailto:[email protected]>>
To: 'Vbhagat' <[email protected]<mailto:[email protected]>>; "[email protected] <mailto:[email protected]%20> " <[email protected]<mailto:[email protected]>>
Sent: Wednesday, March 13, 2013 9:35 PM
Subject: RE: asynInt32 pass 2 value

What I am asking is what are the two values used for?  Are they for 2 different parameters, for example one controls the voltage and the controls the current on a power supply.  Or are you trying to send 2 successive values of the voltage?

If they are 2 different parameters then you should be using the drvUser interface to pass that information from device support to the driver.

For example one record might be:

record(ao, “Current”) {
  field(DTYP, “asynInt32”)
  field(OUT, “@asyn($(PORT),0,0)CURRENT)
}

record(ao, “Voltage”) {
  field(DTYP, “asynInt32”)
  field(OUT, “@asyn($(PORT),0,0)VOLTAGE)
}

The asyn driver will take the drvUser strings “CURRENT” and “VOLTAGE” and parse them.  Typically it will set the pasynUser->reason field of the device support pasynUser as a flag to indicate what parameter this record is associated with.

If this is the type of thing you are trying to do then you should not be trying to send two values over the asynInt32 interface at the same time (which is not possible).  You send them separately, with the pasynUser->reason flag that indicates which parameter is being sent.


Mark



From: Vbhagat [mailto:[email protected]<mailto:[email protected]>]
Sent: Wednesday, March 13, 2013 3:12 PM
To: Mark Rivers; [email protected]<mailto:[email protected]>
Subject: RE: asynInt32 pass 2 value

Actually i want to pass 2 value & driver do process on both.  I think asyIntt32Array can use , but specifically. I don't know how to use it.
With regard



Sent from Samsung Mobile



Mark Rivers <[email protected]<mailto:[email protected]>> wrote:


What do you want to do with the two values?  Have the driver process one and then the other soon after?  Why do you want to send 2 values?

Mark

________________________________
From: [email protected]<mailto:[email protected]> [[email protected]<mailto:[email protected]>] on behalf of Vikram Bhagat [[email protected]<mailto:[email protected]>]
Sent: Wednesday, March 13, 2013 4:51 AM
To: [email protected]<mailto:[email protected]>
Subject: asynInt32 pass 2 value

Hi all,
     Is there any way to pass 2 values for asynInt32 PVs ?
for example
$$ caput PVNAME 255 254

and record pass these 2 values to device support for processing.

or by any othere DTYP  have such facility.....

Thanks





References:
RE: asynInt32 pass 2 value Vbhagat
RE: asynInt32 pass 2 value Mark Rivers
Re: asynInt32 pass 2 value Vikram Bhagat
RE: asynInt32 pass 2 value ian.gillingham
Re: asynInt32 pass 2 value Vikram Bhagat

Navigate by Date:
Prev: Training 2013 Yasemin Barutçu
Next: RE: asynInt32 pass 2 value Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: asynInt32 pass 2 value Vikram Bhagat
Next: RE: asynInt32 pass 2 value Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·