G60 G60
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: UDP VEH1/VEHA  (Leído 9588 veces)
0 Usuarios y 1 Visitante están viendo este tema.
03 Julio, 2016, 19:13:20
alnloras
Usuario reciente
**
Desconectado Desconectado

Mensajes: 5



En línea
UDP VEH1/VEHA

Hola compañeros.

Soy nuevo por estos lares y por el mundo de x-plane 10.
Estoy intentando conseguir colocar mi avión en localizaciones y posiciones que yo quiera, de forma automática con mi propio programa en c# y usando Visual Studio 2013.
De momento he conseguido recibir todos los datos que quiero por UDP pero al intentar cargar de la misma forma los datos de pitch/roll/lat/lon/ etc. Solo cambian cuando el simulador está pausado.

En la información del juego he encontrado que hay que utilizar la estructura VEH1/VEHA, pero no entiendo bien como usarlas...

Podríais indicarme como se usan o un tutorial donde lo haga?

Muchas gracias de antemano  Giñar

03 Julio, 2016, 22:33:11 #1
Juanjo463
Superusuario
*******
Desconectado Desconectado

Mensajes: 2185


Por la boca muere el pez, y el piloto por los pies


WWW
En línea
Re: UDP VEH1/VEHA

Bienvenido al foro.

Creo que lo primero es leer el tutorial de uso del foro y presentarte en la sección correspondiente.


04 Julio, 2016, 07:35:20 #2
alnloras
Usuario reciente
**
Desconectado Desconectado

Mensajes: 5



En línea
Re: UDP VEH1/VEHA

Bienvenido al foro.

Creo que lo primero es leer el tutorial de uso del foro y presentarte en la sección correspondiente.

Perdona Juanjo463 tienes razón, dónde están mis modales Giñar

Ya me presenté en la sección correspondiente.

05 Julio, 2016, 09:05:22 #3
alnloras
Usuario reciente
**
Desconectado Desconectado

Mensajes: 5



En línea
Re: UDP VEH1/VEHA

Hola compañeros.

Soy nuevo por estos lares y por el mundo de x-plane 10.
Estoy intentando conseguir colocar mi avión en localizaciones y posiciones que yo quiera, de forma automática con mi propio programa en c# y usando Visual Studio 2013.
De momento he conseguido recibir todos los datos que quiero por UDP pero al intentar cargar de la misma forma los datos de pitch/roll/lat/lon/ etc. Solo cambian cuando el simulador está pausado.

En la información del juego he encontrado que hay que utilizar la estructura VEH1/VEHA, pero no entiendo bien como usarlas...

Podríais indicarme como se usan o un tutorial donde lo haga?

Muchas gracias de antemano  Giñar

Una ayudita de alguien que sepa, por favor  Llorar

05 Julio, 2016, 11:40:44 #4
Cestomano
Superusuario
*******
Desconectado Desconectado

Mensajes: 5484


Me cansé de la capa; ahora sólo vuelo en avión...


WWW
En línea
Re: UDP VEH1/VEHA

Los siento, mis conocimientos no llegan hasta ese punto...  Triste


¡¡NO contesto dudas por mensaje privado!!

x-plane.cestomano.com
www.spainuhd.es

[
05 Julio, 2016, 18:34:36 #5
jorduran
Superusuario
*******
Desconectado Desconectado

Mensajes: 9986



WWW
En línea
Re: UDP VEH1/VEHA

Quizas mejor preguntar en el foro del .ORG


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
05 Julio, 2016, 21:20:25 #6
grrr05
Superusuario
*******
Desconectado Desconectado

Mensajes: 4349


If it ain't broke don't fix it


WWW
En línea
Re: UDP VEH1/VEHA

Yo tampoco conozco el C ni ninguna de sus variantes, pero creo que te estas complicando la vida o no has entendiro bien eso del VEH1/VEHA, que por lo que acabo de leer es sólo para aviones de la IA.

Tenía por ahí algunos scripts en C++ creados partiendo de unos ejemplos encontrados para Arduino y no era tan complicado enviar y recibir mensajes UDP, tenía un par de ellos para funciones sencillas como subir y bajar el tren y que se encendieran los leds (comunicación bidireccional). Sólo era cuestión de enviar la cadena correctamente con sus dataref correspondientes.

Lo que tienes que mirar es la estructura DREF.




Albert Ràfols
www.spainuhd.es
15 Julio, 2016, 10:53:06 #7
alnloras
Usuario reciente
**
Desconectado Desconectado

Mensajes: 5



En línea
Re: UDP VEH1/VEHA

Yo tampoco conozco el C ni ninguna de sus variantes, pero creo que te estas complicando la vida o no has entendiro bien eso del VEH1/VEHA, que por lo que acabo de leer es sólo para aviones de la IA.

Tenía por ahí algunos scripts en C++ creados partiendo de unos ejemplos encontrados para Arduino y no era tan complicado enviar y recibir mensajes UDP, tenía un par de ellos para funciones sencillas como subir y bajar el tren y que se encendieran los leds (comunicación bidireccional). Sólo era cuestión de enviar la cadena correctamente con sus dataref correspondientes.

Lo que tienes que mirar es la estructura DREF.


Al parecer haciendolo por DREF está el problema de que solo se puede modificar las coordenadas locales (He conseguido modifcarlo de por este modo) y la lat,lon habría que usar el SDK pero quiero poder hacer mi propia app por UDP. Existe otra función VHE1 y VHEA pero por más que lo intento no consigo que lo cambie.

Os dejo el código a ver si veis donde puede estar el fallo (también lo he publicado en xplane.org)

 static void Main(string[] args)
        {
            TextReader tr = new StreamReader(@"C:\Proyectos\X-Plane10 Load\X-Plane10 Load\DataList.text");

            UdpClient server = new UdpClient("127.0.0.1", 49000);

            //X-Plane VEH1 Packet Structure
            // 57 bytes
            byte[] XPData = new byte[57];
            byte[] pitchArray;
           
           
           while (true)
           {
                   
                    // Header
                    pitchArray = Encoding.ASCII.GetBytes("VEH10");
                    int count = 0;
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }

                    // Index
                    pitchArray = BitConverter.GetBytes(0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }
                 

                    // Latitude
                    pitchArray = BitConverter.GetBytes(32.07);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }

                    // Longitude
                    pitchArray = BitConverter.GetBytes(73.76);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }

                    // Altitude
                    pitchArray = BitConverter.GetBytes(2292.0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }

                    // Pitch
                    Console.WriteLine(Convert.ToSingle(tr.ReadLine()));
                    pitchArray = BitConverter.GetBytes(0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }


                    // Roll
                    Console.WriteLine(Convert.ToSingle(tr.ReadLine()));
                    pitchArray = BitConverter.GetBytes(0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }

                   
                    // True Heading
                    pitchArray = BitConverter.GetBytes(0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }


                    // Gear 0/1
                    pitchArray = BitConverter.GetBytes(0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }

                    // Flap 0/1
                    pitchArray = BitConverter.GetBytes(0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }

                    // Vect 0/1
                    pitchArray = BitConverter.GetBytes(0);
                    foreach (var Byte in pitchArray)
                    {
                        XPData[count] = Byte;
                        count++;
                    }
         
             
                    server.Send(XPData, XPData.Length);
                    System.Threading.Thread.Sleep(2000);
                    //Console.ReadKey(true);

            }

           

           
            //Console.ReadKey(true); // Wait for keypress to close program
            //server.Close();
           

        } // End Main




LOG.txt

WE ARE SENDING     0.00 kilo-bytes per second (1,200 kilo-bytes per second is a low-end LAN)
WE ARE RECEIVING   0.03 kilo-bytes per second (1,200 kilo-bytes per second is a low-end LAN)
time=  8617.9, RECV label=VEH1 fr IP 127.0.0.1-50720. Length after packaging removal=52
time=  8618.0, RECV label=BECN fr IP 169.254.249.184-49001. Length after packaging removal=20
 

 
 
 

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

www.x-plane.es.
Página creada en 0.071 segundos con 18 queries.