La red de spectrum admite hasta 64 nodos máximo, es una red sin servidor de estilo Ethernet, todos conectados de uno a otro y todos compiten a la vez por el uso de la red. Como todas las redes es una comunicación serie, lo que pasa es que una Lan funciona mucho mas rápida que un puerto serie normal, y los protocolos permiten interrumpir la comunicación y recuperarla a voluntad, y repetir los envios de los paquetes que no hayan llegado a destino. Creo que sería sencillo usar un PC por el puerto serie para enviar para recibir los datos, empaquetarlos en un mensaje IP, y enviarlo internet por un socket como si fuera un FTP p similar, y lo que reciba de la red hacer lo contrario. La principal ventaja es que sería una comunicación entre solo un spectrum y un solo pc, por lo que el medio casi siempre está libre y no hay pocos problemas de bloqueos. Incluso como se envían datos en modo texto, sería posible poner un PC sin un spectrum conectado.
Para que esto funcione a través de Internet hay que poner un ordenador que haga de servidor, reciba todos los paquetes y los reenvíe a todos los ordenadores conectados, ya que no es posible montar lo mismo que hace el spectrum, si se organiza una red entre nodos y cada uno envia al siguiente lo que recibe, cuando un nodo cae todo el resto de la red cae.
Además, debemos definir una serie de cosas, como por ejemplo como se conecta un spectrum a la red y se le asigna un número de nodo. Creo que para evitar problemas el servidor debería enviar al que quiera conectarse un mensaje con el número de nodo que le corresponde, y a partir de ese momento que use siempre ese número en la comunicación. El servidor debe mantener la lista de nodos conectados, y reconocer cuando un nuevo usuario se queire conectar, y cuando se ha desconectado para liberar ese número de nodo, siempre con la limitación de 64 nodos máximo, aunque sería saltable ya que la red puede controlar el tema, pero no sería posible enviar mensajes a nodos con número mayor de 64 desde un spectrum, aunque siempre pueden recibir lo que se envíe a todos los nodos.
Como veis, no es que sea imposible, ni especialmente difícil, pero hay que desarrollar algo de Hard y algo de Soft, no creo que esto esté disponible en la próxima reunión, aunque si es posible ir preparando cosas, hacer algunos desarrollos, probar allí cosas, y lanzarlo tranquilamente cuando se pueda. Es un proyecto para el que necesitamos:
- Un coordinador, siempre hay deciciones que tomar y alquien debe tomarlas, hacer el seguimiento de como va el tema, y controlar que si algo se retrasa más de la cuenta, poner alguna solución (esto pasa siempre que el proyecto no lo hace uno solo).
- Un equipo que diseñe un interface adecuado entre la red del Spectrum y el PC, usando un interface 1 o desarrollando una placa con solo la red, y en el lado del PC algo usando un puerto paralelo, uno serie, usando un conversor Serie a USB, o un montaje directo que reciba en serie y convierta a USB (usando un arduino por ejemplo que ya está echo y es ma sencillo que partir de cero).
- Un equipo que desarrolle el driver para el PC del interface entre spectrum y el PC, que envíe a un programa externo lo que va recibiendo, y reciba desde un programa externo datos y los envíe al spectrum.
- Un equipo que desarrolle un programa de comunicación por Internet, solicite un nodo al server, reciba el mensaje del número o que no hay nodos libres, envíe lo que recibe a través del driver al servidor de internet, y al contrario reciba del servidor de internet datos y los remita al driver, y remita al servidor un mensaje indicnado que está activo cada x tiempo (entre 1 y 5 minutos habitualmente), y envíe una desonexión al servidor cuando se cierre el programa.
- Un equipo que desarrolle el servidor, reciba peticiones de añadirse a la red, asigne el número del nodo y lo remita al cliente, reciba los datos de la red y los reenvíe a todos los nodos conectados, revisando que los nodos sigan activos cada x tiempo, y procese las peticiones de baja de los usuarios.
Saludos