@Override public void funcExecGuard(EventBESA ebesa) { DataRemoverCarroResult evArgs = (DataRemoverCarroResult) ebesa.getData(); AgentBESA agente = this.getAgent(); EstadoCarro estado = (EstadoCarro) agente.getState(); // TODO - Despues de que el agente se haya posicionado para ser removido, se debe enviar if (evArgs.result == true) { ClassLogger.LogMsg("El agente fue removido del parqueadero. Termina!", LogLevel.DEBUG); } else { // Espera un segundo y vuelve a enviar el evento try { Thread.sleep(estado.actualizacionMs); } catch (InterruptedException ex) { ClassLogger.LogMsg("Excepcion al momentode ejecutar el timer: " + ex.getMessage()); } DataRemoverCarro removeCarro = new DataRemoverCarro(); removeCarro.sender = agente.getAlias(); EventBESA event = new EventBESA(GuardaRemoverCarro.class.getName(), removeCarro); try { AgHandlerBESA ah = agent.getAdmLocal().getHandlerByAlias(estado.pisoActual); ah.sendEvent(event); } catch (ExceptionBESA ex) { ClassLogger.LogMsg(ex.getMessage(), LogLevel.ERROR); } } }
@Override public void funcExecGuard(EventBESA ebesa) { DataUpdatePeaton data = (DataUpdatePeaton) ebesa.getData(); AgentBESA agent = this.getAgent(); EstadoPiso estado = (EstadoPiso) agent.getState(); String sender = data.sender; Point posicion = new Point(); posicion.x = data.posX; posicion.y = data.posY; ClassElemento estadoCasilla = estado.ObtenerEstadoCasilla(posicion.x, posicion.y, sender); boolean isDesocupado = false; if (TipoElemento.IsAgent(estadoCasilla.tipo) == false && estadoCasilla.tipo != TipoElemento.Ninguno) isDesocupado = true; if (isDesocupado) { boolean result = estado.ActualizarAgente(data.sender, posicion, null); if (result == false) { ClassLogger.LogMsg("No se encuentra el nombre del agente en la lista: " + sender); isDesocupado = false; } } DataUpdatePeatonResult dataEvent = new DataUpdatePeatonResult(); dataEvent.sender = agent.getAlias(); dataEvent.resultado = isDesocupado; dataEvent.posX = posicion.x; dataEvent.posY = posicion.y; EventBESA event = new EventBESA(GuardaUpdatePeatonResult.class.getName(), dataEvent); try { AgHandlerBESA ah = agent.getAdmLocal().getHandlerByAlias(sender); ah.sendEvent(event); } catch (ExceptionBESA e) { ReportBESA.error(e); } }