2011-06-01 15 views
5

El objetivo es utilizar Processing como un entorno de programación para la creación de gráficos y de tener la pantalla de salida en un dispositivo de visualización personalizada que es algo así como un panel de luz LED. El servidor que ejecuta el programa estará en un rack de 1U. La idea es que todo el material LED es hardware personalizado, pero en lugar de reinventar la rueda, sería mejor usar una pila existente para controlar la pantalla. El problema es conseguir que Java se muestre en este dispositivo.¿La mejor manera de Procesamiento para mostrar gráficos en una pantalla remota personalizada?

Mis pensamientos iniciales son: 1. Ejecutar Java en modalidad autónoma. 2. Utilice Xvbf como framebuffer. 3. Haga que se ejecute un programa que lea el framebuffer, lo desempaquete y luego lo muestre en el dispositivo remoto, a 30 fps. 4. Use las secuencias de comandos de procesamiento para generar los gráficos.

¿Tiene esto sentido? ¿Hay una mejor manera? No estoy tan bien informado sobre esta área, pero parece mejor que tratar de crear un nuevo java.awt.

Respuesta

1

Si el "dispositivo remoto" es simplemente algo conectado directamente por USB o algún controlador PCI, parece sonido (y exactamente el tipo de cosa para la que está hecho xvfb). Pero si el dispositivo remoto es algo conectado por ethernet o wifi, dependiendo de su resolución, puede encontrar el enfoque ingenuo de copiar todos los datos; cada cuadro requiere demasiado ancho de banda y, antes de que lo sepa, rodará su propia imagen de diferenciación de fotogramas. compresión. Si se encuentra siguiendo esa ruta, consulte la clase de software VNC/TightVNC que (al menos en la forma en que normalmente se usa en servidores sin cabeza) proporciona un virtual framebuffer/X-server similar a Xvfb accesible mediante un protocolo TCP/IP que puede transmitir el contenido de manera razonablemente eficiente mediante compresión y mostrarlo con el software de cliente VNC.

+0

Definitivamente una preocupación. La lectura del framebuffer es un elemento de riesgo. Se conectará a través de UDP a más de 100 Mbps de Ethernet a unos pocos dispositivos muy tontos que manejan los LED. Entonces eso debería estar bien. Las opciones de VNC parecen interesantes. Le daré un vistazo. Gracias. –

1

Otra opción propuesta es usar CreateGraphics() de Processing y escribir el resultado en un archivo. No sé sobre las compensaciones de esta opción. No es compatible con OPENGL. Y me preocupa que la escritura sea una operación sincrónica, por lo que los cálculos no pueden continuar durante la escritura, lo que dificultaría obtener una alta velocidad de cuadros, creo.

Cuestiones relacionadas