Foro x-plane.es
Foro General
»
Zona de consultas
»
Crear Datarefs..... como???
Usuario:
Recordar
Contraseña:
Inicio
Ayuda
Tags
Ingresar
Registrarse
Páginas: [
1
]
2
Ir Abajo
« anterior
próximo »
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
Mensajes: 679
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
www.xcockpits.com
29 Abril, 2011, 19:00:08
#1
jorduran
Superusuario
Desconectado
Mensajes: 9986
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
Mensajes: 7601
liberate tute me ex inferis
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
Mensajes: 664
En línea
Re: Crear Datarefs..... como???
Cita de: Dragun en 29 Abril, 2011, 17:54:09
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
Mensajes: 679
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 ......
www.xcockpits.com
30 Abril, 2011, 00:16:34
#5
awall86
Usuario Iniciado
Desconectado
Mensajes: 335
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
Adrian Fernández Gómez
http://alcala-sim.blogspot.com
http://www.alcala-sim.com
30 Abril, 2011, 00:41:10
#6
kha29096335
Usuario Frecuente
Desconectado
Mensajes: 664
En línea
Re: Crear Datarefs..... como???
Cita de: Dragun en 29 Abril, 2011, 22:20:28
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
Mensajes: 664
En línea
Re: Crear Datarefs..... como???
Cita de: awall86 en 30 Abril, 2011, 00:16:34
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
Mensajes: 679
En línea
Re: Crear Datarefs..... como???
Cita de: kha29096335 en 30 Abril, 2011, 00:41:10
Cita de: Dragun en 29 Abril, 2011, 22:20:28
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
»
www.xcockpits.com
30 Abril, 2011, 10:30:16
#9
awall86
Usuario Iniciado
Desconectado
Mensajes: 335
En línea
Re: Crear Datarefs..... como???
Cita de: kha29096335 en 30 Abril, 2011, 00:46:22
Cita de: awall86 en 30 Abril, 2011, 00:16:34
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....
Saludos
Adrian Fernández Gómez
http://alcala-sim.blogspot.com
http://www.alcala-sim.com
30 Abril, 2011, 12:19:01
#10
Dragun
Usuario Frecuente
Desconectado
Mensajes: 679
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...
www.xcockpits.com
30 Abril, 2011, 13:42:28
#11
kha29096335
Usuario Frecuente
Desconectado
Mensajes: 664
En línea
Re: Crear Datarefs..... como???
Cita de: Dragun en 30 Abril, 2011, 09:14:13
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
Mensajes: 664
En línea
Re: Crear Datarefs..... como???
Cita de: awall86 en 30 Abril, 2011, 10:30:16
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....
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
Mensajes: 679
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
www.xcockpits.com
30 Abril, 2011, 17:59:20
#14
awall86
Usuario Iniciado
Desconectado
Mensajes: 335
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
, si puedo serte de ayuda en algo, no tienes mas que pedirlo.
Un saludo
Adrian Fernández Gómez
http://alcala-sim.blogspot.com
http://www.alcala-sim.com
Tags:
Páginas: [
1
]
2
Ir Arriba
Imprimir
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
INSTRUCCIONES Y NORMAS DEL FORO
-----------------------------
=> Normas del foro
=> Instrucciones
-----------------------------
FAQ DEL FORO - X-PLANE.ES
-----------------------------
=> Preguntas frecuentes
=> Preguntas frecuentes - Usuarios X-Plane10
-----------------------------
Foro General
-----------------------------
=> Zona de presentaciones.
=> X-Plane 12
=> X-Plane 11
=> X-Plane10
=> X-Plane
=> Zona de consultas
=> Complementos de X-Plane, aviones, escenarios, plugins...
===> El rincón de nuestro corresponsal Luis Angel.
===> Boeing B737-800X ZIBO mod
=> WorldEditor (WED) & Overlay Editor
=> Aircraft-Plane-Maker
=> Helis
=> Hardware
=> Imágenes y Videos.
===> Capturas x-plane - concurso mensual
=> Sugerencias-Tablón anuncios
=> Vuelo On-line
=> International room
-----------------------------
Tutoriales y manuales
-----------------------------
=> Escuela de vuelo
-----------------------------
Taller de proyectos
-----------------------------
=> Proyectos Escenarios
=> Proyectos Aeropuertos
=> Proyectos Aviones
-----------------------------
Aviación civil y militar
-----------------------------
=> El mundo de la aeronáutica.
=> Aviación militar
=> Aviación civil
=> Imágenes y videos relacionados con la aviación.
Loading...