Ver Mensaje Individual
  #182  
Antiguo 24-11-2008
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Reputación: 18
BlackDaemon Va por buen camino
Leer datos puerto COM usando ApdPRO

Hola

Buendo, estaba trabajando con el puerto serial /COM y he decidido usar la librería comport, esta trae una función que te regresa los datos recibidos, al igual que un método donde puedes meter código y leer los datos recibidos, al final he decidido usar las poderosas ApdPRO , Bueno, solo he usado el componente ApdComPort y este igual tiene un método donde puedes hacer lo que quieras con la respuesta del puerto, pero yo necesitaba poder tener la respuesta en cualquier parte de mi código y poder usarla en más de 1 ocación, y enviar el comando que quiera y tener la respuesta para trabajar con ella, eso igual puedes hacer en el método OnTiggerAvail pero en mi caso se a llenado de puros if, alse if, etc

Así que he decidido hacerme mi própia función que me retorne la respuesta del puerto, es un poco cutre y mal hecha de seguro, recién estoy aprendiendo delphi, me gustaría que me corrijan en que fallo, pero a mi me funciona perfecto (suerte seguro jeje) pero aquí está:

Código Delphi [-]
function SendAT(AT: string): String;
var
  c : String;
  ET : EventTimer;
begin
  NewTimer(ET, 15);
  ApdComPort.PutString('AT' + AT + #13#10);

  repeat
    Application.ProcessMessages;
    //ApdComPort1.ProcessCommunications;
    while ApdComPort.CharReady do
    begin
      c := c + ApdComPort.GetChar;
      Sleep(1);
    end;
  until TimerExpired(ET);
  Result := c;
end;

Para su uso solo llamen a la función con el comando necesario.

Ejemplo:
Código Delphi [-]
var
respuesta: String;
Begin
  // enviamos una cadena vacía, pero en si, se envía el comando AT, la respuesta sería algo así : AT: OK, igual pueden enviar '+CGMI', etc
  Respuesta := SendAT(''); 
  Showmessage(Respuesta);
end;
Bueno, con el tiempo que le he puesto parece funcionar, ya que eso creo que tiene "mucho" que ver cuando escribes/lees el puerto.

Espero que a alguien le sirva.

Saludos!

Última edición por BlackDaemon fecha: 24-11-2008 a las 16:52:12.
Responder Con Cita