Programación General > Visual C++

 Error 7f De Rs232

(1/2) > >>

diego.martinez:
Buenas:

Ultimamente me ha aparacido un fallo muy curioso, tengo una aplicacion en  visual c++ para windows xp que lee del puerto rs232 o usb con conversor usando el CreateFile("//.////COM1",...);

siempre me ha funcionado bien sin ningun problema, sin embargo, en un par de ordenadores en concreto (de la misma organización) siempre que leen , leen 7F (127, caracter DEL) independientemente del byte que se transmita.


Antes de leer, (que leo con ReadFile) me aseguro de asignar buffer de lectura, configuracion de Bits, parada y etc , y de establecer los timeouts. Todos ellos parece que pasan sin problemas, puesto que si no mostrarian mensaje de error.

Esto ocurre tanto con cable como con adaptador usb , asi pues tengo la sospecha de que quizas sea un problema de la configuracion de permisos del ordenador, es esto posible??

Si el administrador impide la lectura de puerto serie, recibe siempre 7f?    :blink:

Eternal Idol:
No creo que se pueda hacer eso de bloquear el puerto serie asi, pero si alguien te impide el acceso el S.O. te devuelve ACCESS_DENIED y no te permite leer. Comproba los valores de retorno y GetLastError() por si acaso.

PD. Supongo que estaras usando \\.\COM* (que en C seria \\\\.\\COM*), esto no es necesario ya que podes usar COM* directamente.

diego.martinez:
Umm la verdad es que solo comprobaba el Invalid_handle, voy a echarle un ojo.

Uso //.////COM%d por que en puertos por encima del 10 me da fallo si no pongo las barritas, lo lei por msdn o por ahi.

gracias , ya os comentare.

lo mas complicado es que aqui no consigo emular el error  :(

diego.martinez:
buenas de nuevo.

No se produce el ERROR_ACCESS_DENIED, pero he descubierto cuando se produce, se produce cuando se reinicia el sistema.
La aplicacion esta situada en el Menu de Inicio para lanzarse automaticamente cuando se reinicia.
En ese momento, sin razon aparente, deja de leer correctamente y solo lee 7F o 7B independientemente del caracter a enviar.

El fallo se genera por iniciar la aplicacion en el startup.
como puedo evitarlo?
que puede ser el causante?
tenia que tomar alguna precaucion especial al abrir el puerto?

muchas gracias por la ayuda, pero estoy perdido con esto  :o

Eternal Idol:

--- Cita de: "diego.martinez" --- El fallo se genera por iniciar la aplicacion en el startup.
--- Fin de la cita ---
Supongo que comprobaste cerrar el programa, volverlo a abrir y entonces funciona correctamente ... de ser asi comproba (depurando el programa) si todo el codigo previo (la inicializacion) logra ejecutarse correctamente.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa