G60 G60
Páginas: [1] 2   Ir Abajo
  Imprimir  
Autor Tema: datarefs  (Leído 22535 veces)
0 Usuarios y 1 Visitante están viendo este tema.
03 Noviembre, 2009, 18:08:06
pablozgz
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 77



En línea
datarefs

Hola necesito ayuda con las datarefs de los motores de un 737

¿Como se leen los datos de cada motor por separado?

el dataref del ejemplo es el siguiente

sim/cockpit2/engine/indicators/N1_percent   float[8]   n   percent   "N1, %."

Este dataref es para 8 motores como se lee el del motor 2

Llevo 3 dias intentandolo y no lo consigo

Un saludo

Pablo Henar

03 Noviembre, 2009, 18:23:26 #1
supergolfo
Usuario Habitual
******
Desconectado Desconectado

Mensajes: 1563


The Spotter


WWW
En línea
Re: datarefs

Leyendo el dato que hay en float[2]? Intenta poner la cabecera de la función




Though I fly through the Valley of Death I shall fear no evil for I am at 80,000 feet and climbing
03 Noviembre, 2009, 18:33:37 #2
jvaldunciel
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 974



En línea
Re: datarefs

Si no recuerdo mal como funciona un array en C (hace muchos años que no escribo nada en C), los array  se recorren empezando por cero para el primer elemento y  tamaño -1 para el último. En este caso, con un array de tamaño 8,  los elementos empiezan en 0 y acaban en 7.

Creo que como el avión tiene dos motores debes leer el elemento 0 para el motor 1 y el 1 para el motor 2. Si intentas leer el elemento 2 estás trayendo la información del motor 3, que no hay.

Pero no he escrito ningún plugin y lo mismo me estoy equivocando.


03 Noviembre, 2009, 19:09:07 #3
supergolfo
Usuario Habitual
******
Desconectado Desconectado

Mensajes: 1563


The Spotter


WWW
En línea
Re: datarefs

Fallo de novato XD. Dato 2 = posición 3 en el array. Gracias XD




Though I fly through the Valley of Death I shall fear no evil for I am at 80,000 feet and climbing
03 Noviembre, 2009, 20:11:38 #4
pablozgz
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 77



En línea
Re: datarefs

El problema esta en que si pongo float[8] me lee el dato del motor 1 y aunque cambiel el numero siempre lee lo mismo

La pregunta es donde se le indica que quiero leer el dato 1  y 2

Un saludo

Pablo Henar

03 Noviembre, 2009, 20:18:22 #5
supergolfo
Usuario Habitual
******
Desconectado Desconectado

Mensajes: 1563


The Spotter


WWW
En línea
Re: datarefs

A ver, pon la linea de código para ver qué es lo que estás haciendo exactamente. De todas formas, para leer un array lo único que tienes que hacer es algo tal que float a = array[0]; //motor 1 float b = array[1]; //motor 2




Though I fly through the Valley of Death I shall fear no evil for I am at 80,000 feet and climbing
03 Noviembre, 2009, 20:22:10 #6
pablozgz
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 77



En línea
Re: datarefs

Haber te explico

Esta hecho en SIOC y uipc, lo unico que hace es tomar los datos de la lista de datarefs de x-plane, pero siempre coje el dato del motor 1

Pablo Henar

03 Noviembre, 2009, 21:19:31 #7
supergolfo
Usuario Habitual
******
Desconectado Desconectado

Mensajes: 1563


The Spotter


WWW
En línea
Re: datarefs

Sigo diciendo que pongas el código... Pon la función al completo para examinarla. Es que de lo contrario, no puedo decirte nada y menos de un lenguaje que me estoy enterando ahora que existe XD




Though I fly through the Valley of Death I shall fear no evil for I am at 80,000 feet and climbing
03 Noviembre, 2009, 21:37:45 #8
pablozgz
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 77



En línea
Re: datarefs

Te pongo los datos que pongo en uipxdatos que hacen referencia a estas variables

4001   sim/flightmodel/engine/ENGN_N1_ float[1]
4002   sim/flightmodel/engine/ENGN_N1_ float[2]   
4003   sim/flightmodel/engine/ENGN_N1_ float[3]
4004   sim/flightmodel/engine/ENGN_N1_ float[4]   
4005   sim/flightmodel/engine/ENGN_N1_ float[5]   
4006   sim/flightmodel/engine/ENGN_N1_ float[6]   
4007   sim/flightmodel/engine/ENGN_N1_ float[7]   

Un saludo

03 Noviembre, 2009, 23:22:17 #9
supergolfo
Usuario Habitual
******
Desconectado Desconectado

Mensajes: 1563


The Spotter


WWW
En línea
Re: datarefs

Y el sim/flightmodel/engine/ENGN_N1_ float[0]? Es lo que te decían antes. Un array, por norma general, empieza a contar desde cero. Tú también decías que era un array de tamaño 8 así que en cualquier caso, te faltaría una sentencia. Prueba a poner sim/flightmodel/engine/ENGN_N1_ float[0] porque me da que va a ser eso




Though I fly through the Valley of Death I shall fear no evil for I am at 80,000 feet and climbing
03 Noviembre, 2009, 23:25:33 #10
jvaldunciel
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 974



En línea
Re: datarefs

No se que es uixpdatos, pero por lo que acabo de leer (me pudo la curiosidad), el SIOC funciona con offsets. En el manual del XPIUPC los tienes todos. Así que no se porque necesitas los datarefs.

Por otro lado...

float es un tipo de dato de C (un tipo numérico decimal) . float[8] indica que el dataref es un array de "floats" de 8 elementos. No es un ejemplo de uso, es el tipo del dataref en C. El dataref realmente se llama sólo "sim/flightmodel/engine/ENGN_N1_"

El guión final me da a entender que a lo mejor lo tienes que usar así:

sim/flightmodel/engine/ENGN_N1_1
sim/flightmodel/engine/ENGN_N1_2
sim/flightmodel/engine/ENGN_N1_3
sim/flightmodel/engine/ENGN_N1_4

etc.

Si no te funciona lo de supergolfo intenta esto.

Si miras los datarefs en versión HTML, lo verás mejor: http://www.xsquawkbox.net/xpsdk/docs/DataRefs.html.


03 Noviembre, 2009, 23:37:34 #11
supergolfo
Usuario Habitual
******
Desconectado Desconectado

Mensajes: 1563


The Spotter


WWW
En línea
Re: datarefs

De todas formas... la próxima vez intenta hacerlo en C porque creo que te vas a complicar menos la vida XD. En C pondrías algo tipo:

float motor1 = ENGN_N1_ float[0]; //... o cualquiera que sea la función que te devuelva el valor correcto
float motor2 = ENGN_N1_ float[1];






Though I fly through the Valley of Death I shall fear no evil for I am at 80,000 feet and climbing
04 Noviembre, 2009, 16:01:01 #12
pablozgz
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 77



En línea
Re: datarefs

Hola os respono a la vez a los dos:

Supergolfo: Lo de programar en C lo intentaria pero 0 patatero
                  El poner la varable a 0 tambien lo he intentado y nada

Jvalduncel: El xpuipc utiliza una serie de ofset que hace que cualquier scrip para FS hecho con variables FSUIPC te funcione, en cambio yo uso el servidor IOCP de X-plane

Lo he dejado por imposible de momento no vaya a ser un Bug de x-plane

04 Noviembre, 2009, 16:12:04 #13
supergolfo
Usuario Habitual
******
Desconectado Desconectado

Mensajes: 1563


The Spotter


WWW
En línea
Re: datarefs

Pues entonces ya no se me ocurre nada más que decirte. Si haciendo float[1] ya te lee el dato de uno de los motores, por qué no iba a leerlo haciendo float[0]. Resulta un tanto extraño. Una cosa que se me ocurre, es que te esté devolviendo otro array. Me explico. Por definición, al tú hacer float[] estás declarando un array. Al tú hacer float[1], estás accediendo a esa posición del array y te devolverá ese valor. Luego, tú dices que de todas esas sentencias (float[1] hasta float[7], aunque insisto en que debería ser float[0] hasta float[7]) sólo te devuelve el dato de uno de los motores. Lo que puede estar devolviendo, vuelvo a decir que lo dudo mucho, es otro array pero en este caso de tamaño 2 que se correspondería con el número de motores del avión. Al imprimir ese dato, sólo te muestra la primera posición de ese array de tamaño dos. Sería cuestión de ponerlo de forma que imprima las dos. No sé si me he explicado bien. Es algo poco probable pero nunca está de más probar cosas distintas.

Sobre lo de C hazme caso y métele mano según tengas tiempo. Ya verás como luego se te convierte en un vicio




Though I fly through the Valley of Death I shall fear no evil for I am at 80,000 feet and climbing
04 Noviembre, 2009, 18:58:12 #14
pablozgz
Usuario Ocasional
***
Desconectado Desconectado

Mensajes: 77



En línea
Re: datarefs

Me puedes hacer un pequeño resumen para tontos de que se necesita para ir trasteando en C, programas, lenguaje y demas

Un saludo y muchas gracias por las respuestas

Pablo Henar

Tags:
Páginas: [1] 2   Ir Arriba
  Imprimir  
 
Ir a:  

www.x-plane.es.
Página creada en 0.052 segundos con 21 queries.