Integración de dispositivo personalizado con el protocolo GpsGate

Este artículo describe los requisitos al crear una integración de rastreador personalizada para permitir la comunicación cliente-servidor con GpsGate utilizando HTTP o HTTPS.

Especificaciones de comunicación rastreador-servidor

Al enviar reportes utilizando HTTP / HTTPS, el rastreador debe enviar los datos en el siguiente formato:

Enviar URL de mensaje

_SendMessage es enviado por el rastreador cuando debe enviar una posición de acuerdo con cualquier evento en el rastreador, como cuando se presiona un botón o se activa un sensor de movimiento. Se puede añadir cualquier número de entradas de estado al final de _SendMessage. 

La URL para enviar un mensaje tiene la siguiente estructura:

transport://hostname:port/comGpsGate/protocols/gpsgate/?cmd=$FRCMD,IMEI,_SendMessage,,DDMM.mmmm,N,DDMM.mmmm,E,AA.a,SSS.ss,HHH.h,DDMMYY,hhmmss.dd,valid,var=value

Campo Descripción
transport HTTP o HTTPS
hostname El nombre/dirección IP del servidor
port 80 para HTTP / 443 para HTTPS
comGpsGate/protocols/gpsgate/?cmd= Ruta del recurso
$FRCMD Un comando para enviar al servidor para la instrucción de enviar mensaje
IMEI El número IMEI del rastreador que se utiliza para la autenticación. 
_SendMessage Entrada que especifica cuándo se debe enviar una posición al servidor.
DDMM.mmmm Latitud (formato NMEA) 
<N|S> Hemisferio N o S
DDMM.mmmm  Longitud DDMM.mmmm (formato NMEA) 
<E|W> Hemisferio E o W 
AA.a Altitud en metros sobre el nivel del mar
SSS.ss  Velocidad sobre el suelo en nudos
HHH.h  Rumbo sobre el suelo en grados 
DDMMYY fecha 
hhmmss.dd  Hora (UTC)
válido 1 si es una corrección válida. 0 si no es una corrección válida.
var=valor Entrada de estado. Puede especificar más de una entrada para usar, por ejemplo, SosButton=1,BatteryLow=0, etc. Vea la lista de sección de entradas a continuación.

Ejemplo para HTTP

http://demo.server.com:80/comGpsGate/protocols/gpsgate/?cmd=$FRCMD,353857014816785,_SendMessage,,4748.0000,N,3530.0000,E,34.6,234.00,90.0,170109,
120523.65,1

Ejemplo para HTTPS

https://demo.server.com:443/comGpsGate/protocols/gpsgate/?cmd=$FRCMD,353857014816785,_SendMessage,,4748.0000,N,3530.0000,E,34.6,234.00,90.0,170109,
120523.65,1 

Prueba de la URL

Si deseas probar tu integración HTTP/HTTPS, simplemente copia y pega el contenido de la URL en tu navegador para ver la respuesta.

mceclip0.png

Respuesta

El cuerpo de la respuesta contiene la respuesta del servidor $FRRET, el IMEI del usuario autenticado, el comando utilizado, y un código de verificación.

Por ejemplo, el servidor responderá: $FRRET,IMEI,_SendMessage 

 

Entradas

El protocolo tiene un conjunto de entradas personalizadas. Estas pueden ser mapeadas usando el mapeador de dispositivos en el servidor usando GpsGate TrackerOne o Tipos de Dispositivos Genéricos de GpsGate. Agrega entradas de estado al final de los comandos _SendMessage enviados al servidor.

Nombre de la variable Tipo Obligatorio Descripción Ejemplo

Analog1-32

double No Una entrada personalizada para ser mapeada en el servidor. Valores posibles: Analog1 a 34 (GpsGate Generic Device) Analog1=45.7

BatteryLow

boolean enviado al servidor cuando la batería está baja. BatteryLow=1

Button1-4

 boolean  No Entrada booleana para almacenar el estado de señal de un botón de dos estados. Valores posibles: Button1 a 4 Button1=1 

CellID

number No Un número que especifica el CellID de la red celular CellID=12345

ChatMessage

string No Un mensaje de texto personalizado para usar con el complemento Dispatch (obsoleto). ChatMessage=helloWorld!

DriverID

string No Un campo de texto para ser utilizado con fines de identificación del conductor. DriverID=123456789ABC

HDOP

number No Un campo numérico para expresar dilución horizontal de la precisión. HDOP=123456

JobAssignmentState

string No Un mensaje de texto personalizado para usar con el complemento Dispatch (obsoleto). JobAssignmentState=Accepted

LAC

MCC

MNC

número No Un número para expresar Código de País Móvil (MCC), Código de Red Móvil (MNC), Código de Área de Ubicación (LAC) LAC=001

Motion

booleano No Este dato debe incluirse si el rastreador comienza a rastrear basado en el movimiento. En el servidor, este dato puede opcionalmente conectarse a alarmas de varios tipos. Motion=1

SmsMessage

cadena No Un campo de cadena personalizado para almacenar el contenido del mensaje SMS. SmsMessage=hello World!

SosButton

booleano No Este dato debe mapearse al evento SOS en el servidor. SosButton=1

Speed

número Este dato se utiliza para reflejar la velocidad del activo en m/s. Speed=5.56 

Switch1-16

 booleano  No

Entrada booleana para almacenar el estado de señal tipo interruptor de dos estados. Valores posibles: Switch1 a 16 (GpsGate Generic Device)

 Switch1=1

Text1-30

cadena No Un mensaje de texto personalizado. Valores posibles: Text1 a 30 (GpsGate Generic Device) Text1=Hello

Odómetro

double No Si el rastreador admite el odómetro (cálculo de distancia), use esta entrada para enviarlo al servidor. El valor puede ser absoluto o un valor delta desde el último reporte del odómetro. La entrada del odómetro se escala en el servidor.  Odometer=1023445.3

 

Manejo de errores

Si un comando por alguna razón no puede ser ejecutado, se devuelve FRERR y no FRRET. La razón puede
ser que hay algún tipo de error de ejecución, el comando no es compatible, o hay un error de protocolo. Cuando se devuelve FRERR, el cliente debe asumir que no se ha afectado ningún dato en el servidor. El protocolo está basado en transacciones. En todos los casos, excepto cuando hay un error de protocolo o de conexión, el intercambio de comandos puede continuar entre el servidor y el cliente.

$FRCMD siempre es respondido por $FRRET o $FRERR.

Error Descripción
200 (OK) La solicitud fue procesada exitosamente
400 (BadRequest) Solicitud incorrecta, no se puede ejecutar
401 (Unauthorized) Error de autenticación o inicio de sesión
403 (Forbidden) Error de autorización
404 (NotFound) Código Http predeterminado cuando no se pueden activar otros códigos Http (excepto 200 y 500)
500 (InternalServerError) Error interno del servidor, contacte al administrador (código Http predeterminado cuando no se pueden activar otros códigos Http)
501 (NotImplemented) La solicitud no es compatible
503 (ServiceUnavailable) Error interno del servidor, contacte al administrador

 

Ejemplo de error:

Cliente > $FRCMD,0802,_dummy,Inline*6C

Servidor > $FRERR,NotSupported,_dummy no compatible*66

mceclip0.png

Mapeador de Dispositivos

La función principal del Mapeador de Dispositivos es asignar entradas del rastreador a variables. Estas variables se utilizan en pantalla, reglas de eventos, reportes y más.

Lea más sobre el mapeador de dispositivos aquí.

Scripting del Mapeador de Dispositivos

El scripting del mapeador de dispositivos permite que las variables de GpsGate se asignen al resultado de un script definido por el usuario. Esto le permite crear mapeos más complejos entre variables.

Lea más sobre los scripts del mapeador de dispositivos aquí.