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.
232 lines
11 KiB
232 lines
11 KiB
from pathlib import Path, PurePath
|
|
from tools.mylogger import log
|
|
from readcal import ReadCal
|
|
from myconfig import CAL_DIR, DATA_DIR, FILE_MARK, DeviceType, RamsesFunc
|
|
|
|
|
|
class Configuration:
|
|
def __init__(self, ) -> None:
|
|
log.info(f"ConfigAWRAMS init: ", __name__, "", "")
|
|
self.device_type = None
|
|
self.configuration =None
|
|
self.cal_configuration = {}
|
|
pass
|
|
|
|
def setDeviceType(self, device_type:str) -> None:
|
|
self.device_type = device_type.lower()
|
|
pass
|
|
|
|
def setSystemCfgDict(self, cfg:dict) -> None:
|
|
self.configuration = cfg
|
|
log.info(f"self.configuration : {self.configuration} ", __name__, "setSystemCfgDict", "")
|
|
pass
|
|
|
|
def getCalConfiguration(self) -> None:
|
|
if self.device_type == None:
|
|
self.cal_configuration = None
|
|
if self.configuration == None:
|
|
self.cal_configuration =None
|
|
|
|
for k,v in self.configuration.items():
|
|
|
|
if v["SN"] == "" or v['FUNC']=="":
|
|
pass
|
|
else:
|
|
self.cal_configuration.update( {v["FUNC"]:{}} )
|
|
self.cal_configuration[v["FUNC"]].update( {"SN":v['SN']} )
|
|
self.cal_configuration[v["FUNC"]].update( {"FUNC":v['FUNC']} )
|
|
|
|
self.__init_configuration_basic()
|
|
self.__init_configuration_cal()
|
|
self.__init_configuration_IP_SAM()
|
|
pass
|
|
|
|
def __init_configuration_basic(self ) -> None:
|
|
for k in self.cal_configuration.keys():
|
|
sn = self.cal_configuration[k]["SN"]
|
|
if self.__isSamIniExisted(sn):
|
|
self.cal_configuration[k].update({ "TYPE" : "SAM" })
|
|
self.cal_configuration[k].update({ "samsn" : sn })
|
|
self.cal_configuration[k].update({ "inifile" : "SAM_"+sn+".ini" })
|
|
self.cal_configuration[k].update({ "calfile" : "Cal_SAM_"+sn+".dat" })
|
|
self.cal_configuration[k].update({ "calaqfile" : "CalAQ_SAM_"+sn+".dat" })
|
|
self.cal_configuration[k].update({ "backfile" : "Back_SAM_"+sn+".dat" })
|
|
if self.__isSamIPIniExisted(sn):
|
|
self.cal_configuration[k].update({ "TYPE" : "SAMIP" })
|
|
samsn = self.__getSAMSN(sn)
|
|
if samsn== None:
|
|
log.warning(f"Cannot get samsn from Sensor: {sn}", __name__, "", "" )
|
|
raise Exception(f"Cannot get samsn from Sensor: {sn}")
|
|
self.cal_configuration[k].update({ "samsn" : samsn })
|
|
self.cal_configuration[k].update({ "inifile" : "SAMIP_"+sn+"_ALL.ini" })
|
|
self.cal_configuration[k].update({ "calfile" : "Cal_SAM_"+samsn+".dat" })
|
|
self.cal_configuration[k].update({ "calaqfile" : "CalAQ_SAM_"+samsn+".dat" })
|
|
self.cal_configuration[k].update({ "backfile" : "Back_SAM_"+samsn+".dat" })
|
|
if not self.__isSamIniExisted(sn) and not self.__isSamIPIniExisted(sn):
|
|
log.warning(f"Cannot find ini file for Sensor: {sn}", __name__, "", "" )
|
|
raise Exception(f"Cannot find ini file for Sensor: {sn}")
|
|
|
|
pass
|
|
|
|
def __init_configuration_cal(self ) -> None:
|
|
# self.cfgtool = Config()
|
|
for k in self.cal_configuration.keys():
|
|
sn = self.cal_configuration[k]["SN"]
|
|
# Device File
|
|
calpath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[k]["calfile"])
|
|
if calpath.exists( ):
|
|
res = ReadCal.read_columns_set_by_mark( calpath, FILE_MARK, 1 )
|
|
self.cal_configuration[k].update({ "cal" : res[1][0] })
|
|
calaqpath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[k]["calaqfile"])
|
|
if calaqpath.exists( ):
|
|
res = ReadCal.read_columns_set_by_mark( calaqpath, FILE_MARK, 1 )
|
|
self.cal_configuration[k].update({ "calaq" : res[1][0] })
|
|
backpath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[k]["backfile"])
|
|
if calaqpath.exists( ):
|
|
res = ReadCal.read_columns_set_by_mark( backpath, FILE_MARK, 1,2 )
|
|
self.cal_configuration[k].update({ "b0" : res[1][0] })
|
|
self.cal_configuration[k].update({ "b1" : res[1][1] })
|
|
pass
|
|
|
|
|
|
|
|
def __init_configuration_IP_SAM(self ) -> None:
|
|
# self.cfgtool = Config()
|
|
for j in self.cal_configuration.keys():
|
|
# log.debug(f"__init_configuration_IP_SAM {j}", __name__, "", "" )
|
|
inipath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[j]["inifile"])
|
|
# log.debug(f"__init_configuration_IP_SAM {inipath}", __name__, "", "" )
|
|
sam = ReadCal.readSAMCalFromIni(inipath)
|
|
# log.debug(f"__init_configuration_IP_SAM {sam}", __name__, "", "" )
|
|
for k,v in sam.items():
|
|
self.cal_configuration[j].update({ k : v })
|
|
if self.cal_configuration[j]["TYPE"] == "SAMIP":
|
|
ip = ReadCal.readIPCalFromIni(inipath)
|
|
for k,v in ip.items():
|
|
self.cal_configuration[j].update({ k : v })
|
|
|
|
def __isSamIniExisted(self,sn) ->bool:
|
|
sn_0 = "SAM_"+str(sn)+".ini"
|
|
path_ = CAL_DIR.joinpath(self.device_type.lower(), sn_0)
|
|
if path_.exists():
|
|
return True
|
|
return False
|
|
|
|
|
|
def __isSamIPIniExisted(self,sn) ->bool:
|
|
sn_0 = "SAMIP_"+str(sn)+"_ALL.ini"
|
|
path_ = CAL_DIR.joinpath(self.device_type.lower(), sn_0)
|
|
if path_.exists():
|
|
return True
|
|
return False
|
|
|
|
def __getSAMSN(self,sn) -> None:
|
|
sn_0 = "SAMIP_"+str(sn)+"_ALL.ini"
|
|
path_ = CAL_DIR.joinpath(self.device_type.lower(), sn_0)
|
|
# path_ = DATA_DIR.joinpath(self.device.lower(), CAL_DIR, sn_0)
|
|
samsn = ReadCal.readSamSNFromIni( path_ )
|
|
if samsn == None:
|
|
return None
|
|
return samsn
|
|
pass
|
|
|
|
# def __init2__(self, device:str, **kwargs) -> None:
|
|
# """
|
|
# get cal parameter for every sensor
|
|
# para : {"1":{"SN":"85B5","FUNC","Lsky"},"2":{},"3":{}}
|
|
# """
|
|
# # log.info(f"ProcessAWRAMS kwargs: {kwargs}", __name__, "", "")
|
|
# # log.info(f"len: { len(kwargs)}", __name__, "", "")
|
|
|
|
# if len(kwargs) != 3:
|
|
# log.warning(f" pass a wrong para to ProcessAWRAMS {kwargs}", __name__, "", "")
|
|
# self.device = device.lower() # surface profile awrams
|
|
# self.ramses = {}
|
|
|
|
# # 生成标定文件 { }
|
|
# for k,v in kwargs.items():
|
|
# self.ramses.update( {v["FUNC"]:{}} )
|
|
# self.ramses[v["FUNC"]].update( {"SN":v['SN']} )
|
|
# self.ramses[v["FUNC"]].update( {"FUNC":v['FUNC']} )
|
|
# pass
|
|
# log.debug(f" ===== {self.ramses}",__name__, "", "" )
|
|
|
|
|
|
# # if kwargs.__contains__("1"):
|
|
# # self.ramses.append( self.cfgtool.getDictByAttr("ramses"))
|
|
# # self.cfgtool.set_attr(self.ramses[1],kwargs['1']"SN",kwargs['1'])
|
|
# # if kwargs.__contains__("2"):
|
|
# # self.ramses.append( self.cfgtool.getDictByAttr("ramses"))
|
|
# # self.cfgtool.set_attr(self.ramses[2],"SN",kwargs['1'])
|
|
# # if kwargs.__contains__("3"):
|
|
# # self.ramses.append( self.cfgtool.getDictByAttr("ramses"))
|
|
# # self.cfgtool.set_attr(self.ramses[3],"SN",kwargs['1'])
|
|
|
|
# self.__init_configuration_basic()
|
|
# self.__init_configuration_cal()
|
|
# self.__init_configuration_IP_SAM()
|
|
|
|
# # log.info(f"ProcessAWRAMS after initiate: {kwargs}", __name__, "", "")
|
|
|
|
# def __init_configuration_basic2(self ) -> None:
|
|
# # self.cfgtool = Config()
|
|
# for k in self.ramses.keys():
|
|
# sn = self.ramses[k]["SN"]
|
|
# if self.__isSamIniExisted(sn):
|
|
# self.ramses[k].update({ "TYPE" : "SAM" })
|
|
# self.ramses[k].update({ "samsn" : sn })
|
|
# self.ramses[k].update({ "inifile" : "SAM_"+sn+".ini" })
|
|
# self.ramses[k].update({ "calfile" : "Cal_SAM_"+sn+".dat" })
|
|
# self.ramses[k].update({ "calaqfile" : "CalAQ_SAM_"+sn+".dat" })
|
|
# self.ramses[k].update({ "backfile" : "Back_SAM_"+sn+".dat" })
|
|
# if self.__isSamIPIniExisted(sn):
|
|
# self.ramses[k].update({ "TYPE" : "SAMIP" })
|
|
# samsn = self.__getSAMSN(sn)
|
|
# if samsn== None:
|
|
# log.warning(f"Cannot get samsn from Sensor: {sn}", __name__, "", "" )
|
|
# raise Exception(f"Cannot get samsn from Sensor: {sn}")
|
|
# self.ramses[k].update({ "samsn" : samsn })
|
|
# self.ramses[k].update({ "inifile" : "SAMIP_"+sn+"_ALL.ini" })
|
|
# self.ramses[k].update({ "calfile" : "Cal_SAM_"+samsn+".dat" })
|
|
# self.ramses[k].update({ "calaqfile" : "CalAQ_SAM_"+samsn+".dat" })
|
|
# self.ramses[k].update({ "backfile" : "Back_SAM_"+samsn+".dat" })
|
|
# if not self.__isSamIniExisted(sn) and not self.__isSamIPIniExisted(sn):
|
|
# log.warning(f"Cannot find ini file for Sensor: {sn}", __name__, "", "" )
|
|
# raise Exception(f"Cannot find ini file for Sensor: {sn}")
|
|
|
|
# pass
|
|
|
|
# def __init_configuration_cal2(self ) -> None:
|
|
# # self.cfgtool = Config()
|
|
# for k in self.ramses.keys():
|
|
# sn = self.ramses[k]["SN"]
|
|
# # Device File
|
|
# calpath = CAL_DIR.joinpath(self.device, self.ramses[k]["calfile"])
|
|
# if calpath.exists( ):
|
|
# res = Readfile.read_columns_set_by_mark( calpath, FILE_MARK, 1 )
|
|
# self.ramses[k].update({ "cal" : res[1][0] })
|
|
# calaqpath = CAL_DIR.joinpath(self.device, self.ramses[k]["calaqfile"])
|
|
# if calaqpath.exists( ):
|
|
# res = Readfile.read_columns_set_by_mark( calaqpath, FILE_MARK, 1 )
|
|
# self.ramses[k].update({ "calaq" : res[1][0] })
|
|
# backpath = CAL_DIR.joinpath(self.device, self.ramses[k]["backfile"])
|
|
# if calaqpath.exists( ):
|
|
# res = Readfile.read_columns_set_by_mark( backpath, FILE_MARK, 1,2 )
|
|
# self.ramses[k].update({ "b0" : res[1][0] })
|
|
# self.ramses[k].update({ "b1" : res[1][1] })
|
|
# pass
|
|
|
|
# def __init_configuration_IP_SAM2(self ) -> None:
|
|
# # self.cfgtool = Config()
|
|
# for j in self.ramses.keys():
|
|
# # log.debug(f"__init_configuration_IP_SAM {j}", __name__, "", "" )
|
|
# inipath = CAL_DIR.joinpath(self.device, self.ramses[j]["inifile"])
|
|
# # log.debug(f"__init_configuration_IP_SAM {inipath}", __name__, "", "" )
|
|
# sam = Readfile.readSAMCalFromIni(inipath)
|
|
# # log.debug(f"__init_configuration_IP_SAM {sam}", __name__, "", "" )
|
|
# for k,v in sam.items():
|
|
# self.ramses[j].update({ k : v })
|
|
# if self.ramses[j]["TYPE"] == "SAMIP":
|
|
# ip = Readfile.readIPCalFromIni(inipath)
|
|
# for k,v in ip.items():
|
|
# self.ramses[j].update({ k : v }) |