¿Buscas alguna otra cosa?
En la mayoría de aplicaciones el MTX-Tunnel es usado como una simple pasarela 2G/3G/4G-Serie. Pero en ocasiones puede resultar necesario integrar el MTX-Tunnel dentro de un sistema de un tercero y que desde un componente de ese sistema se pueda, por ejemplo, acceder al MTX-Tunnel para solicitar el estado de una entrada digital, conocer la cobertura, o cambiar un parámetro de configuración de forma remota o local sin necesidad de recurrir al software MES.
La API de usuario consiste básicamente en una serie de comandos AT especiales. Usted puede ejecutar comandos AT estándar sobre el MTX-Tunnel, comandos como puede ser el típico AT+CSQ para conocer la cobertura. Pero como se indica el MTX-Tunnel incluye una serie de comandos especiales (API), que permite la integración sencilla del MTX-Tunnel dentro del sistema o entorno de un tercero.
¿Cómo y desde donde se pueden envían comandos AT al MTX-Tunnel?
Dispone de varias opciones para enviar comandos AT al módem, que son:
Vía el puerto serie principal COM1 DB9 (encapsulando el comando)
Para enviar un comando AT por puerto serie COM1 del MTX-Tunnel debe encapsularlo de una forma especial. Tenga en cuenta que usted va a enviar un comando AT por el mismo “canal” serie por el que puede estar establecido un túnel Serie-2G/3G/4G.
Para ello debe encapsular el comando AT entre los TAGS <MTXTunnel> -</MTXTUNNEL>
Por ejemplo, si envía el comando:
<MTXTUNNEL>AT</MTXTUNNEL>
recibirá como respuesta:
<MTXTUNNEL>AT OK</MTXTUNNEL>
Es decir, todo lo que envíe por el puerto DB9 al módem encapsulado entre dichos tags no será reenviado vía 2G/3G/4G, sino que será interpretado por el MTX-Tunnel como un comando AT y ejecutado. De esa manera, un dispositivo conectado al DB9 (COM1) del MTXTunnel puede tener también el control total del módem.
Para poder enviar comandos AT por el puerto COM1 el parámetro MTX_ATMux debe estar a “on”. Si no va a utilizar esta funcionalidad no lo active. De esa manera no gastará recursos de CPU innecesariamente.
Vía el puerto serie principal COM1 DB9 (sin encarsular el comando)
Es posible enviar el comando AT sin encapsular utilizando un modo especial del MTX-Tunnel, únicamente pensado para cuando el módem está utilizado como pasarela TCP Server o CSD (llamada GSM). En esa situación es posible utilizar el parámetro MTX_ATMux: modem.
De esta manera podrá enviar comandos AT al módem siempre y cuando no esté establecida una conexión TCP Server el módem en ese momento.
Vía el puerto serie secundario COM2
Para enviar comandos AT por el puerto secundario, no tiene que encapsularlos, puede enviarlos directamente. Para ello lo único que debe establecer es el parámetro MTX_portAux a “on”. Si no va a utilizar esta funcionalidad no lo active, para no gastar recursos de CPU innecesariamente.
Vía SMS
Puede enviar comandos AT desde un mensaje SMS y recibir respuestas a los mismos. Para ello debe establecer el parámetro SMS_ATEnabled a “on” y SMS_ATResponse a “on”.
De esta manera, cualquier SMS que empiece por “mtxtunnel“ (o el valor que establezca en el parámetro SMS_header que especifique en el fichero de configuración config.txt) será interpretado como un comando SMS por el MTX-Tunnel. Por ejemplo, el SMS: “mtxtunnel at+csq” haría que el módem ejecutara el comano AT`+CSQ y devolviese otro SMS con la cobertura.
Vía HTTP
En capítulos anteriores se explicó cómo enviar comandos AT desde el WebBrowser embebido en el MTXTunnel. Existe otro método más recomendado si necesita, por ejemplo, leer el estado de una entrada digital o conmutar un relé desde su propia página web. Es el uso de la página “api.html” del WebServer.
Por ejemplo, para conocer la cobertura de forma remota mediante este api, bastaría con hacer una llamada a la API con la siguiente URL:
http://mtxtunnel.dyndns.org/api.html?ATCOMMAND=AT%2BCSQ&LOGIN=user&PASS=1234
y el MTX-Tunnel le contestaría con:
<MTXTUNNEL>AT+CSQ +CSQ: 25, 99 OK </MTXTUNNEL>
Para que usted pueda extraer de entre los tags <MTXTunnel> la respuesta al comando AT enviado.
Fíjese en la URL, debe indicar siempre, y en orden, los parámetros ATCOMMAND, LOGIN y PASSWORD.
Fíjese también en el comando enviado en el ejemplo, AT+CSQ, marcado en rojo en la URL. Recuerde que no es posible, en una URL, utilizar todos los caracteres ASCII. Los caracteres especiales debe codificarlos según el estándar.
%20 | > blank space |
+ | > blank space |
%21 | > ! |
%22 | > |
%23 | > |
%24 | > $ |
%25 | > % |
%26 | > & |
%27 | > \’ |
%28 | > ( |
%29 | > ) |
%2ª | > * |
%2B | > + |
%2C | > , |
%2D | > – |
%2E | > . |
%2F | > / |
%3A | > : |
%3B | > ; |
%3C | > < |
%3D | > = |
%3E | > > |
%3F | > ? |
%40 | > @ |
%5B | > [ |
%5C | > |
%5D | > ] |
%5E | > ^ |
%5F | > _ |
Vía Telnet
Tal y como se vio en el capítulo anterior, es posible enviar vía TELNET comandos AT al MTX-Tunnel sin mayor complicación.
Vía socket client
A partir del MTX-Tunnelv7, es posible enviar comandos AT remotos a través de la propia pasarela 2G/3G/4G-serie cuando el MTX-Tunnel está configurado para usar un socket tipo cliente. Le resultará muy útil si está utilizando un operador que NO PERMITE la configuración en modo Server. Para poder enviar comandos AT embebidos en un socket cliente, previamente tiene que configurar el parámetro MTX_ATEmbedded a “on”.
Para enviar comandos AT Remotos a través de un socket client debe encapsular el comando entre los tags: <MTXTUNNELR> </ MTXTUNNELR>
Por ejemplo, si envía el comando:
<MTXTUNNELR> AT </ MTXTUNNELR>
recibirá como respuesta:
<MTXTUNNELR> AT OK </ MTXTUNNELR>
Vía MQTT
A partir del MTX-Tunnelv9, es posible enviar comandos AT remotos a través de MQTT. Resulta muy sencillo. Imaginemos una configuración como la siguiente:
MQTT_enabled: on
MQTT_server: tcp://test.mosquitto.org:1883
MQTT_id: 12345678
MQTT_attopic1: AT1
MQTT_atrtopic: ATR
MQTT_qos: 0
MQTT_keepalive: 60
MQTT_persistent: off
Para enviar comandos AT remotos al módem vía MQTT, lo único que tenemos que hacer es enviar los comandos AT al topic especificado en el parámetro MQTT_attopic1, ya que el módem se subscribe a dicho topic tras la conexión con el bróker. Todo comando AT que se reciba en dicho topic será ejecutado por el módem.
La respuesta a la ejecución del comando AT, el módem la envía al tópic MQTT_atrtopic. Es decir, que si usted dispone de un teléfono móvil con un cliente MQTT (por ejemplo la app MyMQTT) podrá enviar comandos AT al módem de forma muy sencilla y ver sus respuestas.
Nótese que dispone no sólo de MQTT_attopic1, sino también de MQTT_attopic2 y MQTT_attopic3. Pensados para poder enviar comandos AT simultáneamente a grupos de módems. Consulte en el manual dichos parámetros para más información.