En un entorno industrial es probable que tengamos que controlar algún dispositivo. En muchas de esas ocasiones es posible que exista alguna aplicación que nos permita realizar dicho control. Sin embargo, también podría ocurrir lo contrario y consecuentemente, tengamos que diseñar una aplicación específica. En esta práctica aprenderemos a diseñar una aplicación que permita controlar un dispositivo remoto a través de la red.
El dispositivo a controlar es un robot muy simple que puede moverse en 4 direcciones posibles (véase la Figura 1), paso a paso, es decir, que mientras no le demos la order de moverse, estará detenido y cuando se la demos, sólo se moverá un paso, hasta que volvamos a decirle que se mueva.
El robot se moverá por una matriz de posisiciones discretas (véase la Figura 2). En dicha matriz habrá posiciones libres y ocupadas. Cuando estén libres, el robot podrá moverse a ellas y ocuparlas. Cuando estén ocupadas, el robot no podrá moverse sobre ellas. El robot sólo puede ocupar una posición de la matriz en un instante dado.
Las posiciones podrán estár ocupadas temporalmente o de forma indefinida. Una posición está ocupada de forma indefinida por algún elemento bloqueante (imaginemos que se trata de una pared que no podemos atravesar). Sin embargo, una determinada posición podría estar temporalmente ocupada porque en ella hay otro robot en ese momento y éste podría moverse en el futuro.
En la matriz aparece una abertura, una salida. El objetivo de los robots será encontrar la salida en un tiempo mínimo.
En todo sistema de comunicación es necesario un protocolo de comunicación que permita interaccionar a los elementos remotos. En el caso de nuestro robot, este es el protocolo asociado:
El codigo mostrado a continuación puede conseguirse en http://www.ace.ual.es/\~vruiz/redes_industriales/matrix.c.