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