Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  Index 1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020 
<== Date ==> <== Thread ==>

Subject: A tool to support development of GP-IB device support routine.
From: Noboru Yamamoto <yamamoto@kekvax.kek.jp>
To: tech-talk@aps.anl.gov
Cc: katoh@kekvax.kek.jp, tatsuro@kekvax.kek.jp, akiyama@kekvax.kek.jp
Date: Thu, 12 Sep 1996 16:44:27 +0900
Dear Colleagues,

  We, KEKB accelerator control group,  are developing a tool to support development of GP-IB device support 
 routines.  It consists of file format define GP-IB device ( GP-IB device 
 description language, gdl) and translater(gdc) which translate this file 
 into c source code used as GP-IB device support routines.  It also 
 generate command list in the gdl file. Please find the simplified descrption
 of gdl file format, a sample input  and a sample of command list
 generated by gdc at the end of this mail.
 
  The first version of gdl/gdc is under test in KEK. gdl/gdc is designed 
 and implemented by Mr. Susumu Yoshida of KANTO information service.
  
  your comment or suggestion will be appricated.
  
  Regards,
  
  Noboru Yamamoto
  KEB Accelerator Control Group
  KEK, JAPAN

============================= gdl file format =======================
Device  <DeviceName>
NameTable   <NameTable_name>= <name_1>[:<val_1>],<name_2>[:<val_2>]...; 
EfastTable   <EfastTable_name>=<name_1>,<name_2>.....;

%%<embedded c language code>
%{
 <embedded c language codes>
 }%

ParamTable {
        <param_name1> {
              rec = ai|ao|bi|bo|si|so|li|lo|mbbi|mbbo|wf
            [,type = read|write]
		    [,pri= LOW|HIGH]
		    [,command=<command string>]
     		[,rsp=<responce error message buffer size>]
			[,leng=<data buffer size>]
			[,conv=<format string> | <data conversion function> ]
			[,param1=<first parameter to conversion function (integer)>]
			[,param2=<second parameter to conversion function (integer)>]
			[,param3=<third parameter to conversion function (string)>]
            [,efast=<efast table name>]
            [,name=<name of NameTable>]
 			}
         <param_name2> {
             rec = ...
            }...
}

%%<embedded c language code>
%{
 <embedded c language codes>
 }%

========================== gdl sample ================================
Device(Tek2430)

%{
STATIC int rd_wf();
}%

NameTable offOn = "OFF","ON";
NameTable Range = "2mV", "5mV","10mV", "20mV", "50mV",
         "100mV", "200mV", "500mV","1V","2V","5V";

EfastTable userOffOn = "USER OFF", "USER ON";
EfastTable debOffOn= "DEBUG OFF","DEBUG ON";
EfastTable VoltRange=
          "CH1 VOLTS:2E-3", "CH1 VOLTS:5E-3", "CH1 VOLTS:1E-2"
        , "CH1 VOLTS:2E-2", "CH1 VOLTS:5E-2", "CH1 VOLTS:1E-1"
        , "CH1 VOLTS:2E-1", "CH1 VOLTS:5E-1", "CH1 VOLTS:1"
        , "CH1 VOLTS:2", "CH1 VOLTS:5"
;

ParamTable{
get_ch1_volt    {rec=ao,command="CH1 VOL:%.lf\r\n"}
set_ch1_volt    {rec=mbbo,efast=VoltRange,name=Range}
get_ch2_volt    {rec=ai, command="CH2? VOL\r\n",command="CH2 VOLTS:%lf"}
set_ch2_volt    {rec=mbbo,type=write, command="CH2 VOL:%.lde-3\r\n"}
get_DEB         {rec=bi,command="DEB?\r\n", efast=debOffOn, name=offOn}
set_DEB         {rec=bo,type=efasto,efast=debOffOn, name=offOn}
init            {rec=bo,command="init\r\n"}
get_wf          {rec=wf,command="CURV?\r\n",leng=4096,conv=rd_wf}
move_x1         {rec=ao,command="CURS XPOS:ONE:%4.2lf\r\n"}
move_x2         {rec=ao,command="CURS XPOS:TWO:%4.2lf\r\n"}
move_y1         {rec=ao,command="CURS YPOS:ONE:%4.2lf\r\n"}
move_y2         {rec=ao,command="CURS YPOS:TWO:%4.2lf\r\n"}
}


============= = sample of Command List generated by gdc =====================

/*** COMMAND LIST ***/

No.  0   AO      get_ch1_volt
No.  1   MBBO    set_ch1_volt
No.  2   AI      get_ch2_volt
No.  3   MBBO    set_ch2_volt
No.  4   BI      get_DEB
No.  5   BO      set_DEB
No.  6   BO      init
No.  7   WF      get_wf
No.  8   AO      move_x1
No.  9   AO      move_x2
No. 10   AO      move_y1
No. 11   AO      move_y2


Navigate by Date:
Prev: breakpoints Rolf Keitel
Next: dm colour rules with -ve values David Terrett
Index: 1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020 
Navigate by Thread:
Prev: breakpoints Rolf Keitel
Next: Re: A tool to support development of GP-IB device support routine. Noboru Yamamoto
Index: 1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·