107 lines
3.9 KiB
Python
107 lines
3.9 KiB
Python
#!/users/dsc/bin/Python3
|
||
#-*-coding: UTF-8 -*-
|
||
from asyncio.log import logger
|
||
from pickle import TRUE
|
||
from xmlrpc.client import boolean
|
||
import IcePy
|
||
import sys,traceback,Ice,os
|
||
import MessageICE_ice
|
||
import time
|
||
import logging
|
||
from logging.handlers import RotatingFileHandler
|
||
from mntest import mnTest,mnTrain
|
||
# from pyml_setting import LOGMake
|
||
module_name="pyml"#本模块名
|
||
target_module_name="ProxyTest"#ice发送目标模块名
|
||
_M_baosight = Ice.openModule('baosight')
|
||
log_file='/iPlature/log/{}.log'.format(module_name)
|
||
max_bytes=10* 1024 * 1024#日志大小10M
|
||
backup_count=20#日志数量
|
||
|
||
|
||
logger = logging.getLogger()
|
||
logger.setLevel(logging.INFO)
|
||
formatter = logging.Formatter('%(asctime)s|%(levelname)s|%(message)s')
|
||
filehandler = logging.handlers.RotatingFileHandler(log_file, mode='a', maxBytes=max_bytes, backupCount=backup_count)#每 1024Bytes重写一个文件,保留2(backupCount) 个旧文件
|
||
filehandler.setFormatter(formatter)
|
||
logger.addHandler(filehandler)
|
||
# logger=LOGMake.get_log(module_name)
|
||
flag1=False
|
||
class PymlICE(MessageICE_ice._M_baosight.MessageICE):
|
||
"""_PymlICE_,继承于 MessageICE_ice._M_baosight.MessageICE
|
||
|
||
Args:
|
||
MessageICE_ice (_type_): _ICE通信_
|
||
主方法:
|
||
1.SendDataShort接收ICE信息(常用);
|
||
2.SendDataLong接收ICE信息(几乎不用);
|
||
3.TimeNotify接收appgtm的定时调用,配置在crgs.cfg
|
||
"""
|
||
def SendDataShort(self, eventNo, seq, length, context=None):
|
||
"""_SendDataShort_
|
||
|
||
Args:
|
||
eventNo (_type_): _事件号_,1:训练;2:预测
|
||
seq (_type_): _模型参数_:1.模型信息;2.数据信息
|
||
length (_type_): _数据长度_
|
||
context (_type_, optional): _description_. Defaults to None.
|
||
"""
|
||
logger.info("SendDataShort eventNo:"+str(eventNo)+str(seq))
|
||
# if(eventNo==1):
|
||
# logger.info("mnTrain()")
|
||
# logger.info(mnTrain())
|
||
# elif(eventNo==2):
|
||
# logger.info("mnTest()")
|
||
# res=mnTest()
|
||
# logger.info(str(res))
|
||
# else:
|
||
# logger.info("undefined eventno!")
|
||
|
||
def SendDataLong(self, eventNo, seq, length, context=None):
|
||
logger.info("eventNo:"+str(eventNo))
|
||
|
||
def TimeNotify(self, eventNo, seq, length, context=None):
|
||
# global flag1
|
||
logger.info("TimeNotify eventNo:"+str(eventNo))
|
||
# seq=b'Send2Proxy:Test!'
|
||
# if(flag1):
|
||
# self.Send2Proxy("ProxyTest",2, seq, len(seq))
|
||
# else:
|
||
# flag1=TRUE
|
||
# self.Send2Proxy("ProxyTest",1, seq, len(seq))
|
||
|
||
|
||
def Send2Proxy(self, proxy_name,eventNo, seq, length, context=None):
|
||
with Ice.initialize(sys.argv) as communicator:
|
||
base = communicator.stringToProxy("baosight/{}".format(proxy_name)).ice_oneway().ice_secure(False)
|
||
proxy = _M_baosight.MessageICEPrx.uncheckedCast(base)
|
||
if not proxy:
|
||
logger.error("invalid proxy")
|
||
sys.exit(1)
|
||
logger.info("send {seq} to {proxy_name}".format(seq=seq,proxy_name=proxy_name))
|
||
proxy.SendDataShort(eventNo, seq, length)
|
||
|
||
|
||
|
||
|
||
|
||
if __name__ == '__main__':
|
||
default={
|
||
"identity":"baosight/{}".format(module_name),#identity
|
||
"adapterName":"DefaultAdapter",
|
||
"endpoints":"tcp",
|
||
"entry":PymlICE()
|
||
}
|
||
with Ice.initialize(sys.argv) as communicator:
|
||
print("start")
|
||
properties = communicator.getProperties()
|
||
adapter = communicator.createObjectAdapterWithEndpoints(default["adapterName"],default["endpoints"])
|
||
identity = properties.getProperty("Identity")
|
||
if identity == None or identity == "":
|
||
identity = default["identity"]
|
||
print("identity" + identity)
|
||
id = Ice.stringToIdentity(identity)
|
||
adapter.add(default["entry"], id)
|
||
adapter.activate()
|
||
communicator.waitForShutdown()
|