You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
9.3 KiB
189 lines
9.3 KiB
from pathlib import *
|
|
from tools.mylogger import log
|
|
from configuration import Configuration
|
|
from receive import MyServer,MyThreadingTCPServer
|
|
|
|
from myconfig import MyConfig,DeviceType
|
|
from myconfig import DEVICE_ID ,FILE_MARK,YAML_FILE_NAME,CURRENT_DIR,DATA_DIR,CAL_DIR
|
|
from myconfig import BEGIN_WAVELENGTH,END_WAVELENGTH,INTERVAL,ROWFACTOR
|
|
|
|
from awrams import AwramsHandle
|
|
|
|
IP = ""
|
|
PORT = 7887
|
|
ADDRESS = (IP, PORT) # 绑定地址
|
|
|
|
class MyApp(object):
|
|
def __init__(self,):
|
|
log.info(f"******** Awarms server initiate.... *********", __name__, "", "")
|
|
self.device_type = DeviceType.AWRAMS.name
|
|
self.mycfg = MyConfig() # 传入 cfg retrieve 的yml文件
|
|
|
|
# 配置反演需要的参数 波长 间隔 , rowFactor
|
|
self.retrieve = self.mycfg.get_retrieve() # 读retrieve.yml
|
|
log.info(f"Retrieve: {self.retrieve}", __name__, "", "")
|
|
|
|
# log.info(f"syscfg: {device}", __name__, "", "")
|
|
self.mycfg.setDeviceType( DeviceType.AWRAMS )
|
|
self.sensor_cfg = self.mycfg.read_yaml() # 读config.yml, 多个device_id 配置
|
|
log.info(f"Current Device: {self.device_type} ", __name__, "", "")
|
|
log.info(f"Sensor cfg: {self.sensor_cfg}", __name__, "", "")
|
|
|
|
|
|
self.cal_cfg = {}
|
|
|
|
cfgr = Configuration( )
|
|
cfgr.setDeviceType(self.device_type)
|
|
cfgr.setSystemCfgDict(self.sensor_cfg)
|
|
|
|
for k,v in self.sensor_cfg.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__, "", "")
|
|
self.cal_cfg.update({k:cfgr.cal_configuration})
|
|
|
|
log.debug(f"cal_cfg: {self.cal_cfg}", __name__, "", "")
|
|
log.warning(f"cal_cfg 2: {self.cal_cfg[2].keys()}", __name__, "", "")
|
|
# log.warning(f"cal_cfg 3: {self.cal_cfg[3].keys()}", __name__, "", "")
|
|
log.info(f"传感器配置文件读取成功", __name__, "", "")
|
|
|
|
pass
|
|
|
|
def init_data_process(self, mode = 0):
|
|
''' 多个handle '''
|
|
self.awrams_handle = { }
|
|
for k,v in self.cal_cfg.items():
|
|
ah = AwramsHandle( deviceid=k, cfg=self.sensor_cfg[k], calcfg=v)
|
|
self.awrams_handle.update( {k:ah } )
|
|
|
|
def run_server(self,):
|
|
# 启动接受服务器
|
|
log.info(f"启动接受服务器, IP: {IP} , Port:{PORT} ", __name__, "", "")
|
|
|
|
server_ = MyThreadingTCPServer(ADDRESS, MyServer, cfg=self.cal_cfg, retrieve = self.retrieve ,awrams_handle=self.awrams_handle )
|
|
|
|
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)
|
|
|
|
pass
|
|
|
|
|
|
if __name__ == "__main__":
|
|
log.info(f"******** Yiwin Awarms server initiate.... *********", __name__, "", "")
|
|
app = MyApp()
|
|
app.init_data_process( )
|
|
app.run_server()
|
|
|
|
# init_config()
|
|
# run_server()
|
|
|
|
# #######################################
|
|
# device_id = DEVICE_ID # 多个设备
|
|
# device_type = DeviceType.AWRAMS.name
|
|
# mycfg = MyConfig()
|
|
|
|
# # 配置反演需要的参数 波长 间隔
|
|
# retrieve = mycfg.get_retrieve()
|
|
# log.info(f"Retrieve: {retrieve}", __name__, "", "")
|
|
|
|
# # log.info(f"syscfg: {device}", __name__, "", "")
|
|
# mycfg.setDeviceType(DeviceType.AWRAMS)
|
|
# 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}", __name__, "", "")
|
|
# log.warning(f"cal_cfg 2: {cal_cfg[2].keys()}", __name__, "", "")
|
|
# log.warning(f"cal_cfg 3: {cal_cfg[3].keys()}", __name__, "", "")
|
|
# log.info(f"传感器配置文件读取成功", __name__, "", "")
|
|
|
|
# # ????????????
|
|
# # 不同设备类型接收不同,修改receive.py
|
|
# # 不同数据裂隙数据处理不同,修改AWRAMS.py
|
|
# # 分支:服务器:处理不同的文件夹 awramse surface profile c
|
|
# # 桌面: 服务器的, 读取标准trios文件处理的 -- 暂不考虑
|
|
|
|
# # 启动接受服务器
|
|
# 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)
|
|
|
|
|
|
|
|
|
|
|
|
# r= Ramses()
|
|
# p = Path("0.bin")
|
|
# buf = r.read_bin(p)
|
|
# print(buf.hex())
|
|
|
|
# buf_str= "\
|
|
# 23a0000007fefe0a0781067d067d068e0693069c069c06b006b506cb06e40619076607e1076c081509cd09bb0a7d0bee0b1d0c6d0cca0ca40ddc0f30135b18b4224d320e43f852c8\
|
|
# 23a0000006fefe17639c71c97c9484bb89358be98e5d98b1a37eadccb66abd26be31b97db124aa18a3f29c0499349735968e93a48eea8a028bc28cec8d048f1c92c096de9ab99d43\
|
|
# 23a0000005fefee0a157a9ecb1b1b97dc034c507c741c7d2c65ec550c20dbde9b535ae56a60a9e2296cd8ee887278129798170c669b16503632e61605f3a5def5a8e5862561154be\
|
|
# 23a0000004fefe3c51f54dda4a0c48634595426a3f5a3cc539903767362b36cc351f356634b633fc32c4310630fb2ec32fe63199349037e03ac03dc03eae3c303a9639d13a413da7\
|
|
# 23a0000003fefe97412746bc49404caa4dc54d374ca646d63bde326b332739e43c503d2b3c363aca37ef342d32c22f782d1d2bd328ec250222101e691b2b1a7119d3184018fa174d\
|
|
# 23a0000002fefed3177a17e3160616f81423149313f11233126711d8103b10a40f160f8a0efb0d580d660c6f0bd80aa10a580a000ab4099b0994097109e2082c087a0736072c077d\
|
|
# 23a0000001fefe2a071e071607140718071e073c074d076a076e076b076007670763076c0760075c073d07350724071207fb06ef06d706cc06b706a506960684067b0672066306a2\
|
|
# 23a0000000fefe58065406500642064e064306470642063f064806410644064306430641064206460640063c063e063e063d064406430644063c063c063c063c06400640064906ed\
|
|
# 23a0000007fefe0a071b071c07260737073e0749075907650774078b07c0072c08e3082b0ada0be80d9c107b147318931ae51add1a271a77192f1bfb1d99207c265c30c738f03d53\
|
|
# 23a0000006fefe07438f489d4d8452d957945cff639171a5832a97deab7fbe09c86cc5acb9d5ab299e90915287de7f8b7ae275ed6f056aff664f662665bc63936335655767926879\
|
|
# 23a0000005fefec269206d3e724377fe7b7a8050831f85b68637881689e4884787008580823d7f887bee773d7496702a6cde654c5f895a1f570d5416514d4e9d4bde4897468c44c3\
|
|
# 23a0000004fefe71421640db3dc83bbb39533777346c31b92e912c152b5b2aff292129e727cb26d925fd249223b4214020da1fe91ff41f28209420dc201520071e671c221c8d1cfe\
|
|
# 23a0000003fefecd1dd31fe72164235924cb24b924f72331211e1ca018ef19221d121f621fe91e081ed51c761b311a2f193c18651788166015a013de11d1106e1041101810e80f2e\
|
|
# 23a0000002fefee50fd90fbc0f6d0ff70e610ee00d930d460de40c900c450c010cbd0b7c0b480bfc0aab0a2c0a9e094d092b09fb08d008a208990881087d083908e6078d07660747\
|
|
# 23a0000001fefe5b075a07500751074d074e0751075d076807730788077e077c077c07810777077a076c0765075c075607480740073607270723070d070d070b07ff06fd06f0062f\
|
|
# 23a0000000fefef606f106ed06f506ef06eb06f106ec06f006e906e806ed06e606ef06e506ea06ec06ee06eb06e906ee06f006ef06ea06e906e606e606e606ec06ea06ea06f506f2\
|
|
# 23a0000007fefe0605830479047d047e04810482048204850487048b048c04850487048c049304950498049c04a804a904b604b804c604d004e104f104190546059805ff059a06bb\
|
|
# 23a0000006fefe90073209ea0b7610c117cc22b2324a487b645e8798acf2c927d28dc1f2a1ac809664804e543d7a308327a321d81dab1b0f1bca1bb41dba2098243329382e773335\
|
|
# 23a0000005fefeca38213e544329486f4c1c500653335592564f577d573b57a556b4557e540a534451424f004d714a9b47994458410e3e9c3af8368c33b630982eca2c052b3429ae\
|
|
# 23a0000004fefe632763255a234821321f0e1d061b291983171e16d814a91379124b1138104b0f610e990dd80c240c880bfc0a7b0af8097709020990082508de07c507ba07a50762\
|
|
# 23a0000003fefe950781076407460727070007d306ab066e06270605060d0614061306fe05e805d105b405a00586057105630549053d0528051105fd04f304ee04e404dc04dd04c3\
|
|
# 23a0000002fefed804d904d004c604bf04b904b904b104a804a604a6049d04980496048f04970491048c04880486047e0484047a047d047b047c0478047a04760476047004700430\
|
|
# 23a0000001fefe6f0474046c046d0472046d047304750470046e04760472046f047604700473046f04730470047504700470046d046b047004710470046e046d046a046b046904e4\
|
|
# 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)
|
|
|
|
|
|
|