Files
sics/tecs/test.for
2000-04-12 08:12:37 +00:00

109 lines
2.9 KiB
Fortran

program test
real*4 temp(4)
character device*32, line*80, cmd*16, par*80, response*80
integer i,j,k
call tecs_init(6, ' ')
print *
print *,'Tecs Client'
print *,'-----------'
print *
print *,'<empty line> show temperature and device'
print *,'set <temp> set temperature'
print *,'send <command> direct command to LSC340'
print *,'device <device> set cryo device'
print *,'<parameter> show parameter'
print *,'<parameter> <value> set parameter'
print *,'kill close TecsServer and exit'
print *,'exit exit, but do not close TecsServer'
print *,'help show list of parameters and cryo devices'
print *
1 print '(x,a,$)','tecs> '
read(*,'(a)',end=9) line
cmd=' '
k=0
do j=1,len(line)
if (line(j:j) .gt. ' ') then
k=k+1
cmd(k:k)=line(j:j)
if (cmd(k:k) .ge. 'A' .and. cmd(k:k) .le. 'Z') then ! set to lowercase
cmd(k:k)=char(ichar(cmd(k:k))+32)
endif
elseif (k .gt. 0) then ! end of command
goto 2
endif
enddo
if (k .eq. 0) then ! empty line
call tecs_get_temp(6, temp)
call tecs_get_par(6, 'device', device)
print '(x,3(a,f8.3),2a)','tempX=', temp(3),', tempP=',temp(2)
1 ,', set=',temp(1), ', device=',device
goto 1
endif
print *,'command too long'
goto 1
2 par=' '
do i=j,len(line)
if (line(i:i) .gt. ' ') then
par=line(i:)
goto 3
endif
enddo
! simple query
if (cmd .eq. 'kill') then
call tecs_quit(6)
goto 9
elseif (cmd .eq. 'exit') then
goto 9
elseif (cmd .eq. 'help') then
print *
print *,'Writeable parameters:'
print *
print *,'tempC temperature set-point'
print *,'device temperature device'
print *,'controlMode control on: 0: heat exchanger, '
1 ,'1: sample, 2: second loop'
print *
print *,'Read only parameters:'
print *
print *,'tempX heat exchanger temperature'
print *,'tempP sample temperature'
print *,'tempH set-point on regulation'
print *,'tLimit temperature limit'
print *,'htr heater current percentage'
print *,'power heater max. power'
print *,'resist heater resistance'
print *
print *,'Temperature devices:'
print *
print *,'ill1, ill2, ill3 (cryofurnace), ill4 (focus-cryo), '
1 ,'ill5 (maxi)'
print *,'cti1, cti2, cti3, cti4, cti5 (maxi), cti6 (focus), apd'
print *,'ccr4k (4K closed cycle), hef4c (TriCS 4circle cryo)'
print *,'sup4t (supra.magnet 4T)'
print *,'rdrn (LTF dilution, 20kOhm), rdrn2 (2kOhm)'
print *
else
call tecs_get_par(6, cmd, response)
print '(7x,3a)',cmd(1:k),'=',response
endif
goto 1
3 if (cmd .eq. 'send') then
call tecs_send_cmd(6, par, response)
print '(7x,2a)','response: ',response
else
call tecs_set_par(6, cmd, par)
print '(7x,3a)',cmd(1:k),':=',par
endif
goto 1
9 end