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

#571
El problema es la estructura del programa. Si te es más cómodo, hazlo en C#, y ya luego traduces.

De todos modos, trata de no usar handles. Maneja tú el flujo del programa. Sinó luego, al pasarlo a C++, va a ser más complicado.
#572
Foro Libre / Re: La tabla de Ouija
20 Marzo 2017, 01:38 AM
Yo con mis amigos jugaba a las cartas, fútbol... Incluso hubo una época en la que se pusieron de moda los tazos de Pokémon, qué tiempos...

Ah, la Ouija... Sí, una vez la vi en una película de comedia. Había un exorcista (un timador) que la utilizaba para hacerle creer cosas a sus clientes. ¿Scary Movie 5? No sé si en esa usaban una ouija para el engaño, creo que ahí el timador robaba y punto xD
A ver si me acuerdo de la película :X
#573
O directamente, poniendole un "header" a los mensjaes:
~~ Arduino -> PC

<msg_type:1 byte>

(msg_type=1){
    ~~ Botón pulsado
    <datos:string>
}
(msg_type=2){
    ~~ Respuesta al PC
    <datos:string>
}
#574
Cita de: MAFUS en 19 Marzo 2017, 22:06 PM
Con hilos se complica un poco. Debes estar seguro de no recibir y emitir al mismo tiempo.

Pero si el arduino solo contesta a los comandos que recibe en el mismo case se emite el comando y se espera la respuesta.

Otra forma sería emulando la forma de trabajar de un PLC: se mira si hay algo de comunicación externa; se controlan las entradas; se calcula lo que se deba, se escriben las salidas; se escriben las comunicaciones externas.

Uy uy, que catastrofista  >:D
Realmente, utilizando GetAsyncKeyState() y 2 mutex (uno para la salida por consola y otro para el Serial), está sincronizado.
O al menos lo estaría si el protocolo PC-Arduino fuera más preciso, vaya. Porque como escriba el PC al Arduino y el Arduino al PC a la vez, el PC se tomará lo del Arduino como respuesta xD
#575
Programación C/C++ / Re: Problema con reloj
19 Marzo 2017, 21:07 PM
Cuando tratas de leer entrada por la consola, el código se detiene a esperarla.

Tendrías que utilizar threads. Pero no te recomiendo ponerte con eso ahí (no vale la pena ese trabajo por el reloj). Yo de ti, trataba de evadir ese problema como puedas y proseguir.

La respuesta corta: no es algo "trivial".

Y como detalle, eso de llamar al main desde una función (o desde el propio main, vaya), deberías evitarlo. Puedes hacerlo, pero no es lo ideal.
#576
Código (cpp) [Seleccionar]
cin>>matriz[j];
Fíjate que no está el [ i ]. Eso es porque es una etiqueta en el foro para poner cursiva.

Vuelve a pegar el código entre las etiquetas GeSHi para que se vea todo bien.

En cualaquier caso, en la línea 18:
Código (cpp) [Seleccionar]
for(j=0;i<*columnas;j++)

Querrías poner:

Código (cpp) [Seleccionar]
for(j=0;j<*columnas;j++)
(nótese la j en la condición j<*columnas.
#577
Pon el código entre las etiquetas GeSHi que tienes arriba a la derecha a la hora de crear o editar el mensaje.
Código (cpp) [Seleccionar]
int n = x;

Sinó, hay cosas que no se ven bien.
#578
Los tipos de Windows que empiezan con P o con LP suelen sen punteros.
En cualquier caso: https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx

De todos modos, si no te gusta PHANDLE, puedes poner HANDLE*. La razón de que hayan puesto un HANDLE* en esa función es para poder devolver el HANDLE.
Código (cpp) [Seleccionar]
*hthread = pi.hThread;
#579
Los errores son claros:
'HANDLE Startpausedprocess(char *,PHANDLE)': cannot convert argument 2 from
'HANDLE' to 'PHANDLE'


'sprintf': This function or variable may be unsafe. Consider using sprintf_s
instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.


Estás pasando un HANDLE a tu función, que recibe PHANDLE.

Y lo segundo, pues lo que dice. Puede no ser segura.
#580
El caso es que, este mismo código en C#, también dará problema. No es cosa del lenguaje, sinó de la lógica. Si tu switch va por el default, le estás obligando igualmente a leer datos del Arduino (que no tiene por qué haber).

Si lo que quieres es enviarle datos y leerlos a la vez, necesitarás threads.