This morning I spent a while testing sending emails through AT commands with a TC65 Siemens modem, so to make use of what I have in mind I have made a brief example with Java, in the same style as I did it a while ago.

Programación java Siemens


EMAIL_EXAMPLE 
(Download)

Description: It’s a basic application for sending EMAILS with Java for Siemens modems. It creates a GPRS connection and sends an email to the specified email address. All you have to do is modify the code lines that indicate the SMTP server, your email account’s login and password, the original email address that sends the email and the destination email address where the email is sent.

Valid for modems: TC65, XT65, TC65T, MTX65 y MTX65+G

Well I hope you found it interesting, see you next time. Good night! ;)  


Post relacionados:

  1. FTP Java Example for Siemens Modems Today I am going to write a small post with...
  2. Adding Data to Files from Java with Siemens-Cinterion Modems On several occasions I have been asked how to add...
  3. How to get the time with MTX terminals and Siemens/Cinterion modems I haven’t written on blogElectronica for nearly a month. For...
  4. Java Application Autostart in Siemens Modems Today I am writing a small post to do with...
  5. (Español) Ejemplos Java para módems de Siemens Over the last few months I have been getting a...








Tags: , , , , ,
39 Responses to “Java Email Example for Siemens/Cinterion Modems”
  1. JoseEB says:

    Wenas BlogElectronica!

    Estoy desarrollando sobre un TC65 y tengo un problema cuando esta funcionando mucho tiempo seguido. Simplemente se apaga, da un codigo de error y nada mas. Suele hacerlo cada 8 horas mas o menos, aunque a veces lo hace mucho antes de ese tiempo.

    ^SHUTDOWN

    ^EXIT 00010000,01344b49414d582c283830303230312c39303032422c35313329
    ^SYSSTART

    Este es el codigo del error, que pasado a ascii el hex del error es: 4KIAMX,(800201,9002B,513)�.

    Error de firmware tal vez?? Alguna idea o causa posible??

    Estas haciendo un gran trabajo con este blog, es la referencia numero 1 sobre modems Siemens, quiero decir Cinterion jeje.

    Un saludo.

    • Richi says:

      Hola JoseEB:

      Yo tengo 4 XT65 versión 1 y sin motivo aparente, cualquiera de ellos se puede parar tras 20 minutos a 3 horas y media funcionando sin problemas. Estás los cuatro conectados a la misma fuente de alimentación y el comportamiento parece aleatorio. Alimento los cuatro a la vez y nunca sé cuánto van a durar funcionando ni cual de ellos se parará primero.

      Saludos. Richi.

  2. blogElectronica says:

    Hola JoseEB,

    no, no es posible saber la causa de un error de este tipo sin debugar la aplicación. Normalmente este tipo de errores suceden por haber agotado toda la memoria disponible. ¿Tal vez tienes un nº de threads elevado corriendo en paralelo? ¿Llamas de tanto en tanto al GC? ¿Monitorizas la memoria libre disponible? Yo de ti sacaría trazas del programa por el puerto serie para ver el punto exacto en el que se produce el error, monitorizando también la memoria libre. No hay otra manera. También llamaría de tanto en tanto al GC.

    Salu2.

  3. JoseEB says:

    Buenas, gracias por una respuesta tan rapida.

    Pues tengo comprobaciones de memoria libre y llamo de forma directa al gc cada vuelta del bucle principal, y siempre tengo mas de 200kb libres de ram, te pego una pequeña traza de momentos antes del problema:

    Velocidad para calculos: ——>0.0
    Posicion Actualizada
    Horario Actualizado
    Posibles alarmas generadas
    Tomando datos Gps
    Memoria libre: 227024/589824
    Actualizando posicion, segundos para mandar14907.0
    Calidad:0
    Velocidad para calculos: ——>0.0
    Posicion Actualizada
    Horario Actualizado
    Posibles alarmas generadas
    Tomando datos Gps
    Memoria libre: 227380/589824
    Actualizando posicion, segundos para mandar15332.0
    Calidad:0
    Velocidad para calculos: ——>0.0
    Posicion Actualizada
    Horario Actualizado
    Posibles alarmas generadas
    Tomando datos Gps
    Memoria libre: 227436/589824
    Actualizando posicion, segundos para mandar15614.0
    Calidad:0
    Velocidad para calculos: ——>0.0
    Posicion Actualizada
    Horario Actualizado
    Posibles alarmas generadas
    Tomando datos Gps
    Memoria libre: 227436/589824
    Actualizando posicion, segundos para mandar15900.0
    Calidad:0
    Velocidad para calculos: ——>0.0
    Posicion Actualizada
    Horario Actualizado
    Posibles alarmas generadas
    Restando al escritor…
    Tomando datos Gps
    Memoria libre: 226860/589824
    Actualizando posicion, segundos para mandar16320.0
    Calidad:0
    Velocidad para calculos: ——>0.0
    Posicion Actualizada
    Horario Actualizado
    Posibles alarmas generadas
    Tomando datos Gps
    Memoria libre: 227436/589824
    Actualizando posicion, segundos para mandar16606.0
    Calidad:0
    Velocidad para calculos: ——>0.0
    Posicion Actualizada

    ^SHUTDOWN

    ^EXIT 00010000,01344b49414d582c283830303230312c39303032422c35313329
    ^SYSSTART

    La memoria siempre se mantiene estable en al menos 200 kb libres, no hay bajadas abruptas de memoria libre. Tengo solo 4 hilos corriendo a la vez ademas de un timerTask, por lo que el error me tiene un poco perdido, porque no puedo imaginarme si quiera las causas. Alguna otra causa por la que pueda ser??

  4. blogElectronica says:

    Hola JoseEB,

    ¿Qué versión de firmware estás utilizando con el XT65? ¿Has probado actualizar al nuevo firmware 2.0?

    Salu2.

  5. edlectrico says:

    Hola blogElectronica,

    estoy empezando a dar mis primeros pasos con el MTX65 y ya he conseguido mi primer HelloWorld (gracias a vosotros en gran parte)

    Ahora estoy intentando que funcione este ejemplo pero tengo un par de dudas.

    La primera, es que no sé si tengo que configurar algo del MTX o simplemente con el código y una tarjeta SIM cualquiera me vale.

    Y la segunda, es que no sé qué poner en el String direccionServidorSMTP, ya que esa IP no la conozco.

    Saludos y gracias de antemano

  6. blogElectronica says:

    Hola Edlectrico,

    pues en la direcciónServidorSMTP has de poner eso, la dirección IP del servidor smtp de correo. Si no la sabes es tan fácil como hacer un ping a la dns de tu servidor de correo. Por ejemplo, desde una consola DOS haz:
    “ping servidorSmtp.miservidor.com”
    y te devolverá la IP del mismo. Ponla en el código. Creo recordar que es necesario especificar, en el caso del servicio de email, la dirección IP.

    Del MTX no tienes que configurar nada especial, con el código java y una tarjeta SIM cualquiera (provisionada para GPRS, es decir, cualquiera que puedas conseguir salvo que tengas bloqueado el servicio) te vale. Por supuesto, en el programa java, tienes que poner el apn, user y password adecuados para el operador de tu tarjeta SIM.

    Salu2.

  7. edlectrico says:

    Hola de nuevo y gracias por la respuesta,

    me has solucionado ambas dudas.

    Ahora tengo otro problema, he editado las líneas de código referentes a mi cuenta de correo de gmail y la de la SIM, que es de la operadora vodafone.

    El problema está en que por la salida me aparece lo siguiente:

    Iniciando secuencia conexión GPRS
    Evento: ^SYSSTART
    Evento:
    ^SISW: 1, 1

    Enviado: Hola de blogElectronica.com
    Evento:
    ^SIS: 1, 0, 400, “SMTP protocol error (530): 5.7.0 Must issue a STARTTLS command first. y7sm3908022ugc.53″

    Para mí que es un error de identificación (he buscado el error 530 por Google y he leído temas relacionados), pero no sé dónde puede estar el fallo en el código. He buscado también el APN que me comentabas (de vodafone) y parece estar bien… De todas formas voy a pegar aquí el trozo de código referente a estas 2 partes (mi cuenta de correo y la sim) a ver si veis algo “extraño” que pueda estar erróneo:

    public void enviarEmail()
    {
    String direccionServidorSMTP = “66.249.93.109″;
    String login = “xxxx@gmail.com”;
    String password = “**********”;
    String emailOrigen = “xxxx@gmail.com”;
    String emailDestino = “xxxx@hotmail.com”;

    System.out.println(“Iniciando secuencia conexión GPRS”);

    try
    {
    /*Access point name: VodafoneES
    APN address: ac.vodafone.es
    login: vodafone
    contraseña: vodafone
    **/
    ATC.send(“AT^SICS=1,conType,GPRS0\r”);
    ATC.send(“at^sics=1,apn,ac.vodafone.es\r”);
    //he probado con VodafoneES y nada…
    ATC.send(“at^sics=1,user,vodafone\r”);
    ATC.send(“at^sics=1,passwd,vodafone\r”);

    ATC.send(“AT^SISS=1,conId,1\r”);
    ATC.send(“AT^SISS=1,srvType,SMTP\r”);
    ATC.send(“AT^SISS=1,alphabet,1\r”);
    ATC.send(“AT^SISS=1,address,\”" + direccionServidorSMTP + “\”\r”);
    ATC.send(“AT^SISS=1,user,\”" + login + “\”\r”);
    ATC.send(“AT^SISS=1,passwd,\”" + password + “\”\r”);
    ATC.send(“AT^SISS=1,smAuth,1\r”);
    ATC.send(“AT^SISS=1,smSubj,\”Prueba Envío EMail desde MTX65\”\r”);
    ATC.send(“AT^SISS=1,smFrom,\”" + emailOrigen + “\”\r”);
    ATC.send(“AT^SISS=1,smRcpt,\”" + emailDestino + “\”\r”);
    ATC.send(“AT^SISS=1,smCC,\”\”\r”);

    Espero que me podais echar una mano.

    Un saludo y muchas gracias

    • Rec says:

      Ola edlectrico,
      Acontece-me o mesmo, com codigo semelhante, ao tentar enviar um email para gmail.
      Con seguiste resolver o problema?
      Saludos,
      Rec

    • CRACKET says:

      Hola edlectrico

      Tengo el mismo problema que tubistes al intentar enviar e-mail

      con el ejemplo.

      Me sale el error=

      400, “SMTP protocol error (530): 5.7.0 Must issue a STARTTLS command first

      Encontyraste la solucion?

      E provado muchas cosas e canviado los parametros un monton de veces pero siempre me sale el mismo error

      GRACIAS DE ANTEMANO

  8. Dudoso says:

    Hola,

    Estoy desarrollando una aplicación para enviar e-mail-s a través de un módem TC65 de Siemens. Mi problema es el siguiente:

    Primeramente realizo la configuración de una manera satisfactoria. A continuación Realizo el envío de datos, tal y como se ha mostrado en este ejemplo. El problema es que tras enviar el comando AT^SISW=1,0,1 , el módem me contesta ^SISW=1,0,0 y OK pero no recibo el ^SISW: 1, 2 que confirma que los datos han sido enviados correctamente y por tanto tampoco recibo el e-mail correspondiente.

    No sé porque motivo los datos no se envían correctamente (teniendo en cuenta que no se produce ninguna respuesta de error y todo son respuestas OK).

    Les agradecería cualquier tipo de sugerencia,

    Dudoso.

    • blogElectronica says:

      Hola Dudoso,

      ¿Qué versión de TC65 estás usando? Te recomiendo usar la v2.0 para esa aplicación o el TC65i (que es compatible pin a pin).

      Salu2

  9. Dudoso says:

    Hola de nuevo,

    Gracias por la rápida respuesta. Muy eficiente.

    Estoy con un terminal TC65T (no sé si esto responde a tu pregunta debido a que desconocía que existían diferentes versiones de TC65).

    1) ¿El problema podría estar relacionado con la NO activación del servicio GPRS por parte de la operadora? (He supuesto que lo estaba pero, realmente no tengo la certeza de que lo esté y quizás por este motivo la configuración es correcta pero no así el envío).

    2) Por otra parte, en cuanto al password (String password = “tuPassword”;//El password de tu cuenta de email), la cuenta de e-mail de origen que quiero utilizar es la que me proporcionala la operadora, es decir, num_tel@movistar.es. Estoy usando el password que me han dado al darme de alta en el correo móvil de movistar (al enviar un sms con la palabra clave al 22770). No estoy seguro si el password que estoy utilizando es el correcto.

    Siento la simpleza de mis preguntas, soy un novato total…

    Gracias,

    Dudoso

    • blogElectronica says:

      Hola Duduso,

      si utilizas un TC65T tiene (seguramente) un TC65 con la versión 2.0, no hay problema.

      1) Por supuesto necesitas GPRS. Asegúrate que lo tienes.
      2) Ahí no te puedo ayudar, de los emails de telefónica ni idea, tendrás que preguntarles a ellos.

      Salu2

      • Dudoso says:

        Hola blogElectronica,

        Gracias por la respuesta. El problema principal residía en la no habilitación del servicio GPRS por parte de la operadora. Basta con ponerse en contacto con la operadora en cuestión. En segundo lugar era necesario crear una cuenta de correo móvil movistar. Una vez creada la operadora te proporciona la clave necesaria para la configuración de la sesión GPRS.

        Ahora vengo con otra cuestión, espero puedan ayudarme:

        Estoy interesado en realizar una transferencia de datos durante una llamada de voz. ¿Es posible realizarlo con el terminal TC65T?. Si lo fuera, ¿Cuáles son los comandos necesarios?.

        Gracias de antemano,

        Dudoso

      • blogElectronica says:

        Hola Dudoso,

        eso no es posible, lo que es posible es justo al revés. Mientras estás en una transferencia de datos gprs te puede entrar una llamada de voz y puedes gestionarla. En ese momento se quedan “en suspensión” los sockets que tengas abiertos y demás, y en cuanto cuelgues la llamada de voz los datos vuelven a estar “habilitados”, es decir si hay voz y datos, la voz manda, las 2 cosas no es posible.

        Salu2.

  10. Pablo says:

    En primer lugar, agradecer al administrador de este blog el tiempo que invierte en hacernos avanzar en nuestro manejo del los módulos cinterion.

    Mi pregunta es la siguiente: ¿Podemos hacer que un mismo correo se envíe a múltiples direcciones a la vez? Es decir, ¿¿podemos poner varias direcciones en el campo SmRcpt??

    Un saludo

  11. Pua says:

    Hola,

    Creo recordar que no es posible,

    tendras que hacer un bucle y enviar sucesivos correos

    Salu2

    Pua

  12. Pablo says:

    Es lo que estaba haciendo hasta ahora. Pero eso hace que el tamaño de los datos enviados (y su precio) se multiplique por el número de receptores del correo.

    Muchas gracias por tu ayuda de todas formas.

    Un saludo
    Pablo.

  13. Siko says:

    Hola, he adquirido hace una semana un modulo MTX63, y en el intento de envío de un email, siguiendo los pasos obtengo el siguiente error:

    ^SIS: 1, 0, 400, “SMTP protocol error (550): must be authenticated”

    Los envíos que realizo por comandos AT son los siguientes:

    AT+creg?

    +CREG: 0,1

    OK
    at^sics=0,conType,gprs0

    OK
    AT^SICS=0,user,vodafone

    OK
    AT^SICS=0,passwd,vodafone

    OK
    AT^SICS=0,apn,ac.vodafone.es

    OK
    at^siss=1,srvtype,SMTP

    OK
    at^siss=1,alphabet,1

    OK
    at^siss=1,conId,0

    OK
    at^siss=1,address,smtp.1and1.es

    OK
    at^siss=1,passwd,********

    OK
    at^siss=1,smAuth,1

    OK
    at^siss=1,user,****@******.com

    OK
    at^siss=1,smfrom,****@*********.com

    OK
    at^siss=1,smRcpt,*****@*******.com

    OK
    at^siss=1,smsubj,”testing”

    OK
    at^siso=1

    OK

    ^SISW: 1, 1
    at^sisw=1,5

    ^SISW: 1, 5, 0

    OK

    ^SIS: 1, 0, 400, “SMTP protocol error (550): must be authenticated”

    Esta misma rutina de comandos (con mínimas diferencias) si he conseguido que funcione con un modulo telit, con la misma tarjeta SIM y el mismo SMTP.

    He visto en la página 269 de 545 en lo referente al comando smAuth del datasheet de comandos AT (MTX63 v3 AT commands FW 03-001.pdf) lo siguiente:

    “If TC63 and SMTP server are not able to negotiate an authentication mechanism supported by both parties, the TC63 continues action without authentication.
    TC63 supports SMTP authentication.”

    Deduzco que el protocolo de autentificación de mi servidor smtp no está soportado por el modulo de siemens, ¿Podría estar en lo cierto? ¿Como podría saber cuál es ese protocolo que si soporta telit pero no siemens?, ¿alguna solución?

    Un saludo

  14. Dudoso says:

    Hola,

    Antes de nada, muy muy útil este blog. Una pregunta sencilla:

    Estoy utilizando un módem TC65 y realizo en envío de un e-mail mediante éste. Me gustaría adjuntar un fichero a este e-mail. ¿Cuál es el código necesario en lenguaje C para realizar esta operación?

    Gracias de antemano y un saludo,

    Dudoso

    • blogElectronica says:

      Hola Dudoso,

      no estoy seguro al 100%, pero creo que no puedes adjuntar un archivo en un email enviado por un TC65.

      Salu2.

      • Dudoso says:

        Hola de nuevo,

        Gracias por la respuesta. Otra pregunta a raíz de tu respuesta:

        Si con un TC65 no es posible adjuntar un archivo en un e-mail, ¿con qué dispositivo de similares características podría hacerlo?

        Muchas gracias,

        Dudoso

      • Pua says:

        Hola,

        si es posible pero es un poco engorroso.

        En general el protocolo SMT se usa para enviar correos a través de un servidor de correo.
        Cuando usas este protocolo el cliente de correo(en este caso la pila at^SISx del módulo Cinterion) puede/debe especificar parámetros como dirección del destinatario, dirección del enviante, sujeto, etc y finalmente el cuerpo del mensaje.
        Lo curioso es que los adjuntos de un correo electrónico se pueden enviar como texto, con lo cual podrían ser tranmitidos con los módulos de Cinterion que dispongan de pila TCP/IP mediante comandos AT^SISx, aunque estos comandos no dispongan de opción de incluir ficheros adjuntos.
        Para hacer esto con tu MMI necesitarás convertir el fichero en texto plano y añadirlo/enviarlo mediante los comandos AT usando ciertas cabeceras hexadécimal.
        Necesitarás convertir el fichero a adjuntar unsando codificación base64 y las cabeceras. Mas información sobre esta codificación en sanwikipedia http://en.wikipedia.org/wiki/Base64 . Desventeja, esta codificación hará 4/3 mas grande el fichero a causa de las cabeceras y la codificación. Para un fichero de 3K necesitarás enviar cerca de 4K de información, resumiendo mas datos mas €

        Ejemplo de envio de un correo sin fichero adjunto

        AT^SISS=0,”srvType”,”SMTP”

        AT^SISS=0,”alphabet”,1

        AT^SISS=0,”address”,”AddressOfSmptserver”

        AT^SISS=0,”smFrom”,”OriginatorAddress”

        AT^SISS=0,”smRcpt”,”RecipientAddress”

        AT^SISS=0,”smSubj”,”Text of Subject”

        Después se invoca el servicio SMT con el comando at^siso y con at^sisw se envia

        Ahora bien para enviar el correo con fichero adjunto, el mensaje tiene que ser dividido en varias partes. El comienzo de cada una de esas partes se marca con “boundary-pattern”. Para hacer esto lo siguientes parámetros son requeridos:

        MIME-Version: 1.0

        Content-Type: multipart/mixed; boundary=”aaaaaAAAAAbbbbbBBBBBcccccCCCCC”

        “multipart/mixed” significa que el emnsaje consta de varias partes

        “boundary” especifica que los datos tienen que detectar nuevos datos. Esta parte puede ser lo que quieras. Después esta parte necesitas “–” para señalar el nuevo “boundary”

        En este ejemplo empírico el “boundary” se define con la cadena “aaaaaAAAAAbbbbbBBBBBcccccCCCCC”, sin embargo el mensaje de texto tendrá que contener la cadena “–aaaaaAAAAAbbbbbBBBBBcccccCCCCC” siempre en cada nueva parte.

        Ejemplo:

        AT^SISS=0,”smHdr”,”MIME-Version: 1.0DAContent-Type: multipart/mixed; boundary=\22aaaaaAAAAAbbbbbBBBBBcccccCCCCC\22″

        El mensaje de texto que será enviado usando at^siw tiene que ser modificado para corresponder alsiguiente formato:

        –boundary pattern ***

        Content-Type: text/plain; charset=US-ASCII empty line***

        message text***

        empty line***

        –boundary pattern ///

        Content-Type: application/octet-stream ///

        Content-Transfer-Encoding: base64 ///

        Content-Disposition: attachment; filename=”name of file” ///

        empty line ///

        content of attached file encoded in base64 format ///

        –boundary pattern–///

        La parte que acaba en *** es el mensaje y la parte queacabaen /// es el fichero . Por supuesto eliminar del mensaje los dos tipos de marcas

        Cada línea tiene que terminar con CRLF(0x0D y 0x0A)

        Cada empty line es un CRLF

        Cada bounday debe tener “–”

        El último boundary debe tener tambien “–”

        Para añadir varios ficheros esto se complica con boundary por separado, vamos no me voy a meter en esto.

        Ejemplo codificado con comandos AT:

        En este ejemplo se describe un correo con un fichero adjunto llamado “test06.bin”. Este fichero puede ser lo que tu quieras, pero pondré un texto para no complicarlo.

        Texto:This is a test

        Tamaño de test06.bin 14Bytes.

        Una vez convertido en texto en base64 será:

        VGhpcyBpcyBhIHRlc3Q=

        Gracias http://www.webutils.pl/index.php?idx=base64 por hacer esto por mi

        La secuencia de comandos sería

        AT^SISS=0,”srvType”,”SMTP”

        AT^SISS=0,”alphabet”,1

        AT^SISS=0,”address”,”smtp.xxx.xxx”

        AT^SISS=0,”smFrom”,”xxx@xxx.xxx”

        AT^SISS=0,”smRcpt”,”xxxreceptor@xxx.xxx”

        AT^SISS=0,”smSubj”,”Asunto”

        AT^SISS=0,”smHdr”,”MIME-Version: 1.0DAContent-Type: multipart/mixed; boundary=\22aaaaaAAAAAbbbbbBBBBBcccccCCCCC\22″

        Ahora introduce AT^SISO=0 para comenzar la conexión y el servicio y recibirás el URC ^SISW:0,1 y envia al modem los siquientes comandos
        AT^SISW=0,365,1

        ^SISW: 0, 365, 0

        –aaaaaAAAAAbbbbbBBBBBcccccCCCCC

        Content-Type: text/plain; charset=US-ASCII

        This is an example how to send an email with attachment

        –aaaaaAAAAAbbbbbBBBBBcccccCCCCC

        Content-Type: application/octet-stream

        Content-Transfer-Encoding: base64

        Content-Disposition: attachment; filename=”test06.bin”

        VGhpcyBpcyBhIHRlc3Q=

        –aaaaaAAAAAbbbbbBBBBBcccccCCCCC–

        OK

        ^SISW: 0, 2

        AT^SISC=0

        OK

        He suprimido mi servidor de correo y direcciones de correo.

        Te debería llegar un correo en Asunto: Asunto; en cuerpo del mensaje “This is an example how to send an email with attachment” y con un fichero adjunto llamado test06.bin que si lo abres con un editor de texto pone “This is a test”

        Ahora a experimentar.

        Después de semejante ladrillo y complicación también te puedes plantear hacer un append en un servidor FTP, o crear ficheros nuevos con el contenido que quieras, creo será muuuuuchooooo mas sencillo.

        Ahora un voluntario para implementarlo en Java con Comandos AT , o en Java con sockets.

        Salu2

        Pua

    • Pua says:

      hola,

      disculpad por las faltas de ortografía.

      comentar que el símbo que sale — coresponde a 2 veces el simbolo – . en en ejemplo codificado que da claro que son 2 veces el caracter -

      Salu2

      Pua

  15. Gabriele says:

    Hola BlogElectronica!!

    I’m developing an application with the module XT75. I have problem in measurement with ADC_IN ports.
    Have you any example to provide me?
    My problem consists in read the same value of voltage on both ports (I think that the program which I wrote is right, so maybe the problem is hardware)

    Thanks for reply!!
    Gabriele

  16. Pua says:

    Hi Grabriele,

    check the ranged value thaht the module can measure, the module has ranges to measure and maybe your device is out of this ranges. you can find the information in the Hardware description of this module. Other possibility could be your circuit.
    I hope there is a example in the hardware manual

    Regards

    Pua

  17. blogElectronica says:

    Hi Grabriele,

    maybe you can use something like this:

    //Método para leer un ADC.
    public int getADC(int numADC)
    {
    String respuestaAT,resultado;
    int posiIni=0,posiFin=0;
    try
    {
    //Leemos el estado de un determinado nº de pin
    respuestaAT=sendAT(“at^sradc=” + numADC);
    posiIni=respuestaAT.indexOf(“^SRADC:”);
    if (posiIni>-1)
    {
    posiFin=respuestaAT.indexOf(“\r”, posiIni);
    resultado=respuestaAT.substring(posiIni+12, posiFin);
    return Integer.valueOf(resultado).intValue();;
    }
    else
    return 0;

    }
    catch (Exception e)
    {
    if (debug) System.out.println(“Excepcion getADC”);
    if (debug) e.printStackTrace();
    }
    return 0;

    }

    The range is 0 … 2.4V

    Best regards.

  18. Alfredo says:

    Hola!

    Retomo el hilo para preguntar si también es posible recibir emails con los Cinterion. ¿Desde un servidor POP3 quizá?

    Saludos.

  19. blogElectronica says:

    Hola Alfredo,

    pues sí, puedes perfectamente bajarte un email con un TC65i? Tienes un ejemplo en la página 304 del manual de comandos AT del tc65i.

    Salu2

  20. Miguel says:

    muy buenas a tod@s,
    estoy intentando mandar un email con el ejemplo arriba expuesto y no lo consigo, leyendo vuestros comentarios me surgen 3 dudas:
    - Para enviar un e-mail con un TC65 ¿qué versión necesito? yo tengo la 3.
    - En caso de que consiguiera mandar un e-mail ¿se puede adjuntar un archivo .txt?
    - esta es mi configuración: ¿es correcta?

    String direccionServidorSMTP = “xxx.xxx.xxx.xxx”; // la dirección que sea
    String login = “miguel@hotmail.com”;
    String password = “micontraseña”;
    String emailOrigen = “miguel@hotmail.com”;
    String emailDestino = “miguelito@gmail.com”;

    ATC.send(“AT^SICS=1,conType,GPRS0\r”);
    ATC.send(“at^sics=1,apn,movistar.es\r”);
    ATC.send(“at^sics=1,user,MOVISTAR\r”);
    ATC.send(“at^sics=1,passwd,MOVISTAR\r”);

    Un saludo y gracias.

  21. Miguel says:

    muy buenas a tod@s,
    ya por fin puedo enviar email desde mi TC65 v.3 con la configuración anteriormente indicada, ahora tengo otro problema dicho email lo recibo bien si el cuerpo del mensaje es pequeño cuando tengo que mandar una ristra gorda de bytes no lo consigue enviar, da este resultado:
    java.io.IOException: Error sending data, no ongoing data connection
    – com.siemens.icm.io.ATCommand..unknown.(), bci=0
    – com.siemens.icm.io.ATCommand..unknown.(), bci=4
    – com.siemens.icm.io.ATCommand$OutputStreamDataConnection.write(), bci=59
    – com.siemens.icm.io.ATCommand$OutputStreamDataConnection.write(), bci=5
    – src.main.escribirSocket(), bci=60
    – src.main.enviarEmail(), bci=338
    – src.main.(), bci=162
    – java.lang.Class.newInstance(), bci=0
    – javax.microedition.midlet.Main.main(), bci=53

    ¿alguna solución?

    Saludos

    • blogElectronica says:

      Hola Miguel,

      eso es porque escribes en el socket antes de recibir el URC de que puedes escribir más datos por el socket. Es decir, si usas el comando AT^SISW para escribir datos ANTES de recibir el URC ^SISW: 1,1 (indicando que está disponible el socket 1 por donde envías datos, recibirás ese error.

      Salu2.

  22. CRACKET says:

    HOLA A TODOS

    Estoy provando el ejemplo del Envio EMAIL con comandos AT

    pero siempre me sale el mismo error:

    400, “SMTP protocol error (530): 5.7.0 Must issue a STARTTLS command first

    E buscado y sale que es error de authentificacion,

    e provado con

    at^siss=1,smAuth,1

    y con

    at^siss=1,smAuth,0

    y siempre sale el mismo error,

    Alguien sabe que pasa?

    GGRACIAS Y SALUDOS

    • blogElectronica says:

      Hola Creacket,

      creo recordar que el stack no te permite el uso del perfil de SMTP para el uso de servidores con encriptación (que no es lo mismo que autenticación). Deberías usar un servidor de email sin encriptación.

      Salu2

  23.  
Leave a Reply

Puedes publicar un comentario aquí si quieres, pero te recomiendo que uses el nuevo foroElectronica.com para introducir comentarios. Te contestaré más rápido. Recuerda que debes registrarte si no lo estás para publicar un comentario.