Ir al contenido


Foto

detectar error modulo gsm con lazserial

TLazserial port gsm

  • Por favor identifícate para responder
3 respuestas en este tema

#1 soymoe

soymoe

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 23 enero 2019 - 02:02

Hola a todos, estoy haciendo un programa para mandar sms con un modulo gsm, el programa anda, el tema es que no logro detectar la  ocurrencia de errores, uso el modulo con un adaptador TTL, uso el componente TLazSerial.Aqui un ejemplo de lo que el modulo me me responde al mandar comandos AT:

 

AT+CMGF=1


OK

AT+CMGS="540"

> ALICIA MERCEDES RAMIREZ
safdfdggdfg

>

ERROR

 

Lo que no logro detectar es el error del final, lo que pasa es que el modulo demora en mandar el "error" y cuando lo manda, el procedimiento ya termino. lo que hice es poner los comandos que recibo en un Tmemo, leyendo el puerto al ejecutarse el evento rxchar, pero no logro detectar el error.Este es el evento rxchar:


php
  1. procedure TFormLlamador.LazSerialRxData(Sender: TObject);
  2. begin
  3. StrRespuesta:=LazSerial.ReadData; //lee la respuesta
  4. MemoRespuestas.Text:=MemoRespuestas.Text+StrRespuesta;
  5. edit1.text:=StrRespuesta;

Me podrian ayudar?


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.141 mensajes
  • LocationMéxico

Escrito 23 enero 2019 - 05:22

Hola a todos, estoy haciendo un programa para mandar sms con un modulo gsm, el programa anda, el tema es que no logro detectar la  ocurrencia de errores, uso el modulo con un adaptador TTL, uso el componente TLazSerial.Aqui un ejemplo de lo que el modulo me me responde al mandar comandos AT:

 

AT+CMGF=1


OK

AT+CMGS="540"

> ALICIA MERCEDES RAMIREZ
safdfdggdfg

>

ERROR

 

Lo que no logro detectar es el error del final, lo que pasa es que el modulo demora en mandar el "error" y cuando lo manda, el procedimiento ya termino. lo que hice es poner los comandos que recibo en un Tmemo, leyendo el puerto al ejecutarse el evento rxchar, pero no logro detectar el error.Este es el evento rxchar:


php
  1. procedure TFormLlamador.LazSerialRxData(Sender: TObject);
  2. begin
  3. StrRespuesta:=LazSerial.ReadData; //lee la respuesta
  4. MemoRespuestas.Text:=MemoRespuestas.Text+StrRespuesta;
  5. edit1.text:=StrRespuesta;

Me podrian ayudar?

 

 

Hola

 

Ese procedimiento no parece un evento, normalmente lo eventos se nombran como OnReceiveChar, OnReceiveDataPacket, etc, no conozco ese componente por lo que no puedo ayudar mas.

 

Edito: Los eventos de cualquier componente serial recibe los caracteres "uno por uno" y te reportan cuantos caracteres se han recibido, en tu procedimiento solo estarías leyendo un caracter y no "todo" lo que llega.

 

 

Saludos (y)


  • 0

#3 soymoe

soymoe

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 24 enero 2019 - 08:11

Si uso el componente Tcomport, tengo una terminal para usar pero no se como capturar las respuestas del modulo gsm.


  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.141 mensajes
  • LocationMéxico

Escrito 25 enero 2019 - 08:59

Si uso el componente Tcomport, tengo una terminal para usar pero no se como capturar las respuestas del modulo gsm.

 

Hola

 

Yo he usado el componente AsyncPro y este componente cuenta con un evento el cual le indicas hasta cuando termina la recepción, puede ser un caracter o una cadena de caracteres.

 

Otra cosa que puedes hacer es hacer poner un timer que espere la recepción de la última parte, no se, algo así.

 

Saludos


  • 0