import time, math, serial #uporabljene funkcije port='COM1' #ime zaporednega vmesnika pomlad=0.275 #poenostavljeno pomladisce za Julijanski koledar (del kroga) elmin=10.0 #minimalna varna elevacija vrtiljaka maxracun=9999 #max stevilo racunov stracun=1 #stevec racunov, zacni z elevacijo vrtiljaka! casracun=25 #interval racunanja (sekunde) sirina=45.948 #zemljepisna sirina opazovalca v stopinjah (+sever) dolzina=13.634 #zemljepisna dolzina opazovalca v stopinjah (+vzhod) cs=math.cos(math.radians(sirina)) #smerni vektorji opazovalca ovzhod, osever in ogor ss=math.sin(math.radians(sirina)) cd=math.cos(math.radians(dolzina)) sd=math.sin(math.radians(dolzina)) ovzhod=[-sd,cd,0] osever=[-ss*cd,-ss*sd,cs] ogor=[cs*cd,cs*sd,ss] nagibew=-1.0 #smerni vektorji nagnjenega vrtiljaka vvzhod, vsever in vgor c=math.cos(math.radians(nagibew)) s=math.sin(math.radians(nagibew)) vvzhod=[c*ovzhod[0]-s*ogor[0],c*ovzhod[1]-s*ogor[1],c*ovzhod[2]-s*ogor[2]] vsever=osever vgor=[s*ovzhod[0]+c*ogor[0],s*ovzhod[1]+c*ogor[1],s*ovzhod[2]+c*ogor[2]] def skalar(a,b): #skalarni produkt dveh vektorjev return (a[0]*b[0])+(a[1]*b[1])+(a[2]*b[2]) def azel(s,ov,os,og): #izracunaj azimut in elevacijo za opazovalca az=math.degrees(math.atan2(skalar(s,ov),skalar(s,os))) #azimut if az<0: az=az+360 el=math.degrees(math.asin(skalar(s,og))) #elevacija return az,el def datumura(t): #izpisi trenutni datum in uro leto=t[0] mesec=t[1] dan=t[2] print str(leto)+'-'+str(mesec)+'-'+str(dan), #izpisi datum ura=t[3] minuta=t[4] sekunda=t[5] print str(ura)+':'+str(minuta)+':'+str(sekunda), #izpisi uro def smerzvezde(z,t): #izracunja smerni vektor zvezde ob dani uri in datumu ddan=(((t[5]/60.0)+t[4])/60.0+t[3])/24.0 #decimalni del dneva pleto=t[0]-int((t[0]/4)*4) #dan v stiriletju sdan=t[2] dmesec=[31,28,31,30,31,30,31,31,30,31,30,31] #dodaj stevilo dni v mesecih n=1 while nelmin: #postavi vrtiljak na azimut/elevacijo el=popravek(elevacija) print 'Popravki', print str('%5.1f'%(azimut))+str('/%4.1f'%(elevacija))+str('>%4.1f'%(el)), if stracun%2==0: s='&*AZ='+str('%06.2f'%(azimut))+'\r' else: s='&*EL='+str('%06.2f'%(el))+'\r' comport.write(s) print 'Ukaz vrtiljaku:',s stracun=stracun+1 #zakljucek zanke racunanja time.sleep(casracun)