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


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 358
111  Programación / Programación C/C++ / Re: Problemas con variables Numericas en: 26 Marzo 2017, 04:34
En los printf, en vez de %i o %d, que son para números enteros, pon %f, para flotante.
112  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 26 Marzo 2017, 00:20
En primer lugar, yo separaría estoa  una función:

Código
  1. while (true) {
  2. int n = Puerto->ReadData(lectura, 49);
  3. if (n > 0) {
  4. lectura[n + 1] = '\0';
  5. break;
  6. }
  7. Sleep(1);
  8. }
Una función que espere a que el Arduino envíe datos, y los retorne.

Lo de esperar datos solo lo vas a hacer si pulsan 1 o 2, así que llamas a esa función en cada case. Es cierto que los 2 case son idénticos salvo por la constante que envías. Podrías poner algo como:
Código
  1. const char *luz[2] = {"Luz_ON", "Luz_OFF"};
  2.  
  3. switch(opc){
  4.    case 1:
  5.    case 2:
  6.        cout << "Enviando: " << luz[opc-1] << endl;
  7.        Puerto->WriteData(luz[opc-1], strlen(luz[opc-1]));
  8.        cout << "Respuesta: " << obtenerRespuestaArduino() << endl;
  9.        break;
  10.  
  11.    default:
  12.        // ...
  13. }

De ese modo, solo esperará entrada del Arduino cuando sea necesario hacerlo. Al terminar el switch, puedes poner, si quieres, para leer datos del Arduino (sin esperar indefinidamente, eso sí, para que vuelva al inicio del bucle while y siga preguntando)

El problema es eso, el cómo está estructurado el código. Lo dicho: si tienes más experiencia en C#, puedes tratar de hacerlo ahí primero.

Ya ahí te respondiera el cómo solucionarlo -.-'
113  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 25 Marzo 2017, 23:19
Es el mismo problema de antes. Si pulsas un número que no sea ni 1 ni 2, se va al default. Al salir del switch, espera infinitamente hasta que el Arduino responda algo (y, como no le enviaste nada, no va a responder).
Solo debes esperar respuesta del Arduino en caso de que haya puesto 1 o 2.
114  Programación / Programación C/C++ / Re: Crash al usar operadores new y delete. en: 25 Marzo 2017, 21:28
En un lugar pusiste atvl y en el otro pusiste codigo.
Y luego pusiste new codigo[1001] en vez de new char[1001].

Será
Código
  1. codigo[i] = new char[1001];
115  Programación / Programación C/C++ / Re: Es posible renombrar una clave de registro? en: 25 Marzo 2017, 20:02
Cómo lo haga C# internamente, eso no lo sé. En cualquier caso, te respondo para C++.

No te vale la pena ponerte a importar funciones externas solo por renombrar. Además, pienso que si la MSDN no pone la función como pública, será por algo...

https://msdn.microsoft.com/en-us/library/cc512138(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/bb432200(v=vs.85).aspx
116  Programación / Programación C/C++ / Re: Es posible renombrar una clave de registro? en: 25 Marzo 2017, 19:11
Copiar y eliminar.

RegCopyTree
RegDeleteKey

No, que yo sepa, no se puede renombrar.
117  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 25 Marzo 2017, 00:02
El problema es que en C# te funciona porque lo estás utilizando "orientado a eventos", con los handlers. Son por lo menos 2 threads funcionando. Sin embargo, en C++ solo estás utilizando 1 thread.

Tendrás que elegir: o utilizar 2 threads en C++, o pasar el código de C# a 1 solo thread controlando tú el flujo del programa (completo).
118  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 24 Marzo 2017, 22:03
Pues por eso te digo. Hazlo primero completamente funcional en C#, y ya luego, en C++. Sinó, estás acarreando 2 problemas en vez de 1.
119  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 24 Marzo 2017, 21:02
Más que no responder, será que no lees del Arduino:
Código
  1. } while (tecla != 0);
Ya dije antes. Tienes que leer después de enviar. En un mensaje anterior hablé sobre hacer una función.
120  Programación / Programación C/C++ / Re: Puerto serie C++. Mejorar el programa. en: 24 Marzo 2017, 19:42
Parecido sí, pero de forma incorrecta:
En C# tienes esto:
Código
  1.            do
  2.            {
  3.                tecla = Console.ReadKey(true).Key; // Espera pulsación de teclas.

En C++ tienes esto otro:
Código
  1. cin >> tecla; // Aquí introduces un número, el 1 o el 2.
  2.  
  3. do
  4. {
La diferencia entre uno y otro es que el C++ va a quedarse en un bucle infinito.

Y pusiste:
Código
  1. while (tecla)
  2. {
  3. case 1:
._.
Línea 29.
Código
  1. while (tecla)
No es while, es switch.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 358
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines