!! Test procedure LC_LIN
END

SUB Lc_lin_init
!! Test first initialization after loading driver
SUBEND

DEF FNLc_lin_rev$
!! Driver Revision
DIM Ret_str$[100],Revision$[10]
REAL Timerev
Revision$="01"
Timerev=DATE("01 Mar 2004")+TIME("12:34:37")
Ret_str$="Lc_lin_lib,"
Ret_str$=Ret_str$&Revision$&","&FNBktim_iso8601$(Timerev)
RETURN Ret_str$
FNEND

SUB Lc_lin_set_conf(File$)
!! Takes Configuration from Disk and setup Bench for Test
DIM A34970_conf$[80],Static_var$(1:3)[80]
! Retreive Parameters values from Config. File
A34970_conf$=FNBkreadini_get$(File$,"InitialinstrumentConfigurations","A34970_conf","")
Static_var$(1)=FNBkreadini_get$(File$,"DynamicParameters","Start","")
Static_var$(2)=FNBkreadini_get$(File$,"DynamicParameters","Stop","")
Static_var$(3)=FNBkreadini_get$(File$,"DynamicParameters","Wait","")
! Save variables to use for Measurement Start
Bkvar_tmpstr("Lc_lin","set",Static_var$(*))
! Puts Instrument(s) in Configuration for Test Procedure
A34970_set_conf(A34970_conf$)
! Checks if Instrument(s) doesn't generate error after configuration & returns to Local
Bkinst_errqueue("A34970","check")
A34970_local
SUBEND

SUB Lc_lin_start
!! Executes Test Procedure with current Bench State
REAL Tstart,Tend,Wait2start
INTEGER I,Start,Stop,Step
DIM Static_var$(1:3)[80],A34970_idn$[80],A34970_sysver$[80],A34970_calstr$[80]
LONG Number
! Retreive variables to use for Measurement Start
Bkvar_tmpstr("Lc_lin","get",Static_var$(*))
Start=VAL(Static_var$(1))
Stop=VAL(Static_var$(2))
Wait2start=VAL(Static_var$(3))
IF Start<=Stop THEN
Step=1
ELSE
Step=-1
END IF
! Lock used INSTrument(s)
A34970_llo
! Prepare Result data container & INSTrument memory
Number=ABS(Stop-Start)
ALLOCATE REAL Result(1:Number+1)
A34970_setcount(Number+1)
Bkinst_errqueue("A34970","check")
! Memorize Start Date
Bkorg_alive(TIMEDATE)
Tstart=TIMEDATE
! Executes Test Procedure & Elaborates Data
Bkhpib_instout("A34970","DISP:TEXT 'MEASURING'")
A34970_start
IF Wait2start>0 THEN WAIT Wait2start
FOR I=Start TO Stop STEP Step
A34970_digout(I)
Bkorg_alive
DISP ABS(Stop-Start)-I
IF FNBkinst_simu("A34970")=0 THEN
REPEAT
WAIT .020
UNTIL FNA34970_count=Step*(I-Start)+1
END IF
NEXT I
Bkhpib_instout("A34970","DISP:TEXT 'SEND DATA'")
A34970_getmeas(Result(*))
Bkhpib_instout("A34970","DISP:TEXT:CLE")
! Do what needed on end of Test Procedure (go to safe state) & Checks+Local INSTRument(s) & Memorize End Date
A34970_idn$=FNBkhpib_instq$("A34970","*IDN?")
A34970_sysver$=FNBkhpib_instq$("A34970","SYST:VERS?")
A34970_calstr$=FNBkhpib_instq$("A34970","CAL:STR?")
Bkinst_errqueue("A34970","check")
A34970_local
Tend=TIMEDATE
! Stores Results Files
Bkfil_openewtxt("Lc_lin.bky-rad",@Rad)
FOR I=1 TO Number+1
OUTPUT @Rad USING "K,A,K";Start+(I-1)*Step,";",Result(I)
NEXT I
ASSIGN @Rad TO *
Bkfil_openewtxt("Lc_lin.bky-rif",@Rif)
OUTPUT @Rif;"[SPECIFIC]"
OUTPUT @Rif;"Lc_Lin_Lib:Rev=["&FNLc_lin_rev$&"]"
OUTPUT @Rif;"A34970_Lib:Rev=["&FNA34970_rev$&"]"
OUTPUT @Rif;"A34970:IDN=["&A34970_idn$&"]"
OUTPUT @Rif;"A34970:SYSTem:VERSion=["&A34970_sysver$&"]"
OUTPUT @Rif;"A34970:CALibration:STRing=["&A34970_calstr$&"]"
OUTPUT @Rif;"[COMMON]"
OUTPUT @Rif;"COLUMNHEADERS=['DigInput','AnalogMeasOutput']"
OUTPUT @Rif;"STARTED"&"="&FNBktim_iso8601$(Tstart)
OUTPUT @Rif;"FINISHED"&"="&FNBktim_iso8601$(Tend)
ASSIGN @Rif TO *
SUBEND