Ver Mensaje Individual
  #3  
Antiguo 18-07-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: 26
seoane Va por buen camino
Vamos por partes. El programa se queda parado en la instrucción ReadFile, o te refieres a que no sale del bucle. Si se queda parado en el ReadFile es que no le esta llegando nada, y si no sale del bucle es que no le manda le carácter #02 como se indicaba en la instrucciones, prueba eliminando ese bucle haber que pasa.

Si por el contrario se queda parado en el ReadFile es que no esta llegando la información al puerto serie, puede ser debido a muchas cosas, pero algo de lo que pone las instrucciones

Cita:
NOTA: La instrucción OPEN "COM..., provoca que la línea RTS cambie de nivel lógico. Esto actúa como pedido de transmisión al cabezal, que enviará la información antes detallada.
me hace pensar que hay que jugar con el valor de RTS para que todo funcione. Así que activemos la linea RTS y veamos que pasa:

Código Delphi [-]
...

     if SetCommState(hPort, DCB) then
      begin
        PurgeComm(hPort, PURGE_TXABORT or PURGE_RXABORT or PURGE_TXCLEAR or
          PURGE_RXCLEAR);
        // Aqui esta la rutina para leer
        C:= #0;
        // Activamos la linea RTS
        EscapeCommFunction(hPort,SETRTS);
        // Esperamos el caracter de inicio
        repeat
          ReadFile(hPort,C,1,Leidos,nil);
        until C = #02;
        // Leemos el peso
        repeat
          ReadFile(hPort,C,1,Leidos,nil);
          if C <> #13 then
            Result:= Result + C;
        until C = #13;
        // aqui termina
      end;

...

Tambien seria interesante, ya que dices que con el hyperterminal va bien, que tipo de control de flujo estas usando. Es el unico parametro que me falta por saber.
Responder Con Cita