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  2013  2014  2015  <20162017  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  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: long string command to device
From: "Gofron, Kazimierz" <[email protected]>
To: "'Mark Rivers'" <[email protected]>, "[email protected]" <[email protected]>
Date: Fri, 13 May 2016 03:36:27 +0000
Hello Mark,

Thanks for quick response.
I used waveform, and it works for incoming response. But my limitation is outgoing string, and I simply do not know how to replace the {}test with waveform. And be able to assign the long string to {}test waveform with dbPut().

record(stringout, "$(P)$(Dmm)test") {
  field(FLNK, "$(P)$(Dmm)dmm_get_wf")
}

record(waveform, "$(P)$(Dmm)dmm_get_wf") {
  field(DESC, "Measurements")
  field(DTYP, "asynOctetWriteRead")
  field(INP, "@asyn($(PORT) 0)$(P)$(Dmm)test")
  field(FTVL, "CHAR")
  field(NELM, "256")
}

I will look into replacing devXxStrParam with StreamDevice.

Kaz

-----Original Message-----
From: Mark Rivers [mailto:[email protected]] 
Sent: Thursday, May 12, 2016 11:01 PM
To: Gofron, Kazimierz; [email protected]
Subject: RE: long string command to device

Hi Kaz,

Do you need to use the devXxStrParm device support?  Why not use StreamDevice for this?  devXxStrParam.c is limited to using stringout records, it does not support waveform records.  I consider devXxStrParam to be obsolete, it is ~20 years old with no significant changes in the last 12 years.  

StreamDevice can use waveform records, and so does not have a 40 character limit.

Mark

________________________________________
From: [email protected] [[email protected]] on behalf of Gofron, Kazimierz [[email protected]]
Sent: Thursday, May 12, 2016 9:23 PM
To: [email protected]
Subject: long string command to device

Hi,

I am writing EPICS driver for Keithley 3706A, and am trying to figure out how to send long string commands to the 3706A.
The ICL commands have no short version, and some commands exceed current 40 char length limit of the stringout record.

____
The EPICS stringoutRecord.h is limited to 40 char.
char            val[40];        /* Current Value */
****

In my driver assigning to stringout:
"dmm.setconfig('1019:1020','fourwireohms')"
results in "dmm.setconfig('1019:1020','fourwireohms" being send - missing last 2 characters

Is there a replacement for stringout with relaxed limit?
----------------
Simplified command/respond test:

record(stringout, "$(P)$(Dmm)command") {
  field(FLNK, "$(P)$(Dmm)reply")
}

record(stringin, "$(P)$(Dmm)reply") {
  field(DTYP, "asynOctetWriteRead")
  field(INP, "@asyn($(PORT) 0) $(P)$(Dmm)command") }
------------------
I am currently using this format in the driver:

record(stringout, "$(P)$(Dmm)dmm_read") {
  field(DTYP, "asyn so stringParm")
  field(FLNK, "$(P)$(Dmm)dmm_get_str.VAL  PP MS")
  field(VAL, "print(dmm.measure())")
  field(OUT, "@asyn($(PORT))TERM=0a")
}

record(stringin, "$(P)$(Dmm)dmm_get_str") {
  field(DTYP, "asyn si stringParm")
  field(INP, "@asyn($(PORT))TERM=0a,TO=10000")
  field(FLNK, "$(P)$(Dmm)read_finished.VAL  PP MS") }

Kazimierz


References:
long string command to device Gofron, Kazimierz
RE: long string command to device Mark Rivers

Navigate by Date:
Prev: RE: long string command to device Mark Rivers
Next: Question about Archive Engine lzfneu
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: long string command to device Mark Rivers
Next: AW: long string command to device Zimoch Dirk (PSI)
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 15 Jul 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·