def disableScreen(self): if (Configuration.isOpenDinguX()): return os.system('echo 0 > /proc/jz/backlight') self.displayDark = True TaskHandler.removePeriodicTask(self.brightnessTaskId)
def __init__(self, screen, titel, options): self.screen = screen self.title = titel self.options = options self.setFooter(Footer.Footer([],[],(255,255,255))) if("textColor" in self.options): self.textColor = options["textColor"] else: self.textColor = (0,0,0) if("backgroundColor" in self.options): self.backgroundColor = options["backgroundColor"] else: self.backgroundColor = (221,221,221, 160) self.toggleSidebar("useSidebar" in options and options["useSidebar"]) self.initSelection() TaskHandler.addAnimation(self.config["screenHeight"] - self.footer.getHeight(), self.config["screenHeight"], 600, self.updateFooterPos, 2500)
def runNativeMIPS(cmd, config): cmd = config["cmd"] if "cmd" in config else None screen = config["screen"] if "screen" in config else None overclock = config["overclock"] if "overclock" in config else None selection = config["selection"] if "selection" in config else "" params = config["params"] if "params" in config else None fileName = "run" file = open("/tmp/" + fileName, "w") file.write("#!/bin/sh\n") parent = os.path.abspath(os.path.join(cmd, os.pardir)) file.write("cd \"" + parent + "\"\n") if (params != None): file.write(cmd + " " + params.replace("$f", "\"" + selection + "\"") + "\n") else: file.write("\"" + cmd + "\" \"" + selection + "\"\n") file.close() st = os.stat('/tmp/' + fileName) os.chmod('/tmp/' + fileName, st.st_mode | stat.S_IEXEC) showLaunchImage() if (overclock != None): try: Overclock.setClock(overclock) except Exception as ex: pass TaskHandler.addPeriodicTask(0, sys.exit, delay=100)
def runEmuMIPS(name, cmd, workdir, config, rom): name = config["name"] cmd = config["cmd"] if "cmd" in config else None workdir = config["workingDir"] if "workingDir" in config else None overclock = config["overclock"] if "overclock" in config else None params = config["params"] if "params" in config else None if (workdir == None and not cmd == None): workdir = os.path.abspath(os.path.join(cmd, os.pardir)) fileName = "run" file = open("/tmp/" + fileName, "w") file.write("#!/bin/sh\n") file.write("cd \"" + workdir + "\"\n") if (params != None): file.write(cmd + " " + params.replace("$f", "\"" + rom + "\"") + "\n") else: file.write(cmd + " \"" + rom + "\"\n") file.close() st = os.stat('/tmp/' + fileName) os.chmod('/tmp/' + fileName, st.st_mode | stat.S_IEXEC) showLaunchImage() if (overclock != None and not Configuration.isOpenDinguX()): try: Overclock.setClock(overclock) except Exception as ex: pass TaskHandler.addPeriodicTask(0, sys.exit, delay=100)
def updateList(self): while self.proc.poll() is None: output = self.proc.stdout.readline() if (output != ""): print("stout: " + output.rstrip()) self.data.append({"name": output.rstrip()}) # output = self.proc.stderr.readline() # if(output != ""): # print("sterr: " + output.rstrip()) # self.data.append({ # "name": output.rstrip() # }) self.initList() self.setSelection(len(self.data) - 1) RenderControl.setDirty() self.data.append({"name": ""}) self.data.append({"name": "Task finished, press 'B' to go back"}) self.initList() self.setSelection(len(self.data) - 1) RenderControl.setDirty() self.isTerminated = True TaskHandler.removePeriodicTask(self.updateTask)
def __init__(self, screen, initialText, callback): self.screen = screen self.initialText = initialText self.currentText = str(initialText) self.callback = callback self.initBackground() self.setFooter(Footer.Footer([],[],(255,255,255))) TaskHandler.addAnimation(self.config["screenHeight"] - self.footer.getHeight(), self.config["screenHeight"], 600, self.updateFooterPos, 1000)
def resetAnimation(self): self.menuAlpha = 255 if(self.animationId is not None): TaskHandler.stopAnimation(self.animationId) self.animationId = TaskHandler.addAnimation(255, 20, 600, self.animationCallback, 1500) RenderControl.setDirty()
def addBrignessTask(self): if (self.brightnessTaskId is not None): TaskHandler.removePeriodicTask(self.brightnessTaskId) displayTimeout = self.config["options"]["displayTimeout"] if (displayTimeout == "off"): return self.brightnessTaskId = TaskHandler.addPeriodicTask( 0, self.disableScreen, float(displayTimeout) * 1000)
def updatePreview(self): self.preview_final = self.previewPath self.anim = None self.image = None self.renderAnim = False TaskHandler.removePeriodicTask(self.animTask) self.animTask = TaskHandler.addPeriodicTask(1000, self.onShowAnim, 1000) RenderControl.setDirty()
def addSuspendTask(self): if (self.suspendTaskId is not None): TaskHandler.removePeriodicTask(self.suspendTaskId) suspendTime = self.config["options"]["suspendTimeout"] if (suspendTime == "off"): return self.suspendTaskId = TaskHandler.addPeriodicTask( 0, self.suspend, float(suspendTime) * 1000 * 60)
def handleEvents(self, events): if (self.subComponent != None): self.subComponent.handleEvents(events) return if (self.overlay != None): self.overlay.handleEvents(events) return for event in events: if event.type == pygame.KEYDOWN: if event.key == Keys.DINGOO_BUTTON_DOWN: if (self.selection == "band"): self.selection = "power" RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_UP: if (self.selection == "power" or self.selection == "settings"): self.selection = "band" RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_LEFT or event.key == Keys.DINGOO_BUTTON_L: if (not self.inTransition and self.selection == "band"): TaskHandler.addAnimation(0, 160, 200, self.transitionCallback) self.inTransition = True if (self.selection == "power"): self.selection = "settings" RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_RIGHT or event.key == Keys.DINGOO_BUTTON_R: if (not self.inTransition and self.selection == "band"): TaskHandler.addAnimation(0, -160, 200, self.transitionCallback) self.inTransition = True if (self.selection == "settings"): self.selection = "power" RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_SELECT: self.openOptions() RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_START: if (self.selection == "band" and "useSelection" in self.config["mainMenu"][self.currentIndex] and self.config["mainMenu"][ self.currentIndex]["useSelection"] == False): self.emulatorCallback("", Keys.DINGOO_BUTTON_START, True) RenderControl.setDirty() else: self.select() if event.key == Keys.DINGOO_BUTTON_A: self.select()
def init(): lastRenderTime = 1 Common.mountSD(True) # try: # if(not Configuration.isOpenDinguX()): # os.system('/usr/bin/retrofw network on') # except Exception as ex: # pass realScreen = pygame.display.set_mode( (config["screenWidth"], config["screenHeight"]), HWSURFACE, 16) screen = pygame.Surface((config["screenWidth"], config["screenHeight"])) suspend = Suspend.Suspend() renderObject = MainMenu.MainMenu(screen, suspend) brightness = BrightnessVolumeControl.BrightnessVolume() while True: # main game loop events = pygame.event.get() for event in events: if event.type == QUIT: pygame.quit() sys.exit() suspend.handleEvents(events) renderObject.handleEvents(events) brightness.handleEvents(events) if (RenderControl.isDirty()): start = int(round(time.time() * 1000)) RenderControl.setDirty(False) renderObject.render(screen) brightness.render(screen) if ("showFPS" in config["options"] and config["options"]["showFPS"]): if (lastRenderTime == 0): lastRenderTime = 1 textSurface = textFont.render( str(int(round(1000 / lastRenderTime))) + "fps ~" + str(lastRenderTime) + "ms", True, (255, 255, 255)) screen.blit(textSurface, (0, 0)) #print("render time: " + str(lastRenderTime)) realScreen.blit(screen, (0, 0)) pygame.display.update() lastRenderTime = int(round(time.time() * 1000)) - start TaskHandler.updateTasks() fpsClock.tick(Common.getFPS())
def handleEvents(self, events): for event in events: if event.type == pygame.KEYDOWN: self.keyDown = True if (not len(self.entryList) <= 1): self.preview_final = None if event.key == Keys.DINGOO_BUTTON_UP: if (not len(self.entryList) <= 1): self.up() self.onChange() RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_DOWN: if (not len(self.entryList) <= 1): self.down() self.onChange() RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_L: self.up(self.maxListEntries) self.onChange() RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_R: self.down(self.maxListEntries) self.onChange() RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_A: self.onSelect() RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_B: ResumeHandler.clearResume() self.onExit() RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_Y: self.toggleSidebar(not self.useSidebar) RenderControl.setDirty() if event.key == Keys.DINGOO_BUTTON_X: self.previewEnabled = not self.previewEnabled RenderControl.setDirty() if event.type == pygame.KEYUP: self.keyDown = False self.preview_final = self.previewPath self.anim = None self.image = None self.renderAnim = False TaskHandler.removePeriodicTask(self.animTask) self.animTask = TaskHandler.addPeriodicTask( 1000, self.onShowAnim, 1000) RenderControl.setDirty()
def init(): lastRenderTime = 1 setVolume() if (Configuration.isRS97() and platform.processor() == ""): realScreen = pygame.display.set_mode((320, 240), HWSURFACE, 16) screen = pygame.Surface( (config["screenWidth"], config["screenHeight"])) else: realScreen = pygame.display.set_mode( (config["screenWidth"], config["screenHeight"]), HWSURFACE, 16) screen = realScreen renderObject = MainMenu.MainMenu(screen) suspend = Suspend.Suspend() brightness = BrightnessVolumeControl.BrightnessVolume() while True: # main game loop events = pygame.event.get() for event in events: if event.type == QUIT: pygame.quit() sys.exit() suspend.handleEvents(events) renderObject.handleEvents(events) brightness.handleEvents(events) if (RenderControl.isDirty()): start = int(round(time.time() * 1000)) RenderControl.setDirty(False) renderObject.render(screen) brightness.render(screen) if ("showFPS" in config["options"] and config["options"]["showFPS"]): if (lastRenderTime == 0): lastRenderTime = 1 textSurface = textFont.render( str(int(round(1000 / lastRenderTime))) + "fps ~" + str(lastRenderTime) + "ms", True, (255, 255, 255)) screen.blit(textSurface, (0, 0)) print("render time: " + str(lastRenderTime)) realScreen.blit(screen, (0, 0)) pygame.display.update() lastRenderTime = int(round(time.time() * 1000)) - start TaskHandler.updateTasks() fpsClock.tick(Common.FPS)
def __init__(self, height): self.headerHeight = height self.updateHeader() try: self.usbDevice = open("/sys/devices/platform/musb_hdrc.0/uh_cable", "r") self.battery = open("/proc/jz/battery", "r") self.updateBattery() except Exception as ex: print("Could not open devices" + str(ex)) TaskHandler.addPeriodicTask(1000, self.updateBattery)
def __init__(self, screen, titel, options): self.screen = screen self.title = titel self.options = options self.setFooter(Footer.Footer([], [], (255, 255, 255))) if ("textColor" in self.options): self.textColor = options["textColor"] else: self.textColor = (0, 0, 0) if ("backgroundColor" in self.options): self.backgroundColor = options["backgroundColor"] else: self.backgroundColor = (221, 221, 221, 160) if ("sideColor" not in self.options): self.options["sideColor"] = (57, 58, 59, 255) if ("headerColor" not in self.options): self.options["headerColor"] = (57, 58, 59, 255) if ("headerFontColor" not in self.options): self.options["headerFontColor"] = (255, 255, 255) if ("selectionColor" not in self.options): self.options["selectionColor"] = (55, 55, 55, 120) if ("descriptionFontColor" not in self.options): self.options["descriptionFontColor"] = (255, 255, 255) if ("scrollbarColor" not in self.options): self.options["scrollbarColor"] = (0, 105, 105) self.toggleSidebar("useSidebar" in options and options["useSidebar"]) self.initSelection() TaskHandler.addAnimation( self.config["screenHeight"] - self.footer.getHeight(), self.config["screenHeight"], 600, self.updateFooterPos, 2500)
def __init__(self, height): self.headerHeight = height self.updateHeader() try: if(not Configuration.isOpenDinguX()): self.usbDevice = open("/sys/devices/platform/musb_hdrc.0/uh_cable", "r") if(Configuration.isOpenDinguX()): self.battery = open("/sys/class/power_supply/battery/voltage_now", "r") self.usbDevice = open("/sys/devices/platform/gpio-charger.1/power_supply/usb/online", "r") else: self.battery = open("/proc/jz/battery", "r") self.updateBattery() except Exception as ex: print("Could not open devices" + str(ex)) TaskHandler.addPeriodicTask(1000, self.updateBattery)
def apply_full(roles_dir): returncode = 0 LOGGER.info('-> Applying full configuration') runbook = role_file_parser('{}/runbook.yml'.format(roles_dir), 'all') task_handler = TaskHandler.TaskHandler(runbook=runbook, roles_dir=roles_dir) for task in runbook['tasks']: LOGGER.info('-> Starting Task: {}'.format(task['name'])) LOGGER.debug('>>> {}'.format(task)) try: output = task_handler.handle_task(task) LOGGER.info(output) except Exception as e: LOGGER.warn(e) returncode = 1 return returncode
def runCMD(self, cmd): os.environ['PYTHONUNBUFFERED'] = "1" self.proc = subprocess.Popen(cmd, shell=True, bufsize=1, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) thread = Thread(target=self.updateList, args=()) thread.start() RenderControl.setDirty() self.updateTask = TaskHandler.addPeriodicTask(100, RenderControl.setDirty, delay=0)
def suspend(self): try: subprocess.Popen(["poweroff"]) TaskHandler.removePeriodicTask(self.suspendTaskId) except Exception as identifier: pass
def onShowAnim(self): self.renderAnim = True TaskHandler.removePeriodicTask(self.animTask) RenderControl.setDirty()
def disableSuspend(self): if (self.suspendTaskId is not None): TaskHandler.removePeriodicTask(self.suspendTaskId)
description=''' PTT tracker ''') parser.add_argument('-c', '--config', help='config path') parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__) args = parser.parse_args() params = {} if args.config: params['configPath'] = args.config return params if __name__ == '__main__': argParams = parseArgments() if 'configPath' in argParams: jsonParams = Utils.ParseJson(argParams['configPath']) else: jsonParams = Utils.ParseJson() handler = TaskHandler.Handler(jsonParams) handler.Dispatch()
def disableScreen(self): os.system('echo 0 > /proc/jz/lcd_backlight') self.displayDark = True TaskHandler.removePeriodicTask(self.brightnessTaskId)
def callback(dbSet): #异步载入数据库,需要验证session是否仍然有效,有可能下线了 db = dbSet['player'] if session.isValid() == False or session.player: return False if len(db.result) == 0: ffext.dump('no this role') return False else: player = PlayerModel.Player(db.result[0]) #ffext.dump(dbSet) session.setPlayer(player) if x != 0 and y != 0: player.x = x player.y = y #载入数据 ffext.dump('load player =%s' % (session.player.name)) session.verify_id(session.player.uid) dbTask = dbSet['task'] dbitem = dbSet['item'] dbFriend = dbSet['friend'] dbEnemy = dbSet['enemy'] dbGuild = dbSet['guild'] dbPet = dbSet['pet'] dbMail = dbSet['mail'] dbLoginAct = dbSet['login_activity'] if dbTask.isOk(): player.taskCtrl.fromData(dbTask.result) if dbitem.isOk(): player.itemCtrl.fromData(dbitem.result) #TaskHandler.processQueryTask(session) #初始化好友信息、仇人信息,屏蔽信息 if dbFriend.isOk(): player.friendCtrl.fromDataFriend(dbFriend.result) if dbEnemy.isOk(): player.friendCtrl.fromDataEnemy(dbEnemy.result) #初始化行会信息 if dbGuild.isOk(): player.guildCtrl.fromData(dbGuild.result) player.petCtrl.fromData(dbPet.result) if dbMail.isOk(): player.mailCtrl.fromData(dbMail.result) if dbLoginAct.isOk(): player.loginActCtrl.fromData(dbLoginAct.result) # 发送属性数据 PlayerModel.sendPropUpdateMsg(player) #发消息通知,通知上线 tmpReq = MsgDef.EnterMapReq(player.mapname, player.x, player.y) processEnterMapReq(session, tmpReq, True) #发送技能数据 SkillHandler.processQuerySkill(session) #发送包裹数据 ItemHandler.processQueryPkg(session) #发送装备数据 ItemHandler.processQueryEquip(session) #发送任务数据 TaskHandler.processQueryTask(session) #发送好友数据 FriendHandler.processListFriend( session, MsgDef.FriendListMsgReq(MsgDef.FriendListClientCmd.GET_FRIENDLIST)) #发送行会数据 GuildHandler.processGuildInfo(session) #发送结义数据 TeamHandler.processBrotherOps( session, MsgDef.BrotherOpsReq(MsgDef.BrotherClientCmd.GET_BROTHERLIST)) #发送安全码 processMoneyBankOps(session) processQueryPet(session) from handler import MarryHandler MarryHandler.processMarryOPS( session, MsgDef.MarriageOpsReq(MsgDef.MarriageClientCmd.MARRY_QUERY_STATUS)) SkillHandler.processAttackModeReq(session) #发送攻击模式 from handler import MailHandler MailHandler.processMarryOPS(session, MsgDef.MailOpsReq(0)) #msg = MsgDef.UpdateSkillPosReq({320:1}) #SkillHandler.processUpdateSkillPosReq(session, msg) #结义数据 # if player.brotherCtrl: # BrotherModel.handleQueryBrother(player) player.checkTimeAfterInit() # 登录(old)-记录log LogModel.logLoginData(accountid, player.uid, player.name, LogModel.LoginOpType.LOGIN_PLAYER, LogModel.LoginReason.OLD_LOGIN) return