Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Diferencial en 13 de Junio de 2006, 07:44:19 AM

Título: Problemas con el puerto serial
Publicado por: Diferencial en 13 de Junio de 2006, 07:44:19 AM
Hola a todos,
Tengo un problema con el puerto serial, estoy trabajando con un lector de tarjetas que va conectado al puerto, el problema que tengo es que cuando yo le paso una tarjeta al lector guarda en un buffer el codigo de esta tarjeta, cuando desde la aplicación le pido el codigo no funciona. Sin embargo lo hago paso por paso depurando el proyecto y si me funciona. ¿Alguna sugerencia?
Título: Problemas con el puerto serial
Publicado por: Warchief en 13 de Junio de 2006, 09:23:13 AM
¿Variables sin inicializar que toman valor por defecto en el depurador y eso hace que funcione?
Título: Problemas con el puerto serial
Publicado por: marcode en 13 de Junio de 2006, 03:51:03 PM
quizás necesita un tiempo de espera durante la comunicación, que sí lo tiene cuando lo haces paso a paso. Prueba a meter varios Sleep(1000) después de cada instrucción, con ese u otro valor que creas oportuno, y a ver que pasa. Si funciona busca a ver cual de ellos es el que está surtiendo efecto.

Si funciona así, seguramente lo ideal sea usar un while que lo mantenga en espera hasta recibir o detectar algún bit de estado que le permita continuar recibiendo/transmitiendo datos, aunque tampoco tengo mucha idea de esto.
Título: Problemas con el puerto serial
Publicado por: vincent en 13 de Junio de 2006, 04:53:10 PM
Mirate la documentación de Microsoft. Depende de para que windows programes la comunicación por puerto serie se trata de manera diferente. En XP es overlapped y en 95 no.
Título: Problemas con el puerto serial
Publicado por: Diferencial en 13 de Junio de 2006, 05:12:34 PM
Gracias por las respuestas, al final lo consegui haciendo un while mientras no
recogiese una cadena pues volvia a pedir otra vez la cadena y tambien le añadi un evento que viene con el serial port del .net que recoge errores de lectura donde añadi tambien el codigo que vuelve a pedir la cadena del buffer.