bin noch neu bei Python und habe eine Frage bezüglich eines Messwertes, den ich über einen RS232 Port ausgelesen habe.
Als Ergebnis bekomme ich b'+2.17732562E-03\n'
Der eigentliche Messwert ist aber natürlich nur +2.17732562E-03
Wie kann ich den ausgelesen String in einen Zahlenwert (z.B. 0,002177) wandeln?
Mit dieser Funktion komme ich leider nicht weiter:
Code: Alles auswählen
def val(data):
y=0
nst=""
dlist = ['0','1', '2', '3', '4', '5', '6', '7', '8', '9']
for x in data:
for i in dlist:
if x == i:
nst=nst+x
n=len(nst)
dcont=n
acum=0
for z in range(n):
y=0
for i in dlist:
if nst[z] == i:
d=y
mult=1
dcont=dcont-1
for j in range(dcont):
mult=mult*10
acum=acum+(d*mult)
y=y+1
return acum
Code: Alles auswählen
def RS232_write(self):
ser = serial.Serial('COM1',9600, 8, 'N',1) # open serial port
ser.write(b':MEASure:PRIMary:VOLTage:DC?\n') # write a string
i = str((ser.readline()))
print(val(i))
self.textBrowser.append(i)
ser.close() # close port