def _CreateUIAPIStateMsg(self, uiAPIState, frameSeq, uiImage, screenOri, gameState=None): msg = common_pb2.tagMessage() msg.eMsgID = common_pb2.MSG_UI_STATE_IMG msg.stUIAPIState.eUIState = uiAPIState msg.stUIAPIState.stUIImage.uFrameSeq = frameSeq msg.stUIAPIState.stUIImage.nHeight = uiImage.shape[0] msg.stUIAPIState.stUIImage.nWidth = uiImage.shape[1] msg.stUIAPIState.stUIImage.byImageData = uiImage.tobytes() if gameState is None: msg.stUIAPIState.eGameState = common_pb2.PB_STATE_NONE else: msg.stUIAPIState.eGameState = gameState if screenOri == UI_SCREEN_ORI_LANDSCAPE: msg.stUIAPIState.eScreenOri = common_pb2.PB_SCREEN_ORI_LANDSCAPE else: msg.stUIAPIState.eScreenOri = common_pb2.PB_SCREEN_ORI_PORTRAIT msgBuff = msg.SerializeToString() return msgBuff
def _CreateAIServiceStateMsg(self, serviceStateResult): msg = common_pb2.tagMessage() msg.eMsgID = common_pb2.MSG_SERVICE_STATE msg.stServiceState.nServiceState = serviceStateResult msgBuff = msg.SerializeToString() return msgBuff
def SendAction(self, actionID, actionData, frameSeq=-1): """ Send action to remote(client) :param actionID: the self-defined action ID :param actionData: the context data of the action ID :param frameSeq: the frame sequence, default is -1 :return: """ if not self.__initialized: LOG.warning('Call Initialize first!') return False actionData['msg_id'] = MSG_ID_AI_ACTION actionData['action_id'] = actionID actionBuff = msgpack.packb(actionData, default=mn.encode, use_bin_type=True) msg = common_pb2.tagMessage() msg.eMsgID = common_pb2.MSG_AI_ACTION msg.stAIAction.nFrameSeq = frameSeq msg.stAIAction.byAIActionBuff = actionBuff #msgBuff = msg.SerializeToString() if LOG_REGACTION.level <= logging.DEBUG: actionStr = json.dumps(actionData) LOG_REGACTION.debug('{}||action||{}'.format(frameSeq, actionStr)) self.__connect.SendMsg(msg, BusConnect.PEER_NODE_SDKTOOL) ret = self.__connect.SendMsg(msg, BusConnect.PEER_NODE_MC) if ret != 0: LOG.warning('TBus Send To MC return code[{0}]'.format(ret)) return False return True
def _CreatePBRestartMsg(): msg = common_pb2.tagMessage() # Fill the message msg.eMsgID = common_pb2.MSG_RESTART # Serialize the message msgBuff = msg.SerializeToString() return msgBuff
def _CreatePBPauseAgentMsg(): msg = common_pb2.tagMessage() # Fill the message msg.eMsgID = common_pb2.MSG_PAUSE_AGENT # Serialize the message msgBuff = msg.SerializeToString() return msgBuff
def _CreatePBRestoreAgentMsg(self): msg = common_pb2.tagMessage() # Fill the message msg.eMsgID = common_pb2.MSG_RESTORE_AGENT # Serialize the message msgBuff = msg.SerializeToString() return msgBuff
def RecvMsg(self): msgBuff = tbus.RecvFrom(self.__mcAddr) if msgBuff is not None: msg = common_pb2.tagMessage() msg.ParseFromString(msgBuff) #msg = msgpack.unpackb(msgBuff, encoding='utf-8') return msg return None
def UpdateEnvState(self, stateCode, stateDescription): """ Send agent state msg to MC when state change """ stateMsg = common_pb2.tagMessage() stateMsg.eMsgID = common_pb2.MSG_AGENT_STATE stateMsg.stAgentState.eAgentState = int(stateCode) stateMsg.stAgentState.strAgentState = stateDescription return self.__connect.SendMsg(stateMsg, BusConnect.PEER_NODE_MC)
def _CreatePBNewTaskMsg(): msg = common_pb2.tagMessage() # Fill the message msg.eMsgID = common_pb2.MSG_NEW_TASK msg.stNewTask.strTaskID = IO_SERVICE_CONTEXT['task_id'] # Serialize the message msgBuff = msg.SerializeToString() return msgBuff
def _CreateRestartResultMsg(self, result): msg = common_pb2.tagMessage() msg.eMsgID = common_pb2.MSG_RESTART_RESULT if result == 0: msg.stRestartResult.eRestartResult = common_pb2.PB_RESTART_RESULT_SUCCESS else: msg.stRestartResult.eRestartResult = common_pb2.PB_RESTART_RESULT_FAILURE msgBuff = msg.SerializeToString() return msgBuff
def _CreateTaskReportMsg(self, taskStatus): msg = common_pb2.tagMessage() msg.eMsgID = common_pb2.MSG_TASK_REPORT if taskStatus == TASK_STATUS_INIT_SUCCESS: msg.stTaskReport.eTaskStatus = common_pb2.PB_TASK_INIT_SUCCESS elif taskStatus == TASK_STATUS_INIT_FAILURE: msg.stTaskReport.eTaskStatus = common_pb2.PB_TASK_INIT_FAILURE msgBuff = msg.SerializeToString() return msgBuff
def _CreateServiceRegisterMsg(self, regType): msg = common_pb2.tagMessage() msg.eMsgID = common_pb2.MSG_SERVICE_REGISTER if regType == SERVICE_REGISTER: msg.stServiceRegister.eRegisterType = common_pb2.PB_SERVICE_REGISTER elif regType == SERVICE_UNREGISTER: msg.stServiceRegister.eRegisterType = common_pb2.PB_SERVICE_UNREGISTER msg.stServiceRegister.eServiceType = common_pb2.PB_SERVICE_TYPE_MC msgBuff = msg.SerializeToString() return msgBuff
def _CreatePBTestIDMsg(testID, gameID, gameVersion): msg = common_pb2.tagMessage() # Fill the message msg.eMsgID = common_pb2.MSG_TEST_ID msg.stTestID.strTestID = testID msg.stTestID.nGameID = gameID msg.stTestID.strGameVersion = gameVersion # Serialize the message msgBuff = msg.SerializeToString() return msgBuff
def SendTrainProgress(self, progress): """ Report training progress to MC """ self.__logger.info('im train progress: %d', progress) stateMsg = common_pb2.tagMessage() stateMsg.eMsgID = common_pb2.MSG_IM_TRAIN_STATE stateMsg.stIMTrainState.nProgress = progress if self.__connect.SendMsg(stateMsg, BusConnect.PEER_NODE_MC) == 0: return True return False
def _CreatePBSrcImgMsg(frameSeq, frame, extend, deviceIndex=0): msg = common_pb2.tagMessage() # Fill the message msg.eMsgID = common_pb2.MSG_SRC_IMAGE_INFO msg.stSrcImageInfo.uFrameSeq = frameSeq msg.stSrcImageInfo.nHeight = frame.shape[0] msg.stSrcImageInfo.nWidth = frame.shape[1] msg.stSrcImageInfo.byImageData = frame.tobytes() msg.stSrcImageInfo.uDeviceIndex = deviceIndex msg.stSrcImageInfo.strJsonData = extend # Serialize the message msgBuff = msg.SerializeToString() return msgBuff
def RecvMsg(self, peerNode): """ Recive and unserialize msg from MC channel """ peerNodeAddr = self._GetPeerNodeAddr(peerNode) if peerNodeAddr is None: self.__logger.error( 'Recv error: peer node {} address is None!'.format(peerNode)) return None self.__logger.debug( "receive the message from the address:{}".format(peerNodeAddr)) msgBuff = tbus.RecvFrom(peerNodeAddr) if msgBuff is not None: msg = common_pb2.tagMessage() msg.ParseFromString(msgBuff) #msg = msgpack.unpackb(msgBuff, encoding='utf-8') return msg return None
def _CreatePBChangeGameStateMsg(): gameState = IO_SERVICE_CONTEXT['game_state'] msg = common_pb2.tagMessage() # Fill the message msg.eMsgID = common_pb2.MSG_CHANGE_GAME_STATE if gameState == GAME_STATE_NONE: msg.stChangeGameState.eGameState = common_pb2.PB_STATE_NONE elif gameState == GAME_STATE_UI: msg.stChangeGameState.eGameState = common_pb2.PB_STATE_UI elif gameState == GAME_STATE_START: msg.stChangeGameState.eGameState = common_pb2.PB_STATE_START elif gameState == GAME_STATE_OVER: msg.stChangeGameState.eGameState = common_pb2.PB_STATE_OVER elif gameState == GAME_STATE_MATCH_WIN: msg.stChangeGameState.eGameState = common_pb2.PB_STATE_MATCH_WIN else: LOG.warning('Unhandled GameState[%s]', gameState) return # Serialize the message msgBuff = msg.SerializeToString() return msgBuff
def _create_pb_get_source_msg(): msg = common_pb2.tagMessage() msg.eMsgID = common_pb2.MSG_PROJECT_SOURCE msg_buff = msg.SerializeToString() return msg_buff