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;
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
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!