Título: UDP VEH1/VEHA Publicado por: alnloras en 03 Julio, 2016, 19:13:20 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 ;) Título: Re: UDP VEH1/VEHA Publicado por: Juanjo463 en 03 Julio, 2016, 22:33:11 Bienvenido al foro.
Creo que lo primero es leer el tutorial de uso del foro y presentarte en la sección correspondiente. Título: Re: UDP VEH1/VEHA Publicado por: alnloras en 04 Julio, 2016, 07:35:20 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 ;) Ya me presenté en la sección correspondiente. Título: Re: UDP VEH1/VEHA Publicado por: alnloras en 05 Julio, 2016, 09:05:22 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 ;) Una ayudita de alguien que sepa, por favor :'( Título: Re: UDP VEH1/VEHA Publicado por: Cestomano en 05 Julio, 2016, 11:40:44 Los siento, mis conocimientos no llegan hasta ese punto... :(
Título: Re: UDP VEH1/VEHA Publicado por: jorduran en 05 Julio, 2016, 18:34:36 Quizas mejor preguntar en el foro del .ORG
Título: Re: UDP VEH1/VEHA Publicado por: grrr05 en 05 Julio, 2016, 21:20:25 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. Título: Re: UDP VEH1/VEHA Publicado por: alnloras en 15 Julio, 2016, 10:53:06 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 |