![]() |
![]() ![]()
Experimental Physics and
| ||||||||||||||
|
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]>
To: 'Vbhagat' <[email protected]>; "[email protected] " <[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]] Sent: Wednesday, March 13, 2013 3:12 PM To: Mark Rivers; [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]> 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] [[email protected]] on behalf of Vikram Bhagat [[email protected]] Sent: Wednesday, March 13, 2013 4:51 AM To: [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
| ||||||||||||||
ANJ, 20 Apr 2015 |
![]() · Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |