bug fix -rtv

server
esea_info 2 years ago
parent d3298fc7be
commit c783d8ac66
  1. 115
      app.py
  2. 4
      readcal.py
  3. 11
      receive.py

115
app.py

@ -22,7 +22,7 @@ class MyApp(object):
self.mycfg = MyConfig() # 传入 cfg retrieve 的yml文件 self.mycfg = MyConfig() # 传入 cfg retrieve 的yml文件
# 配置反演需要的参数 波长 间隔 , rowFactor # 配置反演需要的参数 波长 间隔 , rowFactor
self.retrieve = self.mycfg.get_retrieve() # 读retrieve.yml self.retrieve = self.mycfg.read_rtv_yaml() # 读retrieve.yml
log.info(f"Retrieve: {self.retrieve}", __name__, "", "") log.info(f"Retrieve: {self.retrieve}", __name__, "", "")
# log.info(f"syscfg: {device}", __name__, "", "") # log.info(f"syscfg: {device}", __name__, "", "")
@ -85,113 +85,7 @@ if __name__ == "__main__":
app.init_data_process( ) app.init_data_process( )
app.run_server() app.run_server()
# IP = ""
# PORT = 7887
# ADDRESS = (IP, PORT) # 绑定地址
# device_id = DEVICE_ID # 多个设备
# device_type = DeviceType.PROFILE.name
# retrieve = {}
# cal_cfg ={}
# def get_sys_cfg():
# log.info(f"开始获得配置", __name__, "", "")
# device_id = DEVICE_ID # 多个设备
# device_type = DeviceType.PROFILE.name
# mycfg = MyConfig()
# # 配置反演需要的参数 波长 间隔
# retrieve = mycfg.get_retrieve()
# log.info(f"Retrieve: {retrieve}", __name__, "", "")
# # log.info(f"syscfg: {device}", __name__, "", "")
# mycfg.setDeviceType(device_type)
# init_para = mycfg.read_yaml()
# log.info(f"Current Device: {device_type} ", __name__, "", "")
# log.info(f"Sensor: {init_para}", __name__, "", "")
# cal_cfg = {}
# cfgr = Configuration( )
# cfgr.setDeviceType(device_type)
# cfgr.setSystemCfgDict(init_para)
# for k,v in init_para.items():
# cfgr.setSystemCfgDict(v)
# try:
# cfgr.getCalConfiguration()
# except Exception as e:
# log.error(f"读取配置文件失败. \n {e}",__name__, "", "" )
# raise
# log.info(f"v: {cfgr.configuration}", __name__, "", "")
# cal_cfg.update({k:cfgr.cal_configuration})
# # log.warning(f"cal_cfg: {cal_cfg[2]}", __name__, "", "")
# log.warning( f"cal_cfg 2: {cal_cfg[2].keys()}", __name__, "", "")
# # log.warning( f"cal_cfg 2: {cal_cfg[2]}", __name__, "", "")
# # log.warning( f"cal_cfg 3: {cal_cfg[3].keys()}", __name__, "", "")
# log.info( f"传感器配置文件读取成功", __name__, "", "" )
# def run_server():
# # 启动接受服务器
# log.info(f"启动接受服务器, IP: {IP} , Port:{PORT} ", __name__, "", "")
# server_ = MyThreadingTCPServer(ADDRESS, MyServer, cfg=cal_cfg, retrieve = retrieve )
# try:
# server_.serve_forever()
# except KeyboardInterrupt:
# log.warning(" Ctrl+C 退出主程序 ",__name__, "", "")
# server_.server_close()
# except Exception as e:
# log.info(" 系统异常, 如下: \n ",__name__, "", "")
# log.info(e)
# def deal_info_sensor_bin(infobin, sensor_bin):
# profiler = Profiler()
# profiler.setSyscfg( cal_cfg )
# profiler.setRetrieve(retrieve)
# profiler.setDeviceID(2)
# profiler.setMeasureID(37)
# path_tuple = ( "data", 2, 37 )
# profiler.setOldFolder( path_tuple )
# # profiler.getInfoDict( )
# # profiler.transferFromOldFolder()
# # profiler.deleteOldFolder()
# # profiler.dealOneMeasurement_Profiler(profiler.new_folder)
# profiler.dealOneMeasurement_Profiler(profiler.old_folder)
# log.info(f" Complete Dealing one group.")
# if __name__ == "__main__":
# log.info(f"******** HandHeld server initiate.... *********", __name__, "", "")
# get_sys_cfg()
# run_server()
# profiler = Profiler()
# profiler.setSyscfg( cal_cfg )
# profiler.setRetrieve(retrieve)
# profiler.setDeviceID(2)
# profiler.setMeasureID(37)
# path_tuple = ( "data", 2, 37 )
# profiler.setOldFolder( path_tuple )
# # profiler.getInfoDict( )
# # profiler.transferFromOldFolder()
# # profiler.deleteOldFolder()
# # profiler.dealOneMeasurement_Profiler(profiler.new_folder)
# profiler.dealOneMeasurement_Profiler(profiler.old_folder)
# log.info(f" Complete Dealing one group.")
# r= Ramses()
# p = Path("0.bin")
# buf = r.read_bin(p)
# print(buf.hex())
# buf_str= "\ # buf_str= "\
# 23a0000007fefe0a0781067d067d068e0693069c069c06b006b506cb06e40619076607e1076c081509cd09bb0a7d0bee0b1d0c6d0cca0ca40ddc0f30135b18b4224d320e43f852c8\ # 23a0000007fefe0a0781067d067d068e0693069c069c06b006b506cb06e40619076607e1076c081509cd09bb0a7d0bee0b1d0c6d0cca0ca40ddc0f30135b18b4224d320e43f852c8\
# 23a0000006fefe17639c71c97c9484bb89358be98e5d98b1a37eadccb66abd26be31b97db124aa18a3f29c0499349735968e93a48eea8a028bc28cec8d048f1c92c096de9ab99d43\ # 23a0000006fefe17639c71c97c9484bb89358be98e5d98b1a37eadccb66abd26be31b97db124aa18a3f29c0499349735968e93a48eea8a028bc28cec8d048f1c92c096de9ab99d43\
@ -218,9 +112,4 @@ if __name__ == "__main__":
# 23a0000001fefe6f0474046c046d0472046d047304750470046e04760472046f047604700473046f04730470047504700470046d046b047004710470046e046d046a046b046904e4\ # 23a0000001fefe6f0474046c046d0472046d047304750470046e04760472046f047604700473046f04730470047504700470046d046b047004710470046e046d046a046b046904e4\
# 23a0000000fefe690470046e046b046c04680468046e0466046a046a0469046b046d04640466046c046c046b046a04660466046b046c046a046a0468046f046804740471048d0417\ # 23a0000000fefe690470046e046b046c04680468046e0466046a046a0469046b046d04640466046c046c046b046a04660466046b046c046a046a0468046f046804740471048d0417\
# " # "
# buf = bytearray.fromhex(buf_str)
# one_senor = buf
# r.setBuf(one_senor)
# r.setCalCfg(cal_cfg[2]["Lsky"])
# r.dealBuf()
# print(r.cal_cfg)

@ -18,7 +18,7 @@ class ReadCal():
mark : ['Spectrum','DATA'] mark : ['Spectrum','DATA']
default end with "[END]" default end with "[END]"
''' '''
log.info(f"read_column_1set_by_mark : \ log.debug(f"read_column_1set_by_mark : \
{fpath} , mark:{mark} , column:{column}", __name__, "", "") {fpath} , mark:{mark} , column:{column}", __name__, "", "")
# 处理mark args[0] = Spectrum # 处理mark args[0] = Spectrum
@ -122,7 +122,7 @@ class ReadCal():
@args : ['Spectrum','DATA'] @args : ['Spectrum','DATA']
default end with "[END]" default end with "[END]"
''' '''
log.info(f"read_column_1set_by_mark : \ log.debug(f"read_column_1set_by_mark : \
{fpath} , mark:{mark} , column:{column}", __name__, "", "") {fpath} , mark:{mark} , column:{column}", __name__, "", "")
# 处理mark args[0] = Spectrum # 处理mark args[0] = Spectrum

@ -42,10 +42,11 @@ conn_pool = []
# save_path = Path # save_path = Path
class MyTCPServer(TCPServer): class MyTCPServer(TCPServer):
def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True, cfg=None, calcfg=None, retrieve=None): def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True, cfg=None, calcfg=None, retrieve=None, profiler_handle = None):
self.cfg = cfg self.cfg = cfg
self.calcfg = calcfg self.calcfg = calcfg
self.retrieve = retrieve self.retrieve = retrieve
self.profiler_handle = profiler_handle
TCPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate=True ) TCPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate=True )
class MyThreadingTCPServer(ThreadingMixIn, MyTCPServer): pass class MyThreadingTCPServer(ThreadingMixIn, MyTCPServer): pass
@ -193,7 +194,7 @@ class DealData:
self.profiler_hdl = None self.profiler_hdl = None
pass pass
def deal(self, id: int, con: int, calcfg:dict , retrieve) -> None: # 取字典中的 payload def deal(self, id: int, con: int, calcfg:dict , retrieve,proflier_handle) -> None: # 取字典中的 payload
log.info(f" 接收到数据开始处理数据 device_id {id} ") log.info(f" 接收到数据开始处理数据 device_id {id} ")
self.device_id = id self.device_id = id
self.measure_id = con self.measure_id = con
@ -204,8 +205,7 @@ class DealData:
if self.calcfg == {}: if self.calcfg == {}:
self.calcfg = calcfg self.calcfg = calcfg
# self.cfg = cfg.get(self.device_id) # self.cfg = cfg.get(self.device_id)
if self.profiler_hdl is None: self.profiler_hdl:ProfilerHandle = proflier_handle.get(self.device_id)
self.profiler_hdl = ProfilerHandle( self.device_id, self.cfg, self.calcfg, retrieve) ##处理数据
fpath = Path.cwd() fpath = Path.cwd()
infopath = fpath.joinpath( 'data',self.device_id,self.measure_id,'info.bin') infopath = fpath.joinpath( 'data',self.device_id,self.measure_id,'info.bin')
@ -416,6 +416,7 @@ class MyServer(socketserver.BaseRequestHandler):
self.cfg =self.server.cfg self.cfg =self.server.cfg
self.calcfg =self.server.calcfg self.calcfg =self.server.calcfg
self.retrieve =self.server.retrieve self.retrieve =self.server.retrieve
self.profiler_handle = self.server.profiler_handle
self.sk: socket.socket = self.request self.sk: socket.socket = self.request
self.sensor = illumination_sensor(self.request) self.sensor = illumination_sensor(self.request)
self.dealData = DealData() self.dealData = DealData()
@ -483,7 +484,7 @@ class MyServer(socketserver.BaseRequestHandler):
if data_["packet_con"] == data_["packet_all"]: if data_["packet_con"] == data_["packet_all"]:
log.info(f'最后一帧数据已经收到并保存') log.info(f'最后一帧数据已经收到并保存')
# id 为传感器测量id ,con 测量序号 # id 为传感器测量id ,con 测量序号
self.dealData.deal(data_['id'], data_["con"], self.cfg,self.calcfg, self.retrieve) self.dealData.deal(data_['id'], data_["con"], self.cfg,self.calcfg, self.retrieve,self.profiler_handle)
pass pass
if time.time() - self.begin_time > TIMEOUT_SECOND: if time.time() - self.begin_time > TIMEOUT_SECOND:

Loading…
Cancel
Save