G60 G60
Páginas: [1] 2   Ir Abajo
  Imprimir  
Autor Tema: Crear Datarefs..... como???  (Leído 24067 veces)
0 Usuarios y 1 Visitante están viendo este tema.
29 Abril, 2011, 17:54:09
Dragun
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 679



WWW
En línea
Crear Datarefs..... como???

La pregunta es simple , pero se que es complicada .... Como se pueden crear Datarefs??? , en q lenguaje tengo q programar ..estc


Muchas gracias a todos


29 Abril, 2011, 19:00:08 #1
jorduran
Superusuario
*******
Desconectado Desconectado

Mensajes: 9986



WWW
En línea
Re: Crear Datarefs..... como???

Quizas aqui encuentres la solución

http://wiki.x-plane.com/Main_Page


Un buen aterrizaje es el que sales andando.
Un gran aterrizaje es cuando el avion puede seguir volando.

Telefonica ha cerrado mi WEB sin preaviso.
PHOTOBUCKET A CORTADO LAS FOTOS
29 Abril, 2011, 19:12:17 #2
bokepacha
Moderador Global Foro
Superusuario
*****
Desconectado Desconectado

Mensajes: 7601

liberate tute me ex inferis


WWW
En línea
Re: Crear Datarefs..... como???

El foro de complementos no es para dudas, por favor usad el correcto.

Muevo el post.


29 Abril, 2011, 19:41:26 #3
kha29096335
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 664



En línea
Re: Crear Datarefs..... como???

La pregunta es simple , pero se que es complicada .... Como se pueden crear Datarefs??? , en q lenguaje tengo q programar ..estc


Muchas gracias a todos

Así, en C++, la parte de registrarlo en DatarefEditor es opcional:

Código:
#include <stdio.h>
#include <string.h>
#include "XPLMPlugin.h"
#include "XPLMProcessing.h"
#include "XPLMDataAccess.h"

enum boolean {false = 0, true =1};

//Constants for custom DataRef registration on DataRef Editor plugin
long const MSG_ADD_DATAREF = 0x01000000; //Message to DataRef Editor to add a custom DataRef reference
long const NO_PLUGIN_ID = -1; //Return value when a plugin is not found by ID


//Global vars
boolean acf_first_three_gears_down_DatarefEditor_Published = false; //Is our custom DataRef yet published on DataRef Editor?
long first_three_gears_down = 0; //Internal variable to keep the value of our custom DataRef
XPLMDataRef acf_gear_deploy_dataref = NULL; //X-Plane DataRef reference ID
XPLMDataRef Accesor1 = NULL; //Handle to the Data Accessor for our custom DataRef

//Prototyping
//Main flight loop call back
float MyFlightLoopCallback(
float   inElapsedSinceLastCall,    
                        float   inElapsedTimeSinceLastFlightLoop,    
                        int     inCounter,    
                        void * inRefcon);

int fn_first_three_gears_down(void * inRefcon);


PLUGIN_API int XPluginStart(
char * outName,
char * outSig,
char * outDesc)
{
strcpy(outName, "Test3");
strcpy(outSig, "Kha29096335.examples.test3");
strcpy(outDesc, "The plugin creates a custom dataref");

//Flag for custom DataRef published in DatarefEditor - We need to publish our custom DataRef only one time, this flag is used to check if the DataRef is yet registered to avoid more than one registration at each loopback call
acf_first_three_gears_down_DatarefEditor_Published = false;

//Internal variable default value - This variable will keep the value for our custom DataRef - The default value is defined at variable declaration too
first_three_gears_down = 0;

acf_gear_deploy_dataref = XPLMFindDataRef("sim/aircraft/parts/acf_gear_deploy");
XPLMRegisterFlightLoopCallback(MyFlightLoopCallback, 1, 0);

return 1;
}


PLUGIN_API int XPluginEnable(void)
{
//Registration of the custom DataRef functions for curso04/aircraft/parts/acf_first_three_gears_down
//When our plugin is loaded, it needs register all custom DataRefs in X-Plane (one accessor for each custom DataRef)
Accesor1 = XPLMRegisterDataAccessor("curso04/aircraft/parts/acf_first_three_gears_down", xplmType_Int, 0, fn_first_three_gears_down, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0);
return 1;
}

PLUGIN_API void XPluginDisable(void)
{
//Unregistration of the custom DataRef
//When our plugin is unloaded, we need unregister all customs DataRefs because they will be unavailable
XPLMUnregisterDataAccessor(Accesor1);
}

PLUGIN_API void XPluginStop(void)
{
// The Callback function is unregistered and the window destroyed
XPLMUnregisterFlightLoopCallback(MyFlightLoopCallback,NULL);
}

float MyFlightLoopCallback(
                                   float                inElapsedSinceLastCall,    
                                   float                inElapsedTimeSinceLastFlightLoop,    
                                   int                  inCounter,    
                                   void *               inRefcon)
{
long PluginID = XPLM_NO_PLUGIN_ID;
float acf_gear_deploy_values[]={-1,-1,-1};
boolean all_down_flag = false;
int i = 0;

//Publication on the DatarefEditor plugin for testing purposes
//We will register our custom DataRef in DatarefEditor if it is not register yet (checking the flag)
if(acf_first_three_gears_down_DatarefEditor_Published == false)
{
//We look for the DatarefEditor's internal id to send the 'register DataRef' message to him
PluginID = XPLMFindPluginBySignature("xplanesdk.examples.DataRefEditor");
//If the id for DatarefEditor is found, we send the message
if (PluginID != XPLM_NO_PLUGIN_ID)
{
XPLMSendMessageToPlugin(PluginID, MSG_ADD_DATAREF, "curso04/aircraft/parts/acf_first_three_gears_down");
//We set the status of the DataRef to 'published in DatarefEditor'
acf_first_three_gears_down_DatarefEditor_Published = true;
}
}

//Sets the custom DataRef based on first tree gears status
XPLMGetDatavf(acf_gear_deploy_dataref, acf_gear_deploy_values, 0, 3);
all_down_flag = true;
//if(sizeof(acf_gear_deploy_values) / sizeof(*acf_gear_deploy_values) > 3)
if(acf_gear_deploy_values[0] != -1)
{
for (i=0;i<3;i++)
{
if (acf_gear_deploy_values[i] < 1.0)
{
all_down_flag = false;
}
}
if (all_down_flag == true)
first_three_gears_down = 1;
else
first_three_gears_down = 0;
}
return 1.0;
}

int fn_first_three_gears_down(void * inRefcon)
{
return first_three_gears_down;
}

29 Abril, 2011, 22:20:28 #4
Dragun
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 679



WWW
En línea
Re: Crear Datarefs..... como???

Madre mia , no me entero, kha29096335 por donde podria empezar para conseguir crear las datarefs, me refiero a conocimientos claro, .....esto va ser un gran dolor de cabeza ......


30 Abril, 2011, 00:16:34 #5
awall86
Usuario Iniciado
****
Desconectado Desconectado

Mensajes: 335



WWW
En línea
Re: Crear Datarefs..... como???

Kha, hoy tu me estas enseñando mas, que todo un año de facultad...

Ya que estamos, abusamos.. (en el buen sentido de la palabra). Los Datarefs creados desde plugin son accesibles desde otros plugins, es decir se publican para ser consultados y/o modificados por otro/s plugins. Mis preguntas son:

Es posible referenciarse a un dataref publicado desde un plugin desde Planemaker?. Es posible crear un switch desde planemaker que modifique el valor de este dataref?

Si es así, las posibilidades se me multiplican exponencialmente.

Un saludo y gracias


30 Abril, 2011, 00:41:10 #6
kha29096335
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 664



En línea
Re: Crear Datarefs..... como???

Madre mia , no me entero, kha29096335 por donde podria empezar para conseguir crear las datarefs, me refiero a conocimientos claro, .....esto va ser un gran dolor de cabeza ......

Pues no te quedará más remedio que aprender C su estructura y demás, no en demasiada profundidad pero si como para comprender un programa sencillo escrito. Luego con la wikipedia de X-Plane, tras conocer C ya es más sencillo, ahí te explican para qué es cada función, aunque a veces tienes que echar mano de la imaginación que solo la experiencia te puede dar.

Ánimo que no es tan complicado. No vamos a decir que es un paseo por el parque, pero tampoco es mecánica cuántica.

30 Abril, 2011, 00:46:22 #7
kha29096335
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 664



En línea
Re: Crear Datarefs..... como???

Es posible referenciarse a un dataref publicado desde un plugin desde Planemaker?. Es posible crear un switch desde planemaker que modifique el valor de este dataref?

Si, por supuesto, cualquier DataRef publicado mediante la API de X-Plane funcionará también en la cabina 2D y 3D si referencias instrumentos y animaciones a él, y por extensión, en principio, en todo aquello que se pueda gobernar dediante un DataRef.

También puedes crear custom commands, en lugar de DataRefs, que son acciones en lugar de valores, de forma que al pulsar un botón en la cabina, una función de tu plugin sea llamada y ejecutada, y ahí ya puedes hacer misa. INcluso puedes sobre-escribir la acción de un command ya existente en X-Plane y hacer que despues de la ejecución de tu rutina, X-Plane pase a ejecutar la acción por defecto de ese command o no lo haga. Las posibilidades son infinitas.

30 Abril, 2011, 09:14:13 #8
Dragun
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 679



WWW
En línea
Re: Crear Datarefs..... como???

Madre mia , no me entero, kha29096335 por donde podria empezar para conseguir crear las datarefs, me refiero a conocimientos claro, .....esto va ser un gran dolor de cabeza ......

Pues no te quedará más remedio que aprender C su estructura y demás, no en demasiada profundidad pero si como para comprender un programa sencillo escrito. Luego con la wikipedia de X-Plane, tras conocer C ya es más sencillo, ahí te explican para qué es cada función, aunque a veces tienes que echar mano de la imaginación que solo la experiencia te puede dar.

Ánimo que no es tan complicado. No vamos a decir que es un paseo por el parque, pero tampoco es mecánica cuántica.
Pues nda me pondre a ello ,muchas gracias por la ayuda tan transparente.

Q me resultaria mas facil , c++ o vb6, para futuras intenciones tambien, o en si el c++ es como el Pascal al Delphy , una base para aprender y comprender mejor

He  encontrado esto para intentar comprender la extructura de C , cual me recomiendas ..??

http://c.conclase.net/
http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/manualcpp.pdf  ( este creo q ya lo recomendastes en otro post ?

Tambien estos de VB6 , a simple vista lo veo mas facil

http://www.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/VisualBasic6/vbasic60.pdf

O recomiendame algo con lo q pueda aprender....otra cosa, q compilador se usa, puedo usar VB6 ?

pd:Tengo conocimientos de pascal y estoy con delphy ahora mismo....
« Última modificación: 30 Abril, 2011, 10:00:39 por Dragun »


30 Abril, 2011, 10:30:16 #9
awall86
Usuario Iniciado
****
Desconectado Desconectado

Mensajes: 335



WWW
En línea
Re: Crear Datarefs..... como???

Es posible referenciarse a un dataref publicado desde un plugin desde Planemaker?. Es posible crear un switch desde planemaker que modifique el valor de este dataref?

Si, por supuesto, cualquier DataRef publicado mediante la API de X-Plane funcionará también en la cabina 2D y 3D si referencias instrumentos y animaciones a él, y por extensión, en principio, en todo aquello que se pueda gobernar dediante un DataRef.

También puedes crear custom commands, en lugar de DataRefs, que son acciones en lugar de valores, de forma que al pulsar un botón en la cabina, una función de tu plugin sea llamada y ejecutada, y ahí ya puedes hacer misa. INcluso puedes sobre-escribir la acción de un command ya existente en X-Plane y hacer que despues de la ejecución de tu rutina, X-Plane pase a ejecutar la acción por defecto de ese command o no lo haga. Las posibilidades son infinitas.


Madre mia !!!! Se acaba de abrir un espectro de posibilidades enorme. Caballero, es usted una verdadera enciclopedia viviente. Muchas gracias por la información.

A partir de este punto los sistemas del C-130 solo están limitados por mi propia limitación.

Animo Dragun, que asusta mas de lo que realmente es. Todo empieza con un "Hello World", y a partir de ahi ya no puedes parar.... Sonreir Sonreir

Saludos


30 Abril, 2011, 12:19:01 #10
Dragun
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 679



WWW
En línea
Re: Crear Datarefs..... como???

Jejeje....' hola mundo' esa es la base,por eso pregunto tanto la documentacion oportuna, por q se q es primordial, aprender y entender la base....despues ya mejoraremos conocimientos pero la base es importantisima...


30 Abril, 2011, 13:42:28 #11
kha29096335
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 664



En línea
Re: Crear Datarefs..... como???

Pues nda me pondre a ello ,muchas gracias por la ayuda tan transparente.

Q me resultaria mas facil , c++ o vb6, para futuras intenciones tambien, o en si el c++ es como el Pascal al Delphy , una base para aprender y comprender mejor

He  encontrado esto para intentar comprender la extructura de C , cual me recomiendas ..??

http://c.conclase.net/
http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/manualcpp.pdf  ( este creo q ya lo recomendastes en otro post ?

Tambien estos de VB6 , a simple vista lo veo mas facil

http://www.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/VisualBasic6/vbasic60.pdf

O recomiendame algo con lo q pueda aprender....otra cosa, q compilador se usa, puedo usar VB6 ?

pd:Tengo conocimientos de pascal y estoy con delphy ahora mismo....

Más fácil, de calle, VB6, pero no te lo aconsejo, no al menos si lo quieres orientar a la creación de plugins para X-Plane. Aprende C, ANSI C, para ser exactos, y luego ve ampliando a C++ que ya introduce conceptos de programación orientada a objetos.

El VB6 lo bueno que tiene es que es muy directo, es extramádamente sencillo crear una pantalla con cuatro controles y es una programación bastante asistida, no automática, pero bastante asistida. El problema con él es la dificultad de "conectarlo" con APIs de terceros, porque normalmente todos los interfaces de casi cualquier API que nombres, han sido pensadas para ser accedidas desde C. Luego para el propósito de desarrollar plugins y demás, céntrate en C que no te merece la pena VB6 para ese propósito. Por otra parte, VB6 está ya anticuado, y su equivalente actual es Visual Basic .Net, el C, por contra partida, nunca se va a quedar "viejo".

Mi consejo pues, y que seguro que me lo agradecerás dentro de unos meses / años, aprende C y C++, por ese orden.

En cuanto a los manuales, el PDF ese parece bastante asequible y te explica lo básico, pero no puede recomendarse específicamente una documentación sobre otra porque lo más habitual es que sean complementarias, de modo que lo que te explican en un sitio, quizá no te venga en otro y viceversa, de modo que como Internet es infinita, o casi, lo mejor es que te hagas con cuanta más información mejor, te leas un manual, apliques a la práctica lo que allí se expone y luego pases a otro manual distinto y hagas lo propio. Ten en cuenta no se trata de un camino que se pueda recorrer en una semana, aunque tu ya tienes cierta ventaja al conocer otros lenguajes de programación. Los conocimientos de Pascal te vendrán bien para C, te lo aseguro.

Como compilador, yo he usado Visual Studio C++ de Microsoft, de pago, pero recientemente me voy a pasar a MinGW y Codeblocks, que estos son gratuitos y se podrá hacer exactamente lo mismo. MinGW es el compilador de GCC para Windows (mi sistema operativo mayoritario) y Codeblocks es un IDE para C / C++ que se integra perfectamente con MinGW.

Tienes las mismas versiones para Linux, si prefieres ese S.O. y supongo que en Apple también habrá sus equivalencias.

30 Abril, 2011, 13:48:30 #12
kha29096335
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 664



En línea
Re: Crear Datarefs..... como???

Madre mia !!!! Se acaba de abrir un espectro de posibilidades enorme. Caballero, es usted una verdadera enciclopedia viviente. Muchas gracias por la información.

A partir de este punto los sistemas del C-130 solo están limitados por mi propia limitación.

Animo Dragun, que asusta mas de lo que realmente es. Todo empieza con un "Hello World", y a partir de ahi ya no puedes parar.... Sonreir Sonreir

Saludos


Muchas de nada, y por mucho que lo piense es mucho más lo que me falta por aprender que lo que ya sé, y solo en este tema. Como decía aquél. "Solo sé que no sé nada". Podría aprender muchísimo de vosotros.

Las posibilidades son infinitas, y si sabes programar con la API de OpenGL con soltura, ya ni te digo lo que puedes hacer.

Estoy deseando ver como evolucionan tus desarrollos con todo esto y tu talento. Gracias awall.

Para cualquier cosa que necesitéis, ya sabéis donde estoy.

30 Abril, 2011, 14:54:20 #13
Dragun
Usuario Frecuente
*****
Desconectado Desconectado

Mensajes: 679



WWW
En línea
Re: Crear Datarefs..... como???

ok , tenia q preguntarte por Ansi C , q no sabia q era, puedo entender q seria la base? si es asi voy a haver lo siguiente ...

ANSI C (879 KB, Actualizado el 27-04-04)
C++ (Básico) (658 KB, Actualizado el 1-06-04)
C++ (Avanzado) (720 KB, Actualizado el 1-06-04)
(todo en este link http://www.tecnun.es/recursos/labmat0.html)

Muchas gracias por la info, lo bueno es q nos vamos a liar a estudiar con un amigo ...eso sera bueno seguro.....muchas gracias por las aclaraciones ....se valora tu info...muchisima


30 Abril, 2011, 17:59:20 #14
awall86
Usuario Iniciado
****
Desconectado Desconectado

Mensajes: 335



WWW
En línea
Re: Crear Datarefs..... como???

Dragun, empieza por aqui: http://www.xsquawkbox.net/xpsdk/mediawiki/Category:Documentation

Esta pagina no te enseñará a programar en C, pero si como aplicarlo a la creación de un plugin.
La mejor forma de aprender es buscar ejemplos y analizarlos tratando de entender la logica que encierran. Yo hasta hace un par de meses no había hecho una sola linea e C, y actualmente mi plugin, ya maneja varios sistemas del avión. Todo es cuestión de investigación y paciencia.

Como dice la frase: "La necesidad es la madre de la inventiva..."

Al igual que Kha, pero a un menor nivel de conocimientos  Sonreir, si puedo serte de ayuda en algo, no tienes mas que pedirlo.

Un saludo


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

www.x-plane.es.
Página creada en 0.09 segundos con 19 queries.