#!/users/dsc/bin/Python3 #-*-coding: UTF-8 -*- import IcePy import sys,traceback,Ice,os import MessageICE_ice import time import logging from logging.handlers import RotatingFileHandler module_name="ptest1"#本模块名 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) class Ptest1(MessageICE_ice._M_baosight.MessageICE): def SendDataShort(self, eventNo, seq, length, context=None): logger.info("SendDataShort eventNo:"+str(eventNo)) logger.info(seq) def SendDataLong(self, eventNo, seq, length, context=None): logger.info("eventNo:"+str(eventNo)) def TimeNotify(self, eventNo, seq, length, context=None): logger.info("TimeNotify eventNo:"+str(eventNo)) with Ice.initialize(sys.argv) as communicator: base = communicator.stringToProxy("baosight/{}".format(target_module_name)).ice_oneway().ice_secure(False) proxy = _M_baosight.MessageICEPrx.uncheckedCast(base) if not proxy: logging.error("invalid proxy") sys.exit(1) # seq= ("{} 2 {}".format(module_name,target_module_name)).decode("utf-8") seq=b'Test py - c++' proxy.SendDataShort(eventNo, seq,len(seq)) if __name__ == '__main__': default={ "identity":"baosight/{}".format(module_name),#identity "adapterName":"DefaultAdapter", "endpoints":"tcp", "entry":Ptest1() } 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()