EPICS Home

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  2014  2015  2016  2017  2018  <20192020  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  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: 回覆: How to limit the range of setting value for longout record(DTYP asynInt32) in asynMotor?
From: Chiang, Liang-Chih [江良志] via Tech-talk <[email protected]>
To: "[email protected]" <[email protected]>
Date: Tue, 15 Jan 2019 09:43:03 +0000
Thanks, Mark. I will do it as you said.

By the way,
is it possible to set the permitted range in C++ code, 
then let the record grab the range?

What is the usage of the following method in asynPortDriver?
  asynStatus getBounds(asynUser *pasynUser, epicsInt32 *low, epicsInt32 *high)


LiangChih Chiang
NSRRC


________________________________________
寄件者: Mark Rivers <[email protected]>
寄件日期: 2019年1月15日 下午 05:31
收件者: Chiang, Liang-Chih [江良志]
副本: [email protected]
主旨: Re: How to limit the range of setting value for longout record(DTYP asynInt32)  in asynMotor?

You can set the drive limits using the DRVL and DRVH fields. GUI limits can be set with LOPR and HOPR fields.

Mark


Sent from my iPhone

On Jan 15, 2019, at 10:18 AM, Chiang, Liang-Chih [江良志] via Tech-talk <[email protected]<mailto:[email protected]>> wrote:


Hi,  EPICS community.



I'm writing a motor controller driver based on asynMotor (C++ classes asynMotorController and asynMotorAxis).

To read/write some specific settings of the motor controller (which are integer values),

I implemented:

asynStatus readInt32(asynUser *pasynUser, epicsInt32 *value);

asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value);



Then using longout records to access, something like following and it works:

record(longout, "$(P)Setting1"){

  field(DTYP, "asynInt32")

  field(OUT, "@asyn($(PORT) $(ADDR))SETTING1)

  field(PINI, "YES")

}



However, the setting has a range of permitted values. For example, the lowest value is 1 and the highest value is 30.



What is the conventional and suggested way to set this range?





Thanks. (This is my first post.)



LiangChih Chiang
National Synchrotron Radiation Research Center (NSRRC)


References:
How to limit the range of setting value for longout record(DTYP asynInt32) in asynMotor? Chiang, Liang-Chih [江良志] via Tech-talk
Re: How to limit the range of setting value for longout record(DTYP asynInt32) in asynMotor? Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: How to limit the range of setting value for longout record(DTYP asynInt32) in asynMotor? Mark Rivers via Tech-talk
Next: Problem in Stream Out of two 8 bit data Ashish Sharma via Tech-talk
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  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: How to limit the range of setting value for longout record(DTYP asynInt32) in asynMotor? Mark Rivers via Tech-talk
Next: Problem in Stream Out of two 8 bit data Ashish Sharma via Tech-talk
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  <20192020  2021  2022  2023  2024