|
|
|
@ -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( |
|
|
|
|
"<HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \ |
|
|
|
|
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \ |
|
|
|
|
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \ |
|
|
|
|
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH", self.buf[2:]) |
|
|
|
|
print( self.light_int ) |
|
|
|
|
# print( self.light_int ) |
|
|
|
|
|
|
|
|
|
def __CalibrateSpectrumData(self ,) : |
|
|
|
|
t0 = 8092 |
|
|
|
@ -179,19 +182,19 @@ class Ramses(object): |
|
|
|
|
if flag == False and buf[i] != 64 : |
|
|
|
|
ret = ret + buf[i].to_bytes( 1, byteorder = 'big' ) |
|
|
|
|
continue |
|
|
|
|
if flag == True and buf[i] == 100: |
|
|
|
|
if flag == True and buf[i] == 100: |
|
|
|
|
ret = ret + b'\x40' |
|
|
|
|
flag = False |
|
|
|
|
continue |
|
|
|
|
if flag == True and buf[i] == 101: |
|
|
|
|
if flag == True and buf[i] == 101: |
|
|
|
|
ret = ret + b'\x23' |
|
|
|
|
flag = False |
|
|
|
|
continue |
|
|
|
|
if flag == True and buf[i] == 102: |
|
|
|
|
if flag == True and buf[i] == 102: |
|
|
|
|
ret = ret + b'\x11' |
|
|
|
|
flag = False |
|
|
|
|
continue |
|
|
|
|
if flag == True and buf[i] == 103: |
|
|
|
|
if flag == True and buf[i] == 103: |
|
|
|
|
ret = ret + b'\x13' |
|
|
|
|
flag = False |
|
|
|
|
continue |
|
|
|
@ -245,6 +248,15 @@ class Ramses(object): |
|
|
|
|
press_delta = p_bar - 1.021 |
|
|
|
|
depth_m = press_delta * 10 |
|
|
|
|
return [depth_m,X,Y] |
|
|
|
|
|
|
|
|
|
def getWavelength(self,) -> 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|