- OWINIT save Register used in C
[owSlave2.git] / stest / separate1.py
diff --git a/stest/separate1.py b/stest/separate1.py
new file mode 100644 (file)
index 0000000..bffda77
--- /dev/null
@@ -0,0 +1,103 @@
+import sys
+import os
+import os.path
+import subprocess
+import io
+import time
+import math
+import shutil
+import datetime
+
+
+#Parameter:
+#a = 7.5, b = 237.3 fuer T >= 0
+#a = 7.6, b = 240.7 fuer T < 0 ueber Wasser (Taupunkt)
+#a = 9.5, b = 265.5 fuer T < 0 ueber Eis (Frostpunkt)
+a=7.5
+b=237.3
+Rs = 8314.3 #J/(kmol*K) (universelle Gaskonstante)
+mw = 18.016 #kg/kmol (Molekulargewicht des Wasserdampfes)
+
+def SDD(T):
+       return 6.1078 * 10**((a*T)/(b+T))
+       
+def AF1(r,T):
+       return r/100.0*SDD(T)/(T+273.15)*mw/Rs*10000
+
+def RF1(a,T):
+       return a*100/(SDD(T)/(T+273.15)*mw/Rs*10000)    
+#print(0.5*SDD(20)/(20+273.15)*mw/Rs*10000)
+
+def rdiff(r1,t1,t2):
+       return (r1)-RF1(AF1(r1,t1),t2)
+
+
+def calcDerivation(Name,Valuetype,Value,T):
+       return [0.5,0.5]
+
+
+devdict={}
+devwholist=[]
+f=open("DEVLIST.txt","r")
+for l in f.readlines():
+       ls=l.split(" ")
+       if (len(ls)>1):
+               devdict[ls[0]]=l.replace("\n","").split(",")[0].split(" ")[1]
+               devwholist.append(ls[0])
+f.close()
+
+sel_list=["Temperatur","Luftfeuchte","Beleuchtungsstaerke","R0","VOC","RS","Corr"]
+data=[]
+for s in sel_list:
+       data.append(["Time"])
+
+for ds in devwholist:   #fuer Jedes Geraet in DEVLIST.txt
+       fname="log_%s.ow1" %(ds)  #Sind Daten da?
+       if os.path.exists(fname):
+               f=open(fname,"r")  #Lesen
+               lines=f.readlines()
+               ti=lines[0][:-1].split("\t")  #Ueberschriften aufteilen
+               i=0
+               if ("Temperatur" in ti):
+                       tempindex=ti.index("Temperatur")
+               for t in ti:   #fuer jedes Element in der Ueberschrift
+                       if t in sel_list:  #schauen ob es Uebernommen werden soll
+                               p=sel_list.index(t)  #schaue nach Nummer in der Datenbank
+                               data[p][0]=data[p][0]+","+ds+" "+devdict[ds] #hinzufuegen der Ueberschrift in der Tabelle
+                               if len(data[p])==1: #erstes Element, Time einfuegen und neue zeile anlegen
+                                       for l in lines[1:]:
+                                               l=l[:-1]
+                                               ll=l.split("\t")
+                                               la=ll[0].split(" ")
+                                               lb=la[0].split(".")
+                                               ts=lb[2]+"/"+lb[1]+"/"+lb[0]+" "+la[1]
+                                               data[p].append(ts)
+                               j=1;
+                               for l in lines[1:]:
+                                       #print(ll)
+                                       l=l[:-1] #\n wegmachen
+                                       ll=l.split("\t") #telen
+                                       fl=float(ll[i].replace(",","."))
+                                       if "VOC" in devdict[ds] or "Lum" in devdict[ds]:
+                                               if (t=="Temperatur"):
+                                                       ltemp=fl
+                                                       fl=fl-1
+                                               if (t=="Luftfeuchte"):
+                                                       ltemp=float(ll[tempindex].replace(",","."))
+                                                       fl=fl-rdiff(fl,ltemp,ltemp-1)
+                                       data[p][j]=data[p][j]+",%0.2f" % (fl)
+                                       j=j+1
+                       i=i+1
+               f.close()               
+                        
+       
+#print data
+
+for i in range(len(sel_list)):
+       f=open("/var/www/html/"+sel_list[i]+".csv","w")
+       for l in data[i]:
+               f.write(l+"\n")
+       f.close()
+
+       
+