4,400
edits
m (Robot: Cosmetic changes) |
|||
| Line 5: | Line 5: | ||
Desafortunadamente, dadas las diferentes combinaciones de sistemas operativos soportados por FlightGear (possiblemente en otros lenguajes) y joysticks disponibles, pueda hacer que tu joystick no funcione fuera del conjunto. Básicamente, hay dos accercamientos alternativos de hacerlo funcionar, siendo el primero como el preferido. | Desafortunadamente, dadas las diferentes combinaciones de sistemas operativos soportados por FlightGear (possiblemente en otros lenguajes) y joysticks disponibles, pueda hacer que tu joystick no funcione fuera del conjunto. Básicamente, hay dos accercamientos alternativos de hacerlo funcionar, siendo el primero como el preferido. | ||
==Incorporar soporte de joystick== | == Incorporar soporte de joystick == | ||
===Observaciones generales=== | === Observaciones generales === | ||
Para hacer que la auto-detección del joystick funcione, un archivo xml vinculante debe existir para cada palanca de mando. Este archivo describe que ejes y que botones van a ser usados y las funciones para controlar en FlightGear. La asociación entre funciones de botones y ejes son llamadas “bindings”(vinculaciones). Este archivo de vinculaciones puede tener cualquier nombre tan largo como corresponda a las entradas existentes en el archivo de descripción de joystick | Para hacer que la auto-detección del joystick funcione, un archivo xml vinculante debe existir para cada palanca de mando. Este archivo describe que ejes y que botones van a ser usados y las funciones para controlar en FlightGear. La asociación entre funciones de botones y ejes son llamadas “bindings”(vinculaciones). Este archivo de vinculaciones puede tener cualquier nombre tan largo como corresponda a las entradas existentes en el archivo de descripción de joystick | ||
| Line 20: | Line 20: | ||
un archivo que pudiera funcionar para tu joystick. Si existe tal archivo y tu palanca de juego funciona con otras aplicaciones, entonces deberá funcionar en FlightGear la primera vez que lo ejecutes. Si tal archivo no existe, luego discutiremos en una section posterior como crear tal tipo de archivo copiando y pegando vinculaciones desde los ejemplos que estan incluidos en FlightGear. | un archivo que pudiera funcionar para tu joystick. Si existe tal archivo y tu palanca de juego funciona con otras aplicaciones, entonces deberá funcionar en FlightGear la primera vez que lo ejecutes. Si tal archivo no existe, luego discutiremos en una section posterior como crear tal tipo de archivo copiando y pegando vinculaciones desde los ejemplos que estan incluidos en FlightGear. | ||
===Comprobando que tu joystick está funcionando=== | === Comprobando que tu joystick está funcionando === | ||
¿Ve tu computadora tu joystick? Una forma de responder esta pregunta sobre GNU/Linux es reiniciar tu sistema e inmediatamente entrar en la [[command line|linea de comandos]] | ¿Ve tu computadora tu joystick? Una forma de responder esta pregunta sobre GNU/Linux es reiniciar tu sistema e inmediatamente entrar en la [[command line|linea de comandos]] | ||
| Line 31: | Line 31: | ||
Esta linea nos indica que un joystick has sido identificado por si mismo como un SAITEK CYBORG 3D USB al sistema operativo. Este no nos dice que el driver vea tu joystick. Si esta trabajando bajo Windows, el metodo de arriba no funciona, pero aun puedes acudir al siguieente parrafo. | Esta linea nos indica que un joystick has sido identificado por si mismo como un SAITEK CYBORG 3D USB al sistema operativo. Este no nos dice que el driver vea tu joystick. Si esta trabajando bajo Windows, el metodo de arriba no funciona, pero aun puedes acudir al siguieente parrafo. | ||
===Confirmar que el driver reconoce tu joystick=== | === Confirmar que el driver reconoce tu joystick === | ||
FlightGear viene equipado con una utilidad que se llama js demo. Esta reporta el numero de joystick conectado al sistema, sus respectivos “nombres”, y sus capacidades. Bajo GNU/Linux, puedes ejecutar js demo desde la carpeta /FlightGear/bin como sigue: | FlightGear viene equipado con una utilidad que se llama js demo. Esta reporta el numero de joystick conectado al sistema, sus respectivos “nombres”, y sus capacidades. Bajo GNU/Linux, puedes ejecutar js demo desde la carpeta /FlightGear/bin como sigue: | ||
| Line 61: | Line 61: | ||
Primero has de notar que js demo reporta que numero es asignado a cada palanca de mando reconocida por el driver. Tambien, haz de notar que el “nombre” de cada joystick reportado está tambien incluido entre comillas. Necesitaremos los nombres para cada archivo de interconexión cuando comenzemos a escribir los archivos de interconexión xml para cada palanca de mandos. | Primero has de notar que js demo reporta que numero es asignado a cada palanca de mando reconocida por el driver. Tambien, haz de notar que el “nombre” de cada joystick reportado está tambien incluido entre comillas. Necesitaremos los nombres para cada archivo de interconexión cuando comenzemos a escribir los archivos de interconexión xml para cada palanca de mandos. | ||
===Identificar el numero de ejes y botones=== | === Identificar el numero de ejes y botones === | ||
Los Ejes y el numero de botones pueden ser identificados usando js demo como sigue. Observando el mensaje de salida de js demo al trabajar con ejes y botones puedes determinar que ejes y que botones son los asignados a cada palanca de mando. Esto deberia notarse por numeros que por lo general empiezan en cero. | Los Ejes y el numero de botones pueden ser identificados usando js demo como sigue. Observando el mensaje de salida de js demo al trabajar con ejes y botones puedes determinar que ejes y que botones son los asignados a cada palanca de mando. Esto deberia notarse por numeros que por lo general empiezan en cero. | ||
| Line 90: | Line 90: | ||
Cuando mueves algun control, los numeros cambian después de pulsar cualquier boton o mover el control correspondiente, el “off” cambia a “on” después de pulsar el botón correspondiente. De esta forma, puedes anotar rápidamente los numeros de eje y de botón para cada función sin liarte con el binario. | Cuando mueves algun control, los numeros cambian después de pulsar cualquier boton o mover el control correspondiente, el “off” cambia a “on” después de pulsar el botón correspondiente. De esta forma, puedes anotar rápidamente los numeros de eje y de botón para cada función sin liarte con el binario. | ||
===Escribir o editar los archivos xml de interconexión de Joystick=== | === Escribir o editar los archivos xml de interconexión de Joystick === | ||
En este punto, tienes confirmado que ambos, sistema operativo y driver reconocen tu(s) joystick(s). Tambien conoces varias formas de identificar el “nombre” de tu palanca de control que el joystick reporta al driver y al sistema operativo. Necesitarás una lista escrita de que función de control deseas tener asignada a cada eje y botón y sus correspondientes numeros. | En este punto, tienes confirmado que ambos, sistema operativo y driver reconocen tu(s) joystick(s). Tambien conoces varias formas de identificar el “nombre” de tu palanca de control que el joystick reporta al driver y al sistema operativo. Necesitarás una lista escrita de que función de control deseas tener asignada a cada eje y botón y sus correspondientes numeros. | ||
| Line 124: | Line 124: | ||
|} | |} | ||
Asumiremos que tu hipotético mando de control indica el “nombre” QUICK STICK 3D USB al sistema y al driver. Con todos los ejemplos incluidos en FlightGear, la manera más fácil de autodetectar una palanca de control no soportada, es editando un archivo xml de interconexión existente. Mira en los archivos xml en las sub-carpetas | Asumiremos que tu hipotético mando de control indica el “nombre” QUICK STICK 3D USB al sistema y al driver. Con todos los ejemplos incluidos en FlightGear, la manera más fácil de autodetectar una palanca de control no soportada, es editando un archivo xml de interconexión existente. Mira en los archivos xml en las sub-carpetas '''/FlightGear/Input/Joysticks/'''. Despues de evaluar varios de los archivos xml de interconexión incluidos en FlightGear, decidimos editar el archivo | ||
'''/FlightGear/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml.''' | '''/FlightGear/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml.''' | ||
| Line 179: | Line 179: | ||
Varios usuarios han reportado que los numeros de eje y botones asignados a funciones pueden ser diferentes con el mismo joystick en Windows o en GNU/Linux. El procedimiento de arriba permitiria a cada uno cambiar facilmente el archivo de interconexión xml creado para usar en los diferentes sistemas operativos. | Varios usuarios han reportado que los numeros de eje y botones asignados a funciones pueden ser diferentes con el mismo joystick en Windows o en GNU/Linux. El procedimiento de arriba permitiria a cada uno cambiar facilmente el archivo de interconexión xml creado para usar en los diferentes sistemas operativos. | ||
===Informar a FlightGear sobre tu nuevo archivo xml de interconexión=== | === Informar a FlightGear sobre tu nuevo archivo xml de interconexión === | ||
Antes de que FlightGear pueda usar tu nuevo archivo xml, necesitas editarlo | Antes de que FlightGear pueda usar tu nuevo archivo xml, necesitas editarlo | ||
| Line 190: | Line 190: | ||
Puedes decir como ha interpretado FlightGear tu configuración de palanca de mando seleccionando Help -> Joystick Information desde el Menú. | Puedes decir como ha interpretado FlightGear tu configuración de palanca de mando seleccionando Help -> Joystick Information desde el Menú. | ||
===Algunas pistas para usuarios de Windows=== | === Algunas pistas para usuarios de Windows === | ||
Básicamente, los procedimientos descritos arriba deberian funcionar tambien para Windows. Si tu joystick/yoke/pedales work out of the box or if you get it to work using the methods above, fine. Desafortunadamente puede haber algunos problemas. | Básicamente, los procedimientos descritos arriba deberian funcionar tambien para Windows. Si tu joystick/yoke/pedales work out of the box or if you get it to work using the methods above, fine. Desafortunadamente puede haber algunos problemas. | ||
| Line 203: | Line 203: | ||
Desafortunadamente, no hemos encontrado la forma de que funcionen los pedales tambien, de esta forma. Por tanto, en casos como este (y otros) tendrás que intentar un metodo alternativo para asignar los controles del joystick. | Desafortunadamente, no hemos encontrado la forma de que funcionen los pedales tambien, de esta forma. Por tanto, en casos como este (y otros) tendrás que intentar un metodo alternativo para asignar los controles del joystick. | ||
==Soporte de Joystick usando entradas.fgfsrc== | == Soporte de Joystick usando entradas.fgfsrc == | ||
Afortunadamente, hay una herramienta ahora disponible, la cual lleva la mayor parte de la carga del usuario medio quien, quizas, no está esté experimentado con XML, el lenguaje con el cual esos archivos han sido escritos. | Afortunadamente, hay una herramienta ahora disponible, la cual lleva la mayor parte de la carga del usuario medio quien, quizas, no está esté experimentado con XML, el lenguaje con el cual esos archivos han sido escritos. | ||
| Line 224: | Line 224: | ||
'''fgfsrc.js''' dentro de '''.fgfsrc''' (UNIX)/'''system.fgfsrc''' (Windows) | '''fgfsrc.js''' dentro de '''.fgfsrc''' (UNIX)/'''system.fgfsrc''' (Windows) | ||
y colocalo dentro del directorio base de Flightgear. En caso de que hallas escrito un archivo de opciones, abrelo tambien como fgfsrc.js con un editor y copia las entradas desde fgfsrc.js adentro de .fgfsrc/system.fgfsrc. Una advertencia: La salida de of fgjs es formato UNIX. Como resultado, los editores Windows no deberian mostrarlo en la forma adecuada. Sugiero usar un editor que sea capaz de manejar tambien formatos UNIX (un viejo pero adorado en este respecto es | y colocalo dentro del directorio base de Flightgear. En caso de que hallas escrito un archivo de opciones, abrelo tambien como fgfsrc.js con un editor y copia las entradas desde fgfsrc.js adentro de .fgfsrc/system.fgfsrc. Una advertencia: La salida de of fgjs es formato UNIX. Como resultado, los editores Windows no deberian mostrarlo en la forma adecuada. Sugiero usar un editor que sea capaz de manejar tambien formatos UNIX (un viejo pero adorado en este respecto es PFE, para ello haz una busqueda en la red). Mi editor freeware de archivos favorito para este proposito, aunque algo añejado, todavia es PFE, que puede ser obtenido en | ||
http://www.lancs.ac.uk/people/cpaap/pfe/. | http://www.lancs.ac.uk/people/cpaap/pfe/. | ||
La asignación eje/botón de fgjs debería, al menos, tomar las asignaciones de eje correctos, su salida podría necesitar algún ajuste. | La asignación eje/botón de fgjs debería, al menos, tomar las asignaciones de eje correctos, su salida podría necesitar algún ajuste. Pudiera haber ejes que se muevan en sentido contrario del que deberían, las zonas muertas pudieran ser muy pequeñas etc. Por ejemplo, Yo tuve que cambiar | ||
–prop:/input/joysticks/js[1]/axis[1]/binding/factor=-1.0 | –prop:/input/joysticks/js[1]/axis[1]/binding/factor=-1.0 | ||
| Line 276: | Line 276: | ||
|} | |} | ||
Deberías poder al menos hacer funcionar tu joystick con estas líneas. Concerniente a los ajustes finos, por ejemplo, hacer funcionar los botones del joystick, John Check ha escrito un README muy útil incluido en el paquete base que puede ser encontrado en '''FlightGear/Docs/Readme/Joystick.html'''. En caso de algún problema | Deberías poder al menos hacer funcionar tu joystick con estas líneas. Concerniente a los ajustes finos, por ejemplo, hacer funcionar los botones del joystick, John Check ha escrito un README muy útil incluido en el paquete base que puede ser encontrado en '''FlightGear/Docs/Readme/Joystick.html'''. En caso de algún problema con tu dispositivo de entrada, es altamente recomendado echar un vistazo a este documento. | ||
==Algo más sobre programación de archivos XML de joystick== | == Algo más sobre programación de archivos XML de joystick == | ||
===Casos generales=== | === Casos generales === | ||
* Cuando se prueba un nuevo archivo xml es mejor iniciar FlightGear a través de la ventana de comando (mejor que en la interfaz gráfica GUI). | * Cuando se prueba un nuevo archivo xml es mejor iniciar FlightGear a través de la ventana de comando (mejor que en la interfaz gráfica GUI). Cualquier mensaje de error será mostrado en la terminal. Los mensajes de error te darán el mensaje y el numero de linea, ayudandotea ubicar con exactitud cualquier error. | ||
* Los errores pueden ser detectados en el arranque inicial o en tiempo de ejecución. | * Los errores pueden ser detectados en el arranque inicial o en tiempo de ejecución. Ambos tipos de errores serán mostrados en la terminal. | ||
* Uno de los errores mas comunes es icluir algun caracter que se le atragante a XML. | * Uno de los errores mas comunes es icluir algun caracter que se le atragante a XML. Estos caracteres incluyen | ||
& < -- | & < -- | ||
| Line 291: | Line 291: | ||
* Si tus escritos de programación contienen alguno de esos caracteres, tienes que encerrar los escritos con <script><![CDATA[...]]></script>. Alternativamente, puedes 'escapar' de los caracteres, Ej. "<" convirtiendolo en "<". | * Si tus escritos de programación contienen alguno de esos caracteres, tienes que encerrar los escritos con <script><![CDATA[...]]></script>. Alternativamente, puedes 'escapar' de los caracteres, Ej. "<" convirtiendolo en "<". | ||
* Notar que desde la versión 1.9.1 no hay forma de decirle a FlightGear que recargue los archivos de joystick en tiempo de ejecución. | * Notar que desde la versión 1.9.1 no hay forma de decirle a FlightGear que recargue los archivos de joystick en tiempo de ejecución. Por tanto para probar cualquier cambio en tus archivos debes salir de FlightGear y reiniciar, un proceso que ocupa algo de tiempo. | ||
* Puedes encontrar algunos ejemplos con diferentes formas de programar joysticks simplemente examinando los archivos de joystick xml que están en el paquete de FlightGear. | * Puedes encontrar algunos ejemplos con diferentes formas de programar joysticks simplemente examinando los archivos de joystick xml que están en el paquete de FlightGear. Mira en el directorio FlightGear/data/input/joysticks | ||
* Algunas funciones avanzadas pueden ser programadas usando el lenguaje de programación NASAL. | * Algunas funciones avanzadas pueden ser programadas usando el lenguaje de programación NASAL. Estos escritos de programación son cerrados entre etiquetas <script></script> en el archivo XML. Será de ayuda: | ||
** Una guia del [[Nasal scripting language]] de FlightGear | ** Una guia del [[Nasal scripting language]] de FlightGear | ||
** [[Nasal FAQ]] | ** [[Nasal FAQ]] | ||
| Line 306: | Line 306: | ||
* Todos los códigos Nasal comparten un nombre-espacio común, por tanto es posible seleccionar una variable en una interconexión Nasal, y leerla en otra. | * Todos los códigos Nasal comparten un nombre-espacio común, por tanto es posible seleccionar una variable en una interconexión Nasal, y leerla en otra. | ||
===Pistas Útiles para scripts=== | === Pistas Útiles para scripts === | ||
Algunas ideas particulares útiles para programar scripts en archivos XML de palanca de mandos: | Algunas ideas particulares útiles para programar scripts en archivos XML de palanca de mandos: | ||
* getprop y setprop pueden ser usados para obtener y seleccionar propiedades desde el arbol de propiedades internas: | * getprop y setprop pueden ser usados para obtener y seleccionar propiedades desde el arbol de propiedades internas: | ||
| Line 320: | Line 320: | ||
print("Aquí", " va ", "el texto"); | print("Aquí", " va ", "el texto"); | ||
* Puedes sacar por pantalla información en FlightGear a través de pantalla emergente. | * Puedes sacar por pantalla información en FlightGear a través de pantalla emergente. Esto es muy útil para dar al usuario respuesta sobre cambios que no sean obvios a traves del panel. Esto tambien puede ser útil para la depuración de errores. Ejemplo: | ||
gui.popupTip("Parking Brake ON"); | gui.popupTip("Parking Brake ON"); | ||
| Line 341: | Line 341: | ||
Debes saber que "var" crea variables en el ámbito local, la cual causaria problemas si estas intentando usar una variable globalmente entre todos tus archivos de interconexión de palanca de mando XML. | Debes saber que "var" crea variables en el ámbito local, la cual causaria problemas si estas intentando usar una variable globalmente entre todos tus archivos de interconexión de palanca de mando XML. | ||
* Puedes incluir una sección de código que corra en el comienzo para inicializar variables, crear funciones, etc. | * Puedes incluir una sección de código que corra en el comienzo para inicializar variables, crear funciones, etc. Ejemplo: | ||
<PropertyList> | <PropertyList> | ||
<name type="string">My joystick name</name> | <name type="string">My joystick name</name> | ||
| Line 355: | Line 355: | ||
</nasal> | </nasal> | ||
==Recursos== | == Recursos == | ||
* [http://www.flightgear.org/Docs/getstart/getstartch3.html#x8-360003.6 The FlightGear Manual] | * [http://www.flightgear.org/Docs/getstart/getstartch3.html#x8-360003.6 The FlightGear Manual] | ||
[[de:Joystick]] | [[de:Joystick]] | ||
[[en:Joystick]] | [[en:Joystick]] | ||