diff --git a/lppinstru/dlp_temp.py b/lppinstru/dlp_temp.py old mode 100644 new mode 100755 --- a/lppinstru/dlp_temp.py +++ b/lppinstru/dlp_temp.py @@ -8,6 +8,7 @@ import os import matplotlib.pyplot as plt import numpy as np import serial +import struct __author__ = "Alexis Jeandet" __copyright__ = "Copyright 2015, Laboratory of Plasma Physics" @@ -43,12 +44,6 @@ 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) @@ -57,8 +52,7 @@ class dlp_temp(object): if index < 3: self.__port.write(self.sensors.get(index)) dat=self.__port.read(9) - test=( self._byte_to_int(dat[0]) + (self._byte_to_int(dat[1])*256) ) - temp=float(test)*0.0625 + temp=float(struct.unpack( "h", dat[:2])[0])*0.0625 return temp #(temp-32.0)/1.8 raise UserWarning("Parameter out of bound") @@ -66,8 +60,7 @@ class dlp_temp(object): if index < 3: self.__port.write(self.aninputs.get(index)) dat=self.__port.read(2) - test=( self._byte_to_int(dat[0]) + (self._byte_to_int(dat[1])*256) ) - val=float(test)/512.0 + val=float(struct.unpack( "h", dat[:2])[0])/512.0 return val raise UserWarning("Parameter out of bound") @@ -129,5 +122,18 @@ class dlp_temp(object): def GP4(self,value): return self.digit_out(2,value) + +def main(argv): + if len(argv)==4: + print(argv[3]) + if len(argv)>=3: + dlp=dlp_temp(argv[0]) + while(True): + readout=[dlp.read_sensor(i) for i in range(int(argv[1]))] + print("{date}\t{values}".format(date=time.strftime("%Y-%m-%dT%H:%M:%S"),values="\t".join([str(x) for x in readout] ))) + time.sleep(float(argv[2])) + + if __name__ == '__main__': - print("") + print(sys.argv) + main(sys.argv[1:])