elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 [60] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ... 401
591  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 17 Marzo 2017, 15:15 pm
El "truco" d elas teclas, es lo mismo que el digitalRead que tienes ahí. Puedes guardar su estado anterior, no más.

Citar
No muestra nada en C#, solo se acumula en la variable lenguaje
¿C#? ¿Variable lenguaje?

En cualquier caso. ¿Tu problema es que no recibes datos del Arduino? Entonces comenta el switch y testealo por separado.
592  Programación / Programación C/C++ / Re: cómo se hacen las rejas 3D en glut y opengl en: 17 Marzo 2017, 14:31 pm
Eso, tú verás. Yo te recomendaría OpenGL. Mejor comprender los cimientos antes de ponerse con algo de mucho más alto nivel, como es un engine.
593  Programación / Programación C/C++ / Re: cómo se hacen las rejas 3D en glut y opengl en: 17 Marzo 2017, 14:22 pm
Las líneas curvas son una sucesión de lineas rectas. Parauna curva de Bézier, vasta que avances poco a poco y vayas dibujando las líneas.

Avanzar desde t=0 a t=1 a pasos pequeños (dependiendo de la calidad que busques), y dibujando.


De todos modos, creo que estás yendo demasiado rápido.
- Antes de trabajar con 3D, trabaja con 2D.
- Antes de dibujar curvas, dibuja polígonos.
- En resumen, no hagas cosas "mucho" más avanzadas de lo que puedes hacer ahora, o acabarás bloqueado. Según vayas haciendo cosas, irás viendo cómo hacer las siguientes.
594  Programación / Programación C/C++ / Re: cómo se hacen las rejas 3D en glut y opengl en: 17 Marzo 2017, 13:50 pm
¿Un plano X y Z de coordenadas? ¿Hacerlo? Pues será escribir los números donde convenga. También lo haces con uno o dos FOR.
595  Programación / Programación C/C++ / Re: cómo se hacen las rejas 3D en glut y opengl en: 17 Marzo 2017, 13:30 pm
¿Una cuadrícula? Es solo un conjunto de líneas. Si estás utilizando OpenGL antiguo, con glBegin y glVertex, solo sería poner glBegin(GL_LINES);.
Aquí han hablado de ello:
http://www.foro3d.com/f115/hacer-rejilla-en-opengl-en-2d-y-3d-66932.html

http://www.opengl-tutorial.org/es/
596  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 17 Marzo 2017, 13:10 pm
La parte donde pone if (GetAsyncKeyState('A') & 0x8000) , precisamente 0x8000 no lo entiendo y no lo pone aquí.
No, no lo pone ahí. Lo pone aquí: https://msdn.microsoft.com/es-es/library/windows/desktop/ms646293(v=vs.85).aspx
Citar
If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant bit is set, the key is down
El bit más significativo en un short es, digamos, ""el de la izquierda"". 0x8000 en binario es 0b1000_0000_0000_0000. Haciendo un and (&), sacamos si ese bit está activo o no. Si está activo, el resultado será diferente de 0, así que se ejecutará el contenido del if. Si no está pulsada, el bit estará a 0, y el AND retornará 0. El if, en ese caso, no se ejecutará.

Parece ser que ignora esta instrucción.
Código
  1. Puerto->WriteData(Luz_OFF, sizeof(Luz_OFF) - 1);

Aquí una captura cuando pulsa solo la B o la A. Se repite muchas veces. (Si es posible hacer el tamaño de la ventana en la programación de C++, mejor que mejor).

Sobre el tema de que se repita muchas veces es porque el GetAsyncKeyState te dice que está pulsada, no si ha sido pulsada. Por tanto, si mantienes la tecla,  entrará muchas veces. Tendrías que controlar si ha sido pulsada ahora o si ya estaba pulsada.

Lo de recibir comandos desde el peurto serie o Arduino es este el que me refería:
Código
  1. Puerto -> ReadData(lectura, 50);
  2. cout << "Recibido: " << lectura << endl;

Que este programa al mismo tiempo que envía comandos, también los puede recibir. Si el programa C++ no le hago nada, solo lo dejo arrancado, desde el puerto serie puede venir cualquier dato y C++ debe leerlo sin problemas.

Como dice MAFUS, esto es un protocolo con 2 programas. Conocemos el de Windows, pero no conocemos el de Arduino. ¿No podría ser problema del programa del Arduino?
597  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 17 Marzo 2017, 00:21 am
"No sabes si lo hace bien"? Pues yo menos ._.

En cualquier caso, mi respuesta iba orientada a:

Si pulsas la tecla, por ejemplo 5, primero se ve reflejado y luego tengo que pulsar Enter. Lo que quiero lograr es que si pulse el número 5, automáticamente ejecuta la instruacción del case 5 del Switch.
Para lo cual, puedes usar la función GetAsyncKeyState de WinAPI.
En al documentación explica su retorno:
Citar
If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant bit is set, the key is down

Por tanto, comprobamos el bit:
Código
  1. if(GetAsyncKeyState(tecla) & 0x8000){
  2.    // Tecla pulsada
  3. }

El código de la tecla es un VirtualKey Code: https://msdn.microsoft.com/es-es/library/windows/desktop/dd375731(v=vs.85).aspx. En cualquier caso, decirte que los codigos de las letras coinciden con los caracteres de las letras mayúsculas:

Código
  1. if(GetAsyncKeyState('A') & 0x8000){
  2.    // Tecla 'A' pulsada
  3. }


Y con respecto a lo del IDE que comentaste, no sé de qué hablabais, pero por supuesto que no importa el IDE.

y bueno, lo dicho:
Citar
Luego recibir este comando que no se si lo hace bien.
Describe qué es lo que no sabes si hace bien y por qué.
598  Programación / Programación C/C++ / Re: Como llamar a la funcion de windows api en: 16 Marzo 2017, 23:06 pm
Tras ver todos los posts que has abierto, te diré que es mejor que busques un tutorial sobre lo que intentas hacer.

Y en respuesta a tu pregunta, así, y sin WinAPI:
Código
  1. int main()
  2. {
  3.    BSSSendMessageW(0, 0, 0, 0);
  4. }

Obviamente no es lo que buscas, pero tampoco has explicado qué es lo que buscas. Me remito a la primera frase ~.~

En cualquier caso: https://msdn.microsoft.com/es-es/library/windows/desktop/ms633570(v=vs.85).aspx

¿Has creado alguna vez una ventana con la API de Windows? Si no lo has hecho, es el primer paso. De qué sirve aprender a arreglar cerraduras sin saber cómo funcionan :X
599  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 16 Marzo 2017, 22:45 pm
Utilizando el input normal de la consola no puedes hacer esto que comentas.

Lo que sí puedes hacer, es utilizar funciones de WinAPI para obtener las teclas pulsadas, como GetAsyncKeyState. Entonces ya tendrás total control de la consola sin bloqueos para entrada del usuario. Incluso multi-thread si lo necesitases.
600  Programación / Programación C/C++ / Re: Problema al leer desde la bibliteca standar en: 15 Marzo 2017, 19:21 pm
scanf recibe como primer parámetro una cadena dependiendo de lo que quieras leer. %c es apra caracter. 1 caracter. %s es para una cadena. Prueba con %s.
Páginas: 1 ... 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 [60] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ... 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines