Other Languages => Spanish => Topic started by: soymoe on January 25, 2019, 09:21:43 pm
Title: detectar error al mandar sms por cpomandos AT
Post by: soymoe on January 25, 2019, 09:21:43 pm
hola a todos, estoy tratando de hacer u n programa para mandar sms masivo usando un modulo gsm, para comunicarme con el modulo uso el componente tlazserial, yo le mando comandos por el puerto serie y el modulo responde, el programa funciona lo que me pasa es que no logro captar las respuestas del modulo para saber si hay error o el mensaje se mando con exito. aqui un ejemplo de los comandos que le envio y me responde:
AT+CMGF=1 //comando enviado
OK ///respuesta AT+CMGS="54154011182" //comando enviado
+CME ERROR: 765 ///respuesta con el string error LUIS ANTONIO ORCELLET tambien tengo instalado en lazarus el componente TComport que posee una terminal serial, pero no se como poder saber si me responde con ok o con error. me ayudan?
Title: Re: detectar error al mandar sms por cpomandos AT
Post by: garlar27 on January 25, 2019, 10:36:48 pm
Nunca he trabajado con TLazSerial. Pero ví algo que me llamó la atención.
asumo que 54154011182 es el número de teléfono. Si los primeros 2 dígitos son el código de pais, asumo que estás queriendo comunicarte con un celular de Argentina. de ser así el número de teléfono estaría mal ya que le faltarían dígitos. El formato completo de un número de celular de Argentina es así: 2 dígitos código de Pais un dígito opcional de utilidad misteriosa ~~~~ 10 dígitos incluye el código de área (sin el cero) y el número del teléfono (sin incluir el prefijo de celular como 14, 15, 16 y todos los otros que vinieron después)
Algunas aplicaciones (como WhatsApp) exigen el número 9 luego del código del país para identificar un celular. por ejemplo un celular Capital Federal sería +54 9 11 9876 5432
ETA: No sé si te sirve pero tenía que escribirlo por las dudas.....
Title: Re: detectar error al mandar sms por cpomandos AT
Post by: soymoe on January 25, 2019, 10:49:52 pm
Gracias por la respuesta, como dije no tengo problemas para mandar sms, el sistema funciona, logicamente el numero debe ser correcto, el tema es detectar las respuestas del modulo y obrar en consecuencia.
Title: Re: detectar error al mandar sms por cpomandos AT
Post by: lucamar on January 25, 2019, 10:56:07 pm
No debería ser muy difícil: envía el comando y lee la respuesta, básicamente lo mismo que si estuvieras usando un modem en los 80 :)
Si algo no funciona tendrás que mostrarnos el código que estás usando. Es imposible saber qué anda mal sin saber qué es exactamente lo que estás haciendo.
Title: Re: detectar error al mandar sms por cpomandos AT
Post by: soymoe on January 25, 2019, 11:11:40 pm
La pregunta seria: si yo mando una cadena por ejemplo: "hola", usando el componete TLazSerial, o el TComport, como hago para poder captar la respuesta, que seria: "respuesta". Lo que tengo que detectar es por ejemplo si mando el comando: "AT", tengo que saber que me responde el modulo, la respuesta puede ser "OK" o si hay ERROR, seria el string"ERROR". no importa si los comandos son erroneos o no o para que sirve cada comando enviado, solo me interesa captar la respuesta del modulo.
Title: Re: detectar error al mandar sms por cpomandos AT
Post by: lucamar on January 25, 2019, 11:44:56 pm
[...] el programa funciona lo que me pasa es que no logro captar las respuestas del modulo para saber si hay error o el mensaje se mando con exito [...]
Vale, ¿qué es lo que está haciendo tu programa? ¿Qué has intentado para leer el puerto? ¿Qué es lo que no functiona? Todo eso y más sólo puede verse si nos muestras tu código. En teoría, leer/escribir en el puerto es (casi) lo más sencillo del mundo, pero de la teoría a la realidad ... ya se sabe.
Title: Re: detectar error al mandar sms por cpomandos AT
Post by: soymoe on January 26, 2019, 12:11:46 am
lo que trate de hacer es usar el evento onRXchart del puerto para cargar un Tmemo y leer la respuesta: