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
<2013>
2014
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
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|