##### Risanje histograma - S53MV 18.09.2016 #####
##### Posodobljeno za Python 3.x - A. Blatnik 12.01.2019 ####
##### Update v1.1 - A. Blatnik 03.01.2020 ####

import time,serial,math,sys	#uporabljene funkcije

port='COM11'		#ime zaporednega vmesnika

print("*** Risanje histograma statistike presiha - 03.01.2020 ***")
n=int(input("Vstavi stevilo meritev: "))

#odpri comport port, 115200bps, 8bit, brez paritete
print("Pocakaj na lenobni USB...")
comport=serial.Serial(port,115200,timeout=1)
comport.setRTS(False)	#sprosti /BOOTLOADER
comport.setDTR(False)	#sprosti /RESET
time.sleep(3)
comport.flushInput()	#pocisti sprejemni vmesnik
comport.readline()

h1=[]			#podatki iz merilnega sprejemnika v polji h1 in h2
h2=[]
i=n
while i>0:
	s=comport.readline()
	h1=h1+[math.pow(10.0,(float(s[0:5])-20)*0.05)]	#kanal #1
	h2=h2+[math.pow(10.0,(float(s[6:11])-20)*0.05)]	#kanal #2
	i=i-1
	sys.stdout.write('\rZbiranje podatkov:%i'%(i,))
	sys.stdout.flush()

comport.close()		#zapri comport port
t=time.ctime()		#zabelezi cas meritve

print("\r\nPocakaj na nalaganje grafike...")
import matplotlib.pyplot as plt
k=int(input('Vstavi stevilko kanala: [1] ali [2] ([0]=izhod): '))
while True:
        if (k==1 or k==2):
                b=input('Vstavi stevilo stolpcev: ')
                print("Risanje histograma...\n")
                b=int(b)
                if k==1:
                        plt.hist(h1, bins=b, density=1, facecolor='green')
                else:
                        plt.hist(h2, bins=b, density=1, facecolor='green')
                plt.title('Histogram - '+str(n)+' meritev  '+t)
                plt.xlabel('Amplituda')
                plt.ylabel('Gostota verjetnosti')
                plt.show()
        elif (k==0):
                print("Konec programa\n")
                break
        else:
                print("Napacna stevilka kanala!\n")
        k=int(input('Vstavi stevilko kanala: [1] ali [2] ([0]=izhod): '))
#konec programa
