diff --git a/lppinstru/dlp_temp.py b/lppinstru/dlp_temp.py --- a/lppinstru/dlp_temp.py +++ b/lppinstru/dlp_temp.py @@ -43,6 +43,12 @@ class dlp_temp(object): self.i=0 self.__port=serial.Serial(port,timeout=0.5) + def _byte_to_int(self,byte): + if byte >= 128: + return byte-256 + else: + return byte + def ping(self): self.__port.write(b"P") return b'Q' == self.__port.read(1) @@ -51,7 +57,7 @@ class dlp_temp(object): if index < 3: self.__port.write(self.sensors.get(index)) dat=self.__port.read(9) - test=( int(ord(dat[0])) + (int(ord(dat[1]))*256) ) + test=( self._byte_to_int(dat[0]) + (self._byte_to_int(dat[1])*256) ) temp=float(test)*0.0625 return temp #(temp-32.0)/1.8 raise UserWarning("Parameter out of bound") @@ -60,7 +66,7 @@ class dlp_temp(object): if index < 3: self.__port.write(self.aninputs.get(index)) dat=self.__port.read(2) - test=( int(ord(dat[0])) + (int(ord(dat[1]))*256) ) + test=( self._byte_to_int(dat[0]) + (self._byte_to_int(dat[1])*256) ) val=float(test)/512.0 return val raise UserWarning("Parameter out of bound")