#TASK=1008TestLinkaTorPoleTokCivkaMerMagnPoleVNzdrojDelic1ku10
TASK=POOL
NET=3
WAIT=sleep 2s
PAPQUIDOa=telnet 192.168.$(NET).254 10001  >/dev/null 2>/dev/null #(8 IN/8 OUT)
PAPAD4ETHa=192.168.$(NET).253 10001 #00:20:4A:98:E6:1E
PAPAD4ETHb=192.168.$(NET).252 10001 #00:20:4A:98:E7:48
PAPQUIDOb=telnet 192.168.$(NET).251 10001  >/dev/null 2>/dev/null #00:20:4A:AF:1F:EC (2 IN/16 OUT)
#REMOTEPC=svoboda@=192.168.11.250
#REMOTEPC=svoboda@192.168.2.40
#REMOTEPC=svoboda@192.168.11.210
REMOTEPC=svoboda@192.168.3.120
REMOTEDIR=/home/svoboda/GOLEM/velin/DAS/USBscope
REMOTEMAKE=ssh $(REMOTEPC) make -iB -s -C $(REMOTEDIR)
#Frekvence 3E5 atp hapruji (spatne se nastavi frekvence USBscope), musi byt zatim 1E5, 1E6 atp.
USBscFREQ=1E6
DATALENGTH=1000
PULSLENGTH=125000
AktNapetiNaKondBatBt=make --no-print-directory -is ad4eth3c
BtZdrojON=echo '*B1OS5H'|$(PAPQUIDOa)
BtZdrojOFF=echo '*B1OS5L'|$(PAPQUIDOa)
BtZdrojOdpoj=echo '*B1OS6H'|$(PAPQUIDOa)
BtZdrojPripoj=echo '*B1OS6L'|$(PAPQUIDOa)
BtZkratON=echo '*B1OS4L'|$(PAPQUIDOa)
BtZkratOFF=echo '*B1OS4H'|$(PAPQUIDOa)


wish2s=echo pack [label .tst -text {$$text}]|wish & jobid=$$! ; sleep 2s; kill $$jobid
wish1s=echo pack [label .tst -text {*********** $$text *********}]|wish & jobid=$$! ; sleep 1s; kill $$jobid


MAKELOG=zip $$aktdir/log makefile wish/*.tcl


cnp:
	make -iBs golem
	make -iBs servis


golem:
	tclsh wish/golem.tcl &

servis:
	tclsh wish/servis.tcl &


xls2csv:

	echo "gtest:" > makef
	xls2csv setup.xls|tail -n +3|head -n -1 > setup.csv 2>/dev/null
	awk -F ',' '{print "\tmake --no-print-directory -is gtest  NapetiKondBatBt="$$1""}' setup.csv >> makef    	
	sed -i 's/"//g' makef

	make -isBf makef


gtest:
	echo Jedeme $(NapetiKondBatBt)
	tclsh wish/nabiti.tcl $(NapetiKondBatBt)
	sleep 3s



process:
	make -iB preprocess
	make -iB shot
	make -iB postprocess
	make -iB gplots


pripravDAS:
	mkdir -p Tasks/$(TASK);aktdir=Tasks/$(TASK)/`date '+%d%m%y_%H%M'`; echo $$aktdir > aktdir; mkdir -p $$aktdir; $(MAKELOG);

galvanickeoddeleni:
	$(BtZdrojOdpoj)

galvanickepripojeni:
	$(BtZdrojPripoj)


trigger:
	#1250 je 0.1 ms
	#12500 je 1ms
	#125000 10 ms
	make -iBs galvanickeoddeleni
	sleep 1s
	 $(REMOTEMAKE) trigger PLENGTH=$(PULSLENGTH) LENGTH=$(DATALENGTH) FREQ=$(USBscFREQ)
	sleep 1s
	make -iBs galvanickepripojeni


USBpulse:
	 $(REMOTEMAKE) USBpulse PLENGTH=$(PULSLENGTH)


sberDAS:   
	scp $(REMOTEPC):/$(REMOTEDIR)/data.zip `cat aktdir`/

gplots:
	cd `cat aktdir`; unzip -u data.zip;
	cd `cat aktdir`; echo "set xlabel 't[ms]'; set ylabel 'U [V]';plot 'usbscope0.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1)"|gnuplot -persist & echo "set terminal postscript enhanced ; set xlabel 't[ms]'; set ylabel 'U [V]' ; set nokey;plot 'usbscope0.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1)"|gnuplot > usbscope0.ps;convert -rotate 90 usbscope0.ps usbscope0.png &
	cd `cat aktdir`; echo "set xlabel 't[ms]'; set ylabel 'U [V]';plot 'usbscope1.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1)"|gnuplot -persist & echo "set terminal postscript enhanced; set xlabel 't[ms]'; set ylabel 'U [V]';set nokey;plot 'usbscope1.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1)"|gnuplot > usbscope1.ps;convert -rotate 90 usbscope1.ps usbscope1.png &
	cd `cat aktdir`; echo "set xlabel 't[ms]'; set ylabel 'U [V]';plot 'usbscope0.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1), 'usbscope1.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1)"|gnuplot -persist & echo "set terminal postscript enhanced color; set xlabel 't[ms]'; set ylabel 'U [V]';set nokey;plot 'usbscope0.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1),'usbscope1.dta' using (1000*\$$0/$(USBscFREQ)):(\$$1)"|gnuplot > usbscopeall.ps;convert -rotate 90 usbscopeall.ps usbscopeall.png &


go:
	sleep 2s;text='Inicializace';$(wish1s) &
	make inicializace -iB
	sleep 3s;text='Nabijeni';$(wish1s) &
	make nabijeni -iB
	sleep 5s;text='Priprava';$(wish1s) &
	make priprava -iB
	sleep 5s;text='Shot';$(wish1s) &
	make shot -iB
	sleep 4s;text='Zaver';$(wish1s) &
	make zaver -iB


inicializace:
	#Nastavujeme pouze zkrat aktivne, ostatni vypnuto.
	$(BtZdrojOFF)
	$(BtZkratOFF)
	$(BtZdrojPripoj)

	#echo '*B1OS1L'|$(PAPQUIDOb);echo '*B1OS2L'|$(PAPQUIDOb);echo '*B1OS3L'|$(PAPQUIDOb);echo '*B1OS4L'|$(PAPQUIDOb);echo '*B1OS5L'|$(PAPQUIDOb);echo '*B1OS6H'|$(PAPQUIDOb);echo '*B1OS7L'|$(PAPQUIDOb);echo '*B1OS8L'|$(PAPQUIDOb);
 




priprava:
	make VypnutiNabijeniKondBatBt -iB
	sleep 1s
	make pripravDAS -iB #Pripravidt USB prevodniky na triger

zaver:
	$(BtZkratON)

konec:
	$(BtZdrojOFF)
	$(BtZkratON)
	$(BtZdrojPripoj)

emerg:
	$(BtZdrojOFF)
	$(BtZkratON)
	$(BtZdrojPripoj)


	#echo '*B1OS1L'|$(PAPQUIDOb);echo '*B1OS2L'|$(PAPQUIDOb);echo '*B1OS3L'|$(PAPQUIDOb);echo '*B1OS4L'|$(PAPQUIDOb);echo '*B1OS5L'|$(PAPQUIDOb);echo '*B1OS6L'|$(PAPQUIDOb);echo '*B1OS7L'|$(PAPQUIDOb);echo '*B1OS8L'|$(PAPQUIDOb);

sw:
	echo *B1OS$(ch)$(st)|$(PAPQUIDOa) #jednoduch switch

puls:
	echo *B1OS$(ch)H|$(PAPQUIDOa) #on
	sleep 0.1s
	echo *B1OS$(ch)L|$(PAPQUIDOa) #off


#********************************** Rutiny ***************************

VypnutiNabijeniKondBatBt:

	$(BtZdrojOFF)
	$(BtZdrojOdpoj)



#	echo '*B1OS5H'|$(PAPQUIDOb) #Odpojeni zdroje ke C
#	echo '*B1OS1L'|$(PAPQUIDOb);echo '*B1OS2L'|$(PAPQUIDOb);echo '*B1OS3L'|$(PAPQUIDOb) #Odpojeni zdroje k siti

ZapnutiNabijeniKondBatBt:

	$(BtZdrojON)

#	echo '*B1OS5L'|$(PAPQUIDOb) #Pripojeni zdroje ke C
#	$(WAIT)
#	echo '*B1OS1H'|$(PAPQUIDOb);echo '*B1OS2H'|$(PAPQUIDOb);echo '*B1OS3H'|$(PAPQUIDOb) #Pripojeni zdroje k siti


#********************************** Vakuum ***************************
 
vakuumOn:
	xterm -e 'make vakuumcheck' & jobid=$$!;echo $$jobid >vacuumid #Mereni vakua, ID pro zabiti 
	sleep 3s; text='Vypinam zavzdusneni';$(wish2s) &
	echo *B1OS3H|$(PAPQUIDOa) #zavzdusneni rotacky vypnout
	sleep 3s; text='Zapinam rotacku';$(wish2s) &
	echo *B1OS2H|$(PAPQUIDOa) #rotacku rozbehnout
	sleep 3s; text='Pripojuji ventilem rotacku ke komore';$(wish2s) &
	echo *B1OS1H|$(PAPQUIDOa) #rotacku ventilem pripojit





vakuumOff:
	text='Odpojuji rotacku od komory';$(wish2s) &
	echo *B1OS1L|$(PAPQUIDOa) #rotacku ventilem odpojit
	sleep 3s;text='Vypinam rotacku';$(wish2s) &
	echo *B1OS2L|$(PAPQUIDOa) #rotacku vypnout
	sleep 3s;text='Zavzdusnuji';$(wish2s) &
	echo *B1OS3L|$(PAPQUIDOa) #zavzdusnit
	pid=`head -1 vacuumid`;for i in `ps -ef| awk '$$3 == '$$pid' { print $$2 }'`; do kill $$i; done
	cd `tail -1 vacuumid`; echo "plot 'vacuumlog'"|gnuplot -persist; echo "set terminal postscript enhanced;  set xlabel 't[s]'; set ylabel 'vacuum gauge VPR20 [mV]';plot 'vacuumlog'"|gnuplot > plot.ps; convert -rotate 90 plot.ps plot.png #nakreslit graf




vakuumcheck:
	mkdir -p Tasks/$(TASK); mkdir -p Tasks/$(TASK)/vacuum; 
	starttime=`date '+%s'`;dirvac=Tasks/$(TASK)/vacuum/`date '+%d%m%y_%H%M'`; echo $$dirvac >> vacuumid; mkdir $$dirvac; while [ 1 ]; do let akttime=`date '+%s'`-$$starttime; echo -n -e $$akttime \\t >> $$dirvac/vacuumlog; $(PAPBASEa)|awk '{print $$4}' >> $$dirvac/vacuumlog ; sleep 5s; echo -n -e $$akttime \\t; $(PAPBASEa)|awk '{print $$4}';sleep 5s; done


fg:
	sh fg

edit:
	emacs makefile wish/*.tcl &

paptest:
	echo 'set fh [socket $(PAPAD4ETHa)];puts $$fh "*B1MR0"; flush $$fh;gets $$fh line; puts $$line;close $$fh;'|tclsh|awk '{print $$10}'

PAPBASEa=echo 'set fh [socket $(PAPAD4ETHa)];puts $$fh "*B1MR0"; flush $$fh;gets $$fh line; puts $$line;close $$fh;'|tclsh
PAPBASEb=echo 'set fh [socket $(PAPAD4ETHb)];puts $$fh "*B1MR0"; flush $$fh;gets $$fh line; puts $$line;close $$fh;'|tclsh

ad4eth1:
	$(PAPBASEb)|awk '{print $$4*4+100}'
ad4eth2:
	$(PAPBASEb)|awk '{print $$7}'
ad4eth3:
	$(PAPBASEb)|awk '{print $$10}'
ad4eth3b:
	$(PAPBASEb)|awk '{print $$10/100}'|sed 's/,/./g'   
ad4eth3c:
	$(PAPBASEb)|awk '{print int($$10/5)}'|sed 's/,/./g'   

ad4eth4:
	$(PAPBASEb)|awk '{print $$13}'
on:
	echo *B1OS1H|$(PAPQUIDOa) #off
off:
	echo *B1OS1L|$(PAPQUIDOa) #off

kontrola:	
	$(PAPBASEb)|awk '{if ($$10 > 2000){system("make -is off")}}'
	$(PAPBASEb)|awk '{if ($$10 > 1000 && $$10 < 2000 ){system("make -is on")}}'


MainCheck:
	#if [ $$Meter -ge $$Limit ]; then text='Limit dosazen';$(wish2s) & make -iB VypnutiNabijeniKondBatBt;fi



vakuumgraf:
	echo "plot '`tail -1 vacuumid`/vacuumlog'"|gnuplot -persist

killgnuplots:
	killall gnuplot_x11


logbook:
	konqueror Tasks/index.html 

editlb:
	emacs --title 'Emacs GOLEM logbook' Tasks/*.html 

buonkonsole:
	konsole -title Tokamak konsole &

buonkrus:
	krusader --left ~/GOLEM/velin --right ~/GOLEM/velin/Tasks/$(TASK)   --caption "Tokamak krusader"

test:	
	override NabijeniKondBatBtFLAG:=0
	echo $(NabijeniKondBatBtFLAG)


#********************************** Zombies ***************************


zombies:
#poolusbscope:
	mkdir -p Tasks/$(TASK);
	aktdir=Tasks/$(TASK)/`date '+%d%m%y_%H%M'`; echo $$aktdir > aktdir; mkdir $$aktdir; $(MAKELOG);$(REMOTEMAKE) capt LENGTH=3072 FREQ=$(USBscFREQ) > $$aktdir/usbscope;cd $$aktdir; echo "set xlabel 't[ms]'; set ylabel 'U [V]';set nokey;plot 'usbscope' using (1000*\$$0/$(USBscFREQ)):(\$$1)"|gnuplot -persist; echo "set terminal postscript enhanced;  set xlabel 't[us]'; set ylabel 'U [V]';plot 'usbscope'"|gnuplot > plot.ps; convert -rotate 90 plot.ps plot.png #nakreslit graf


#vstupuje parametr Limit nabijeni kond. bat.
#nabijeni: 
	#make ZapnutiNabijeniKondBatBt -iB
	while [ `$(AktNapetiNaKondBatBt)` -le $$LimitNabijeniKondBatBt ]; do text='Nabijeni';$(wish1s); sleep 2s;done	
	text='Nabito';$(wish2s)
	#make VypnutiNabijeniKondBatBt -iB
