Experimental Physics and Industrial Control System
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
<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:
breakpoints Rolf Keitel
- Next:
Re: A tool to support development of GP-IB device support routine. Noboru Yamamoto
- 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