Ver Mensaje Individual
  #12  
Antiguo 18-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Bien, parece que estas controlando algún tipo de dispositivo electrónico, habría que ver como es el protocolo de comunicación de ese dispositivo. ¿Utiliza comandos de texto?, es decir, los que tu mandas y recibes son cadenas de texto. Si es así, para mandar el texto ya tienes la solución arriba, y para recibir texto hay que saber que carácter termina cada linea. Lo normal es leer byte a byte el puerto serie hasta encontrar el carácter final que suele ser #13.

De todas formas el código que tu pones no es correcto:
Cita:
Empezado por Geta
comando: String;
...
...
ReadFile(hPort,comando,length(comando),cuantos,nil);
No puedes leer el puerto serie con una variable tipo string, al menos no así. Ya que ReadFile intentara leer tantos caracteres como longitud tenga la cadena de texto almacenada en comando (si no hay nada sera 0), y lo peor es que lo almacenara a partir de la primera posición de memoria de la variable comando, que en un string no coincide con el primer carácter de la misma. Yo normalmente leo los bytes uno a uno, o utilizo un buffer (un array de Chars).

De todos modos, ¿cual es el protocolo de comunicación de ese dispositivo?, ¿que le tienes que mandar tu?, ¿que te responde el?, ¿es texto o bytes?, ¿sabes la longitud de la respuesta, o esta delimitada por un carácter final?. Y si no es mucho preguntar ¿que dispositivo es?, si me das más datos puede que entienda mejor lo que necesitas.
Responder Con Cita