Artículos
- Inicio
- Artículos
- Sesiones y Reglas
- Reglas de Variables III
Reglas de Variables III
Tutorial de Utilización de Reglas de Variables aplicadas a una sesión.
Parte III
Tutorial de Utilización de Reglas de Variables aplicadas a una sesión Parte III.
Continuamos...Posteriormente a esto lo que tenemos que hacer es decirle a Tom que realice las operaciones o tareas con las cuales se va ha mantener hasta que el usuario cierre la sesión.
Para poder indicarle dichas tareas, añadiremos otra Driver Schedule que nos permitirá asignarle más tareas, tal como muestra la imagen siguiente.
Si nos damos cuenta, la nueva regla, la hemos añadido a la misma altura que la regla "Evaluar Variable Tom", para que sea la siguiente tarea que realice justo después de realizar ésta (evaluar variable) y por supuesto, la nueva regla (Driver Schedule), no comenzará hasta que la anterior finalice (la primera
vez, porque cumple la condición), o se la salte (las siguientes veces, porque no cumple la condición).
La nueva regla que añadimos (Driver Schedule), tiene la siguiente configuración.
Se le añade el Conductor al que se le va a asignar las tareas (por supuesto es Tom), y en la lista de tareas se añaden las tareas que tiene que realizar, posteriormente, y como hemos hecho con la anterior regla del mismo tipo, dejamos seleccionada la opción inferior, como viene por defecto, tal y como aparece en la imagen.
Para mayor compresión, he cambiado el nombre de la regla y le he colocado "Continuación Tom" como aparece en la imagen.
Después de todo esto ya podemos cerrar la ventana de Editar Sesión (Edit session), guardar la sesión y ejecutarla.
Como se ve en la imagen, todos los conductores de la ruta, tienen asignadas acciones a realizar desde un principio, (ver la primera imagen de este tutorial) a excepción de Tom que sólo tiene una tarea en su lista de tareas, que es precisamente la primera que configuramos en nuestra sesión para Tom
(esperar por trigger), y sólo aparece esta, y hasta que esta no se cumpla no realizará más cosas.
La siguiente imagen nos muestra las acciones que tiene que realizar nuestro amigo Tom, una vez cumplida la primera condición (esperar por trigger), que justo lo ha ejecutado el tren que se ve a su lado.
Todas estas operaciones, irán desapareciendo de la barra de tareas de Tom, a medida que las realiza, y justo cuando haya terminado de realizar la última tarea, que en este caso es la que se muestra como ir a marca viaria X, volverá a ejecutarse la lista ordenada, volviendo a mostrar todas estas tareas en
la lista de tareas de Tom, iniciando de nuevo su trabajo.
Las operaciones que se ha descrito durante este tutorial son aplicables a todos los conductores que aparecen en la sesión y que requieren la realización de tareas de una forma determinada.
Ni que decir tiene que la ejecución de esta sesión puede ser modificada para optimizarse según las necesidades de cada uno, no pretendo dar una clase magistral de como se deben de utilizar las reglas (en este caso las de control de variables, aplicadas a una sesión en concreto), sino un ejemplo de la posibilidad de la utilización de unas reglas, que aunque estén documentadas, no nos clarifican qué es lo que podemos hacer con ellas.
Con respecto a la regla Driver Schedule Rule, no existe ninguna documentación de cómo se debe de utilizar y que es lo que hay que hacer con ella, tanto en el manual original en inglés de Auran, como en el que traduje al castellano, espero que este tutorial sirva para clarificar una de las posibilidades
de utilización de dicha regla.
Añado una cosa más que no he aplicado en este ejemplo y que sería interesante de conocer.
Dado que la ejecución de la tareas de un maquinista se realiza con una lista ordenada, ocurriría que si queremos configurar todos estas órdenes al resto de maquinistas, a través de listas ordenadas, no tendríamos nunca la posibilidad de asignarle a todos los maquinistas a la vez todas sus tareas iniciales, así como sus tareas secundarias, hasta que no se ejecutasen todas las tareas de la lista
de tareas que tiene el maquinista inmediatamente anterior.
Para poder asignar a todos los maquinistas sus órdenes a la vez otra regla muy importante, que nos permite asignar una serie de tareas de una sola vez, sin necesidad de esperar a que la tarea anterior se ejecute, la regla en cuestión en Regla de Lista Simultánea, (Simultaneous List), que nos permite, la
ejecución de todas las regla a la vez que estén anidada a ésta ya citada (Lista Simultánea), lo que nos garantiza que todos los conductores tendrán sus tareas, con sus valores iniciales correctos, a la vez, sin necesidad de esperar a que terminen los anteriores.
La utilización de esta regla (lista simultánea), se realiza, colocando anidada, indentada, tabulada (como queráis llamarlo), todas las regla que queramos que se ejecuten a la vez y sin espera, a la misma altura, en nuestro caso deberíamos colocar todas las reglas de lista ordenada que afecten a cada
uno de los conductores en sus tareas a la misma altura. Esquemáticamente la sesión quedaría de la siguiente forma.
Configuración de maquinistas
Creación de maquinistas y asignación de maquinistas a trenes.
Lista Ordenada de creación de variables de entorno (ejecución una sóla vez)
Creación Variable Maquinista 1
Creación Variable Maquinista 2
.....
Creación Variable Maquinista n
Asignación Variable inicial Maquinista 1
Asignación Variable inicial Maquinista 2
......
Asignación Variable inicial Maquinista n
Lista Simultánea de ejecución de tareas
Lista ordenada de ejecución de tareas del Maquinista 1 (ejecución indefinida)
Evaluación de Variable Maquinista 1
Ejecución de Tareas iniciales Maquinista 1
Modificación de Variable Maquinista 1
Ejecución de Tareas siguientes Maquinista 1
Lista ordenada de ejecución de tareas del Maquinista 2 (ejecución indefinida)
Evaluación de Variable Maquinista 2
Ejecución de Tareas iniciales Maquinista 2
Modificación de Variable Maquinista 2
Ejecución de Tareas siguientes Maquinista 2
.......
Lista ordenada de ejecución de Tareas del Maquinista n (ejecución indefinida)
Evaluación de Variable Maquinista n
Ejecución de Tareas iniciales Maquinista n
Modificación de Variable Maquinista n
Ejecución de Tareas siguientes Maquinista n
Para mayor comodidad y para que no se tengan dos manuales a la vez coloco justo a continuación las reglas que he utilizado y su descripción según aparecen en el manual de sesiones y regla.
Espero que sea sirva para algo este tutorial.
Un saludo Manuel Martínez -manweb-
Mi agradecimiento a Tino Vallhonrat (vallhonrat), por crear la ruta del tutorial, así como la sesión inicial, y dejarme trastear en ella.
Tenéis también un instructivo ejemplo de todo lo que hemos contado aquí.
http://www.zatovisualworks.eu/ibtz/downloads/?p=945
En el cual, aparecen tres sesiones, utilizando distintas reglas pra que los trenes circulen, en la tercera, de estas sesiones, aplica todo lo explicado aquí.
Si tenéis algún problema con la descarga de esta ruta y las sesiones, me lo comentáis, por correo.
Continuará....
No hay comentarios.