Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ivancea96

#581
¡Desde luego!
Si no envías nada al Arduino, intuyo que el Arduino, en principio, no le envía nada al PC. por tanto, se va a quedar esperando.
Everything as expected
Tendrás que cambiar el flujo del programa si quieres que eso no ocurra. Además, imagínate que agregas una opción que envía datos al Arduino pero no los recibe. ¿Para qué esperar la salida del Arduino?
En fin, eso ya no es un error, solo un flujo incorrecto. Depende de cómo quieras ampliar el programa, modifícalo como más te convenga.
#582
No. Hablo de un while a la hora de recibir datos. No sirve solo "enviar y luego recibir". En un protocolo, hay que asegurarse de que se completa la comunicación. Si tratas de leer datos del puerto y no recibes nada, hay un problema. El Arduino no es instantáneo, probablemente trabajará mucho más lento que tu PC. Hay que esperar los datos:

Código (cpp) [Seleccionar]
while(true){
   int n = Puerto->ReadData(lectura, 49);
   if(n > 0){
       lectura[n + 1] = '\0';
       break;
   }
   Sleep(1);
}
cout << "Recibido: " << lectura << endl;
cout << "-------------------" << endl;


Por ejemplo.
#583
Prueba a utilizar GL_TRIANGLES (Como intuirás, cada 3 vértices, dibujará un triángulo).
Luego, para poner colores, glColor3ub(r, g, b), donde cada parámetro va de 0 a 255. También tienes glColor3f(r, g, b), donde recibe floats, y cada color va de 0.0 a 1.0 (Utiliza lo que más te interese).

Si quieres que la cuadricula tenga un fondo verde, entonces puedes dibujar por detrás 2 triangulos (para formar un cuadrado), y luego la cuadricula (no olvides cambiar el color).

Para todas las modalidades de dibujado que tiene glBegin: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glBegin.xml.
Tienes tambien GL_QUADS, GL_POLYGON, etc. Lo que más te interese.
#584
Cita de: ahigor en 18 Marzo 2017, 15:34 PM
Y cómo se pinta en OpenGL jajajaja no tengo ni idea de nada :rolleyes:

Pero si ya hiciste el programa de arriba ._.

En cualquier caso, por el foro obtendrás buenas respuestas a buenas preguntas (concretas). Para aprender OpenGL, e mejor que busques un tutorial por internet. Si tienes preguntas concretas, desde luego, sé libre de ponerlas.
#585
Bien. De todos modos, un Sleep es un parche para testear, pero no es correcto. Lo que quieres no es esperar 500 milisegundos; lo que quieres es esperar hasta que el Arduino te contexte (o si tarda mucho, poner un timeout, pero esto ya más adelante).
Podrías hacer un while hasta recibir la respuesta completa del Arduino. Un while con un Sleep(1) si tal, para no sobrecargar. Y en el while, pues eso, leer hasta recibirlo todo.
#586
Pero, lo dicho. Desde que pulsas enter y escribes al arduino hasta que lees del arduino... ¿Crees que le da tiempo al Arduino a procesar y responder?
Vamos a comprobar que no sea eso. Coloca un Sleep(100); antes del ReadData.
#587
scanf ("%d",&prepago);
prepago es float, pero le has indicado "%d", entero. Tendrás que poner %f.
#588
Para empezar, es interesante saber qué hace exactamente ReadData: Retorna el número de caracteres leídos (y -1 si hubo un error o si leyó 0 caracteres). Dicho esto, ten en cuenta que las cadenas en C++ no son como en C#. De esos 50 caracteres, si solo lees 10, quedarán 40 como basura. Para evitar leerlos, basta poner un '\0' en el undécimo caracter:

Código (cpp) [Seleccionar]
int n = Puerto->ReadData(lectura, 49);
lectura[n + 1] = '\0';


Eso en primer lugar. Luego, si el retorno de ReadData es -1, no deberías mostrar el Recibido (deberías esperar primero a que haya bytes para leer, pues no tienen por qué trabajar a la vez el Arduino y el PC (viene siendo como sincronizar varios threads, vaya))

Y bueno, hecho eso, a ver qué problemas te da.
#589
En primer lugar, trata de no poner varios includes iguales.
Luego, trata de poner los glvertex con un for en vez de ponerlos todos seguidos.

Sobre texturas, es un pelín más coñazo. YO te recomendaría dejarlo para un poco más adelante, y acostumrbarte primero a OpenGL (puedes hasta simular hierba con triangulitos de diversas variedades de verde). Realmente no son <necesarias> las texturas al principio, y lían de más, sobre todo si el proyecto no está bien organizado.

Ahora bien, si quieres proseguir con texturas, pues bueno. Yo te diría que busques por Google, que algo encontrarás (Hace mucho que no utilizo OpenGL antiguo para cargar texturas).
#590
Puedes hacer lo que quieras, pero ve por partes. No empieces haciendo un juego; un juego requiere más que solo gráficos.

Te diría que hagas un tutorial de OpenGL, como es: http://www.opengl-tutorial.org/es/
El OpenGL moderno es más complicado que el antiguo (Ese que utiliza glbegin, glvertex, glEnd, etc... para dibujar). Por esa razón, poco a poco.