diff --git a/Ramses.py b/Ramses.py index eacf52d..505ef71 100644 --- a/Ramses.py +++ b/Ramses.py @@ -26,6 +26,7 @@ class Ramses(object): @param : 23 ..07 .... 06 05 04 03 02 01 00 ip信息不包含 @Returns : realWavelength Intensity + @ 积分时间 04 07 , 选 07 """ self.buf = b'' self.mode = 0 # 默认0 空气中,1:水中 @@ -34,11 +35,7 @@ class Ramses(object): self.light_int = None # 未标定的整数值 self.spectrum = None # 光谱强度 self.ip = [] - # self.current_buf = "" - # self.current_buf_seq = 0 - # self.current_it_int = {"it": 0, "light_int": []} # 积分时间及换算的整数值 - # self.res = {"wavelength": [], "light": []} - self.cal_cfg = {} + self.cal_cfg = {} # 单个传感器标定文件还是多个传感器的? # self.current_cal = {} # 当前传感器的序列号 pass @@ -58,6 +55,9 @@ class Ramses(object): self.cal_cfg = d pass + def get_ip(self): + return self.ip + def getSpectrum(self): return self.spectrum @@ -85,7 +85,10 @@ class Ramses(object): pass def dealBuf(self, ip_included:bool=False): - """多个传感器的数据处理, 头部是否包含Ip帧的信息""" + """ + 头部是否包含Ip帧的信息 + ?? 不支持多个传感器的标定文件 + """ log.info(f" dealBuf ", __name__) res = {} @@ -125,16 +128,16 @@ class Ramses(object): def __ConvertBytesToInt(self ) -> None: res = {} d = [] # List [ Tuple[ it:int, sing_set:tuple[int] ] ] - print(f" ================= ") - print(f" {self.buf.hex()} ") + self.it = 2 << int(self.buf[1]) # integrated time # self.it = 2 << int(self.buf[0]) # integrated time + self.light_int = struct.unpack( " list: + ret = [] + for i in range(1,256): + tmp = float(self.cal_cfg['c0s']) + float(self.cal_cfg['c1s'])*i \ + + float(self.cal_cfg['c2s'])*i*i + float(self.cal_cfg['c3s'])*i*i*i + ret.append(tmp) + pass + return ret pass