10 toolstr="/home/muto/owtools/src/owtools USB1 DC "
13 f=open("DEVLIST.txt","r")
14 for l in f.readlines():
17 devdict[ls[0]]=l.replace("\n","")
18 devwholist.append(ls[0])
31 bl.append(int(s[i2:i2+2],16))
35 def calculateValues(code, V, vn):
41 return V[vn]*0.2 + 700;
43 return math.exp(V[vn] / 160.0);
45 return V[vn]*62.5 + 55000;
50 return ((float(V[2]) / float(V[1]) - 0.16) / 0.0062) / (1.0546 - 0.00216*V[0]/256.0);
56 return V[vn] / 65535.0*5.1;
58 return V[vn] / 65535.0*2.55;
60 return V[vn] / 65535.0*1.1;
66 return (V[vn] - 32767.0) / 100.0;
68 return math.exp((V[vn]-32767.0)/1000.0);
76 return ["Temperatur","C"]
78 return ["Druck","hPa"]
80 return ["Beleuchtungsstaerke","lux"]
82 return ["Luftfeuchte","%%"]
84 return ["Konstante",""]
86 return ["Spannung","V"]
96 def owCom(dev,send,rcount):
97 cmd=toolstr+id2string(dev)
99 # cmd=cmd+"%02X" %(dev[7-i])
103 for i in range(rcount):
105 #print(cmd.split(' '));
106 p = subprocess.Popen(cmd.split(' '), shell=False, bufsize=14000, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
108 s=p.stdout.read().decode("utf-8")
112 for i in range(int(len(l[2])/2)):
114 bl.append(int(l[2][i2:i2+2],16))
117 def owComStr(dev,sendstr):
118 cmd=toolstr+id2string(dev)
120 # cmd=cmd+"%02X" %(dev[7-i])
122 p = subprocess.Popen(cmd.split(' '), shell=False, bufsize=14000, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
124 s=p.stdout.read().decode("utf-8")
130 for i in range(int(len(l)/2)):
132 bl.append(int(l[i2:i2+2],16))
136 def getValues(dev,voc):
138 #print(id2string(dev[0]),voc)
143 sbl=owComStr(dev[0],"4E000F_RB4_R_P7044_R_P70B800_RBE00FFFFFFFFFFFFFFFFFF_R4E0000_RB4_R_P70B800_RBE00FFFFFFFFFFFFFFFFFF_RBE03FFFFFFFFFFFFFFFFFF")
146 VDD=(sb[5]+sb[6]*256)
148 VAD=(sb[5]+sb[6]*256)
149 Temp=(sb[3]+sb[4]*256)
155 vals=[Temp,VDD,VAD,curr]
160 if (dev[1][i*2+1])!=0:
161 formellist.append(dev[1][i*2+1])
165 for i in range(len(formellist)):
166 cvals.append(calculateValues(formellist[i],vals,i))
175 #R0,VS,Corr,cmode,RS,RSR0,VOC1,VOC2
177 R0=(sb[2]+sb[3]*256)/100.0
178 VS=(sb[4]+sb[5]*256)/10000.0
179 Corr=(sb[7]+sb[8]*256)/1000.0
195 sbl=owComStr(dev[0],"44_R_PFF_PFF_PFF_PFFBEFFFFFFFFFFFFFFFFFF")
196 Temp=sbl[1][1]+sbl[1][2]*256
197 if (sbl[1][2] & 0x80):
200 return [calculateValues(dev[1][1],[Temp],0)]
202 return [calculateValues(1,[Temp],0)]
209 p = subprocess.Popen(["./owtools","USB1"], shell=False, bufsize=14000, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
222 bl.append(int(d[i2:i2+2],16))
225 config=owCom(bl,[0x85],18)
227 if (config[1]==0xFF):
229 config=[0,1,6,6,8,4,7,7,8,0]
231 config=[0,1,1,0,0,0,0,0,0,0]
232 dev.append(config[1:])
238 cs=cs+devdict[bls].split(",")[0].split(" ")[1]+" "
244 config=[0,1,6,6,8,4,7,7,8,0]
246 config=[0,1,1,0,0,0,0,0,0,0]
250 cs=cs+getName(c)[0]+" "
253 if "VOC" in devdict[bls]:
255 l=getValues([bl,config[1:]],voc)
263 #print("Test_configs")
266 #print("c",dv[1][9:16])
268 if dv[1][9:16]==bl[0:7]:
269 print("Double Device")
278 #voc_marker.append(vm)
279 #print("devlist",devlist)