public virtual IEnumerator <ITask> SetTimerHandler(SetTimer setTimer) { MessageTimestamp timeStamp = setTimer.GetHeader <MessageTimestamp>(); DateTime start; if (timeStamp == null) { start = DateTime.Now; } else { start = timeStamp.Value; } StringBuilder log = new StringBuilder(); if (_state.Timeout > 0 && _state.Expires > DateTime.Now) { log.AppendFormat( CultureInfo.InvariantCulture, "Override previous timer of {0}ms, expected at {1}.", _state.Timeout, _state.Expires ); #if URT_MINCLR log.Append("\n"); #else log.AppendLine(); #endif } if (setTimer.Body.Interval > 0) { _state.Timeout = setTimer.Body.Interval; _state.Expires = start.AddMilliseconds(_state.Timeout); log.AppendFormat( CultureInfo.InvariantCulture, "Set new timer of {0}ms, expected at {1}.", _state.Timeout, _state.Expires ); } else { _state.Timeout = 0; _state.Expires = DateTime.MaxValue; log.Append("Timer stopped"); } LogVerbose(log.ToString()); setTimer.ResponsePort.Post(DefaultUpdateResponseType.Instance); SendNotification(_subMgr, setTimer); yield break; }
public static void shutdown(string[] args) { Console.WriteLine("Scheduled shutdown : '1' : YES / '2' : NO / 'spacebar' to restart"); ConsoleKeyInfo readedKey = Console.ReadKey(true); switch (readedKey.Key) { case ConsoleKey.D1: Regex hourFormat = new Regex(@"^\d{2}:\d{2}:\d{2}$"); Console.WriteLine("shutdownTime (HH:mm:ss) ="); shutdownTime = Console.ReadLine(); if (hourFormat.IsMatch(shutdownTime)) { int h = 0, m = 0, s = 0; int.TryParse(shutdownTime.Substring(0, 2), out h); int.TryParse(shutdownTime.Substring(3, 2), out m); int.TryParse(shutdownTime.Substring(6, 2), out s); if (h < 24 && m < 60 && s < 60 && h >= 0 && m >= 0 && s >= 0) { Console.WriteLine("Computer will shutdown at " + shutdownTime); SetTimer.setshutdownTimer(); SetTimer.setTimer(); } else { Console.WriteLine("Invalid format (HH:mm:ss)"); goto case ConsoleKey.D1; } } else { Console.WriteLine("Invalid format (HH:mm:ss)"); goto case ConsoleKey.D1; } break; case ConsoleKey.D2: SetTimer.setTimer(); break; case ConsoleKey.Spacebar: Console.Clear(); Main(args); break; default: shutdown(args); break; } }
void Tick(object source, ElapsedEventArgs e) { if (this.InvokeRequired) { SetTimer si = new SetTimer(Tick); this.Invoke(si, new object[] { null, null }); } else { var ts = DateTime.Now - useTime; double n = ts.TotalSeconds; if (n == 0) { n = 1; } int sp = (int)(runTimes / n); this.label6.Text = "耗时:" + ts.ToString(@"hh\:mm\:ss") + " 速度:" + sp + "次/秒"; } }
public MainWindow() { InitializeComponent(); //check if launced as admin waysearch nread = new NTFSRead(); nread.getPriv(); timerupdate = new SetTimer(); timerupdate.startTimer(30); mainw.Topmost = true; this.ShowInTaskbar = true; WindowState = WindowState.Normal; this.Left = (SystemParameters.PrimaryScreenWidth / 2) - mainw.Width / 2; this.Top = (SystemParameters.PrimaryScreenHeight / 4); //event handler browseContent.LoadCompleted += MainFrame_ContentRendered; resultsList.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(ListBoxItem_MouseDoubleClick); resultsList.MouseDown += new System.Windows.Input.MouseButtonEventHandler(ListBoxItem_MouseDown); resultsList.KeyDown += new System.Windows.Input.KeyEventHandler(ListBoxItem_KeyDown); resultsList.SelectionChanged += new SelectionChangedEventHandler(itemSelected); resultsList.MouseLeftButtonUp += new MouseButtonEventHandler(ListBoxItem_Selected); SourceChord.FluentWPF.SystemTheme.ThemeChanged += this.SystemTheme_ThemeChanged; search.PreviewKeyDown += search_PreviewKeyDown; this.Dispatcher.UnhandledException += OnDispatcherUnhandledException; Loaded += OnLoaded; StateChanged += OnStateChanged; // register the event that is fired after the key press. hook.KeyPressed += new EventHandler <KeyPressedEventArgs>(hook_KeyPressed); //DESIGN CHANGE changeDesign("small"); // register the controls hook.RegisterHotKey(ModifierKeys.Alt, Keys.Space); }
public float radiusChange = 5f;//radio para asustarse y cambiar gas venenoso void Start() { //INICIALIZAMOS LA DATA DEL EXTERIOR kinRoselia = roselia.kineticsAgent; steeringRoselia = roselia.steeringAgent; kineticsTrainer = trainer.kineticsAgent; kineticsRival = rival.kineticsAgent; Kinetics[] targets = new Kinetics[2]; targets[0] = kineticsTrainer; targets[1] = kineticsRival; //COMENZAMOS A CONSTRUIR LA MAQUINA DE ESTADOS //1. ACCIONES: ShowIcon showSweet = new ShowIcon(this.gameObject, "SweetGas"); DisableIcon disableSweet = new DisableIcon(this.gameObject, "SweetGas"); ShowIcon showPoison = new ShowIcon(this.gameObject, "PoisonGas"); DisableIcon disablePoison = new DisableIcon(this.gameObject, "PoisonGas"); ChangeSmellSent changeSmellPoison = new ChangeSmellSent(sendSmell, "Poison"); ChangeSmellSent changeSmellSweet = new ChangeSmellSent(sendSmell, "Sweet"); SetTimer setPoisonTimer; //2. ESTADOS: List <Action> entryActions; //aqui iremos guardanndo todas las acciondes de entrada List <Action> exitActions; //aqui iremos guardanndo todas las acciones de salida List <Action> actions; //aqui guardaremos todas las acciones intermedias //2.a estado para seguir camino entryActions = new List <Action>() { showSweet, changeSmellSweet }; actions = new List <Action>(); exitActions = new List <Action>() { disableSweet }; State sweetGasState = new State(actions, entryActions, exitActions); entryActions = new List <Action>() { showPoison, changeSmellPoison }; actions = new List <Action>(); exitActions = new List <Action>() { disablePoison }; State poisonGasState = new State(actions, entryActions, exitActions); //3. CONDICIONES: // roselia solo usara veneno durante 30 segs TimeOut poisonTimer = new TimeOut(30f); setPoisonTimer = new SetTimer(poisonTimer); TooClose closeTrainer = new TooClose(kinRoselia, kineticsTrainer, radiusChange); TooClose closeRival = new TooClose(kinRoselia, kineticsRival, radiusChange); OrCondition anyTargetClose = new OrCondition(closeTrainer, closeRival); NotCondition noOneClose = new NotCondition(anyTargetClose); //4. TRANSICIONES: List <Action> noActions = new List <Action>(); List <Action> transitionActions; transitionActions = new List <Action>() { setPoisonTimer }; Transition anyHumanClose = new Transition(anyTargetClose, transitionActions, poisonGasState); transitionActions = new List <Action>(); Transition poisonTimeOut = new Transition(poisonTimer, transitionActions, sweetGasState); //4.1 AGREGAMOS TRANSICIONES A ESTADOS List <Transition> transitions = new List <Transition>() { anyHumanClose }; sweetGasState.transitions = transitions; transitions = new List <Transition>() { poisonTimeOut }; poisonGasState.transitions = transitions; //5 MAQUINA DE ESTADOS State[] states = new State[] { sweetGasState, poisonGasState }; roseliaMachine = new StateMachine(states, sweetGasState); }
// public float radiusAlert = 40f;//radio para alertarse // public float radiusRun = 35f;//radio para huir void Start() { //INICIALIZAMOS LA DATA DEL EXTERIOR kineticsAgent = agent.kineticsAgent; steeringAgent = agent.steeringAgent; kineticsTrainer = trainer.kineticsAgent; kineticsRival = rival.kineticsAgent; sightSensor = sightComponent.sensor; sightSensorPokemon = sightComponentPokemon.sensor; soundSensor = soundComponent.sensor; //Piedras stones = GameObject.FindGameObjectsWithTag("Stone"); List <GameObject> stonesList = new List <GameObject>(stones); //Inicializamos grafo y A* graph = graphComponent.graph; aStar = new PathFindAStar(graph, null, null, null, walkable); //Inicializamos seek seek = new Seek(kineticsAgent, kineticsAgent, maxAccel); //Inicializamos lookwehereyougoing look = new LookWhereYouAreGoing(kineticsAgent); //Obstaculos GameObject[] obstacles = GameObject.FindGameObjectsWithTag("Obstacle"); obstacle_data[] obstaclesData = new obstacle_data[obstacles.Length]; for (int k = 0; k < obstacles.Length; k++) { obstaclesData[k] = obstacles[k].GetComponent <obstacle_data>(); } //Puntos estrategicos strategicPoints = pointsComponent.coverNodes; //COMENZAMOS A CONSTRUIR LA MAQUINA DE ESTADOS //1. ACCIONES: //acciones relacionadas a astar FollowPathOfPoints followPath = new FollowPathOfPoints(steeringAgent, seek, null, false); UpdateFollowPathWithAstar updateFollow = new UpdateFollowPathWithAstar(followPath, aStar, obstaclesData); UpdateAstarBestCoverPoint updateAstarCover = new UpdateAstarBestCoverPoint(strategicPoints, transform, new Transform[] { kineticsRival.transform, kineticsTrainer.transform }, obstaclesData, graph, aStar, walkable); UpdateAStarSeenStone updateAstarStone = new UpdateAStarSeenStone(sightSensor, aStar, graph, transform, walkable); //acciones de manejo de giros SetAngularSpeed setDefaultRotation = new SetAngularSpeed(kineticsAgent, 10f); SetAngularSpeed setZeroRotation = new SetAngularSpeed(kineticsAgent, 0f); StopMoving stop = new StopMoving(kineticsAgent, steeringAgent); LookWhereGoing lookAction = new LookWhereGoing(look, steeringAgent); //acciones de manejo de srpites ShowDefaultSprite defaultSprite = new ShowDefaultSprite(pokemonData); RunSprite showRunSprite = new RunSprite(pokemonData); Evolve2 evolve; ShowIcon showExclamation = new ShowIcon(this.gameObject, "Exclamation"); DisableIcon disableExclamation = new DisableIcon(this.gameObject, "Exclamation"); ShowIcon showSweat = new ShowIcon(this.gameObject, "Sweat"); DisableIcon disableSweat = new DisableIcon(this.gameObject, "Sweat"); //acciones de asistencia ResetSensor resetSight = new ResetSensor(sightSensor); ResetSensor resetSightPokemon = new ResetSensor(sightSensorPokemon); ResetSensor resetSound = new ResetSensor(soundSensor); ResetSensorList resetSensors = new ResetSensorList(new List <ResetSensor>() { resetSight, resetSound, resetSightPokemon }); //acciones de tiempo SetTimer setAlertTime; //acciones que modifican la maquina de estados misma RemoveStateTransition removeTouchStone; RemoveStateTransition removeSawStone; RemoveStateTransition removeSawStone2; RemoveAction removeDefaultSpriteAction; RemoveAction removeRunSpriteAction; RemoveAction removeRunSpriteAction2; //2. ESTADOS: List <Action> entryActions; //aqui iremos guardanndo todas las acciondes de entrada List <Action> exitActions; //aqui iremos guardanndo todas las acciones de salida List <Action> actions; //aqui guardaremos todas las acciones intermedias //2.a estado para esperar sin hacer nada //durante este estado eevee estara quieto hasta que algun humano lo haga reaccionar entryActions = new List <Action>() { stop, defaultSprite, setZeroRotation, resetSensors }; //al entrar al estado debemos parar y sentarnos removeDefaultSpriteAction = new RemoveAction(defaultSprite, entryActions); actions = new List <Action>() { }; //hacer guardia girando exitActions = new List <Action>() { }; State wait = new State(actions, entryActions, exitActions); //2.b estado para sorprenderse //durante este estado eevee dara vueltas en alterta angustiado porque escucho algo, este estado durara solo cierto tiempo entryActions = new List <Action>() { showExclamation, setDefaultRotation }; //al entrar al estado debemos sorprendernos actions = new List <Action>() { }; exitActions = new List <Action>() { disableExclamation, setZeroRotation }; //al salir dejamos de sorprendernos State alert = new State(actions, entryActions, exitActions); //2.c estado para perseguir piedra //durante este estado eevee se concentrara unicamente en buscar las piedra que vio entryActions = new List <Action>() { updateAstarStone, updateFollow, showExclamation, showRunSprite }; //al entrar al estado debemos actualizar el a* y luego el camino removeRunSpriteAction2 = new RemoveAction(showRunSprite, entryActions); actions = new List <Action>() { followPath, lookAction }; //durante la accion seguimos el camino exitActions = new List <Action>() { disableExclamation }; //al salir no hacemos nada State followStone = new State(actions, entryActions, exitActions); //2.d estado para perseguir punto de encuentro //durante este estado eevee buscara donde esconderse, puede verse interrumpido si accidentalmente toca una piedra o se comprometio su escondite entryActions = new List <Action>() { updateAstarCover, updateFollow, showSweat, showRunSprite, resetSensors }; //al entrar al estado debemos actualizar el a* y luego el camino removeRunSpriteAction = new RemoveAction(showRunSprite, entryActions); actions = new List <Action>() { followPath, lookAction }; //durante la accion seguimos el camino exitActions = new List <Action>() { disableSweat }; //al salir no hacemos nada State followCoverPoint = new State(actions, entryActions, exitActions); //2.extra dummy states //estos estados son de relleno para facilitar la activacion de ciertas acciones en le orden adecuado entryActions = new List <Action>(); //al entrar al estado debemos parar y sentarnos actions = new List <Action>(); //hacer guardia girando exitActions = new List <Action>(); //al salir no hacemos nada State evolveState1 = new State(actions, entryActions, exitActions); State evolveState2 = new State(actions, entryActions, exitActions); //3. CONDICIONES: SawSomething sawStone = new SawSomething(sightSensor, "Stone"); //si vemos una piedra evolutiva SawSomething sawHuman = new SawSomething(sightSensor, "Human"); //si vemos una persona HeardSomething heardHumanClose = new HeardSomething(soundSensor, "Human", 0f); //si escuchamos a un humano cerca HeardSomething heardHumanVeryClose = new HeardSomething(soundSensor, "Human", 5f); //si escuchamos a un humanos muy cerca TouchedGameObjects touchedStone = new TouchedGameObjects(stonesList, transform, "Sun"); //si tocamos una piedra evolutiva evolve = new Evolve2(pokemonData, touchedStone, updateAstarCover, aStar); FollowArrived arrived = new FollowArrived(followPath, transform); //si llegamos al objetivo de follow PokemonInCoverPoint otherInMyCover = new PokemonInCoverPoint(aStar, sightSensorPokemon, transform); //si vemos que un pokemon se metio en nuestro escondite TimeOut alertTimeOut = new TimeOut(5f); setAlertTime = new SetTimer(alertTimeOut); TrueCondition alwaysTrue = new TrueCondition(); //4. TRANSICIONES: List <Action> transitionsActions; List <Action> noActions = new List <Action>(); transitionsActions = new List <Action>() { setAlertTime }; Transition heardCloseHuman = new Transition(heardHumanClose, transitionsActions, alert); Transition seemsSafe = new Transition(alertTimeOut, noActions, wait); Transition heardVeryCloseHuman = new Transition(heardHumanVeryClose, noActions, followCoverPoint); transitionsActions = new List <Action>() { }; Transition sawAhuman = new Transition(sawHuman, transitionsActions, followCoverPoint); Transition sawAstone = new Transition(sawStone, transitionsActions, followStone); Transition pokemonInMyCover = new Transition(otherInMyCover, transitionsActions, followCoverPoint); //transiciones dummy transitionsActions = new List <Action>() { evolve }; Transition evolving1 = new Transition(alwaysTrue, transitionsActions, followCoverPoint); Transition evolving2 = new Transition(alwaysTrue, transitionsActions, wait); transitionsActions = new List <Action>() { evolve, removeDefaultSpriteAction, removeRunSpriteAction, removeRunSpriteAction2 }; Transition touchStone1 = new Transition(touchedStone, transitionsActions, evolveState1); Transition touchStone2 = new Transition(touchedStone, transitionsActions, evolveState2); //si evolucionamos debemos quitar las transiciones relacionadas a las stones removeSawStone = new RemoveStateTransition(sawAstone, followCoverPoint); removeSawStone2 = new RemoveStateTransition(sawAstone, alert); removeTouchStone = new RemoveStateTransition(touchStone1, followCoverPoint); transitionsActions.Add(removeSawStone); transitionsActions.Add(removeSawStone2); transitionsActions.Add(removeTouchStone); Transition arrivedFollowEnd = new Transition(arrived, noActions, wait); //4.1 AGREGAMOS TRANSICIONES A ESTADOS List <Transition> transitions; transitions = new List <Transition>() { sawAhuman, heardCloseHuman }; wait.transitions = transitions; transitions = new List <Transition>() { sawAhuman, sawAstone, heardVeryCloseHuman, seemsSafe }; alert.transitions = transitions; transitions = new List <Transition>() { evolving1 }; evolveState1.transitions = transitions; transitions = new List <Transition>() { evolving2 }; evolveState2.transitions = transitions; transitions = new List <Transition>() { touchStone1, sawAstone, pokemonInMyCover, arrivedFollowEnd, sawAhuman }; followCoverPoint.transitions = transitions; transitions = new List <Transition>() { touchStone2, arrivedFollowEnd, pokemonInMyCover }; followStone.transitions = transitions; //5 MAQUINA DE ESTADOS State[] states = new State[] { wait, alert, followCoverPoint, followStone, evolveState1, evolveState2 }; eeveeMachine = new StateMachine(states, wait); }
public void SetTimer_Time() { var timer = new SetTimer(); Action <object, System.Timers.ElapsedEventArgs> result = timer.Timer_Elapsed(00 : 00 : 00 : 02) }
// Start is called before the first frame update void Start() { //DATOS EXTERNOS smellSensor = smellSensorScript.sensor; soundSensor = soundSensorScript.sensor; kinTrainer = trainerStaticData.kineticsAgent; steeringTrainer = trainerStaticData.steeringAgent; //COMENZAMOS A CONSTRUIR LA MAQUINA DE ESTADOS //1. ACCIONES: ShowIcon showPoisoned = new ShowIcon(this.gameObject, "Poisoned"); DisableIcon disablePoisoned = new DisableIcon(this.gameObject, "Poisoned"); ShowIcon showSleep = new ShowIcon(this.gameObject, "Sleeping"); DisableIcon disableSleep = new DisableIcon(this.gameObject, "Sleeping"); SetTimer setPoisonClock; SetTimer setSleepClock; ResetSensor resetSmellSensor = new ResetSensor(smellSensor); ResetSensor resetSoundSensor = new ResetSensor(soundSensor); List <ResetSensor> resets = new List <ResetSensor>() { resetSmellSensor, resetSoundSensor }; ResetSensorList resetAllSensor = new ResetSensorList(resets); UpdateMaxSpeed setOriginalSpeed = new UpdateMaxSpeed(trainerStaticData, trainerStaticData.maxspeed); UpdateMaxSpeed setSlowSpeed = new UpdateMaxSpeed(trainerStaticData, poisonedSpeed); UpdateMaxSpeed setZeroSpeed = new UpdateMaxSpeed(trainerStaticData, 0f); SetAngularSpeed setAngularToZero = new SetAngularSpeed(kinTrainer, 0f); SetAngularAccel setAngularAccelToZero = new SetAngularAccel(steeringTrainer, 0f); //accion para deshabilitar todos scripts de interes mientras dormimos List <DisableScript> disables = new List <DisableScript>(); foreach (var script in scriptsToDisable) { disables.Add(new DisableScript(script)); } DisableScriptList disableScripts = new DisableScriptList(disables); //accion para habilitar todos los script de interes si despertamos List <EnableScript> enables = new List <EnableScript>(); foreach (var script in scriptsToDisable) { enables.Add(new EnableScript(script)); } EnableScriptList enableScripts = new EnableScriptList(enables); //2. ESTADOS: List <Action> entryActions; //aqui iremos guardanndo todas las acciondes de entrada List <Action> exitActions; //aqui iremos guardanndo todas las acciones de salida List <Action> actions; //aqui guardaremos todas las acciones intermedias //2.a estado donde estamos sanos entryActions = new List <Action>(); //al entrar al estado ponemos un corazon actions = new List <Action>(); //durante el estado perseguimos al enamorado exitActions = new List <Action>(); //al salir quitamos el corazon State healthyState = new State(actions, entryActions, exitActions); //2.b estado donde estamos envenenados entryActions = new List <Action>() { showPoisoned, setSlowSpeed }; //al entrar al estado ponemos un corazon actions = new List <Action>(); //durante el estado perseguimos al enamorado exitActions = new List <Action>() { disablePoisoned, resetAllSensor, setOriginalSpeed }; //al salir quitamos el corazon State poisonedState = new State(actions, entryActions, exitActions); //2.c estado donde estamos dormidos entryActions = new List <Action>() { showSleep, setZeroSpeed, disableScripts, setAngularAccelToZero, setAngularToZero }; //al entrar al estado ponemos un corazon actions = new List <Action>(); //durante el estado perseguimos al enamorado //al salir debemos: // quitar el icono de dormir, resetear el sensor de sonido, reset el sensor de aroma porque puede haber un sweet // volver a habilitar lo que se deba exitActions = new List <Action>() { disableSleep, resetAllSensor, setOriginalSpeed, enableScripts }; //al salir quitamos el corazon State sleepState = new State(actions, entryActions, exitActions); //3. CONDICIONES: SmelledSomething smelledPoison = new SmelledSomething(smellSensor, "Poison"); SmelledSomething smelledSweet = new SmelledSomething(smellSensor, "Sweet"); HeardSleepSong heardSong = new HeardSleepSong(soundSensor); TimeOut poisonClock = new TimeOut(poisonTimer); setPoisonClock = new SetTimer(poisonClock); TimeOut sleepClock = new TimeOut(sleepTimer); setSleepClock = new SetTimer(sleepClock); //4. TRANSICIONES: List <Action> noActions = new List <Action>(); List <Action> transitionActions; transitionActions = new List <Action>() { setPoisonClock }; Transition gotPoisoned = new Transition(smelledPoison, transitionActions, poisonedState); Transition poisonTimeOut = new Transition(poisonClock, noActions, healthyState); Transition sweetScent = new Transition(smelledSweet, noActions, healthyState); transitionActions = new List <Action>() { setSleepClock }; Transition gotSlept = new Transition(heardSong, transitionActions, sleepState); Transition sleepTimeOut = new Transition(sleepClock, noActions, healthyState); //4.1 AGREGAMOS TRANSICIONES A ESTADOS List <Transition> transitions; transitions = new List <Transition>() { gotPoisoned, gotSlept };; healthyState.transitions = transitions; poisonedState.transitions = new List <Transition>() { poisonTimeOut, sweetScent }; sleepState.transitions = new List <Transition>() { sleepTimeOut, sweetScent }; //5 MAQUINA DE ESTADOS State[] states = new State[] { healthyState, poisonedState, sleepState }; trainerStatusMachine = new StateMachine(states, healthyState); }