Por supuesto la respuesta es mas fácil de lo que esperaba, primero configurar el GPS, cada GPS es diferente lo que hay que hacer es indicarle que envíe datos a través GPRS a un IP fija, abrir un puerto en el "receptor" y lograr que escuche ese puerto.
Bueno aquí la primer solución, usando iFox, excelente herramienta, por supuesto que pueden usar WinSock pero me ha resultado mas complicado.
Nota: Pueden descargar iFox desde este enlace
Aquí el código con IFOX.
*** abrir puerto para escuchar *** THIS.iFoxSockets = CREATEOBJECT("iFox.Sockets") THIS.Socket = 0 *** indico el puerto que quiero escuchar en el gps debe indicar enviar datos a ese puerto THIS.ListenSocket = THIS.iFoxSockets.LISTEN(1123) IF THIS.ListenSocket <> 0 * THIS.txtServer.VALUE = "Esperando conexión ..." && pueden manejar con un text box UPDATE gp_gps SET conectado = "Esperando..." && o pueden almacenar en una tabla THIS.tmrRead.INTERVAL = 400 && un timer que lee el puerto cada cierto tiempo ELSE UPDATE gp_gps SET conectado = "Error" ENDIF *** codigo del timer *** LOCAL nSocket, cRes IF THISFORM.ListenSocket <> 0 nSocket = THISFORM.iFoxSockets.AcceptConnections(THISFORM.ListenSocket) IF nSocket <> 0 * Aunque es posible en este ejemplo no aceptamos mas de una conexión THISFORM.iFoxSockets.CLOSE(THISFORM.ListenSocket) THISFORM.ListenSocket = 0 THISFORM.Socket = nSocket UPDATE gp_gps SET conectado="Conectado " && + THISFORM.iFoxSockets.GetRemoteHost(nSocket) + ; " (" + THISFORM.iFoxSockets.GetRemoteHostIP(nSocket) + " )" ENDIF ENDIF IF THISFORM.Socket <> 0 cRes = THISFORM.iFoxSockets.READ(THISFORM.Socket) IF !EMPTY(cRes) THISFORM.edtRespuesta.VALUE = cRes + THISFORM.edtRespuesta.VALUE THISFORM.lbldatos.CAPTION = "Ultimos datos:" + TTOC(DATETIME()) THISFORM.edit1.VALUE = mc_splitgps(cres,puerto) *** *** el GPS envia todo en una sola cadena lo que hago aca es separar los datos, *** el GPS envia algo asi: *** (013666666666BP05000013666666666110106A2309.0321S06419.0954W009.811302384.57000000000L000860AF) *** el mc_split separa los datos en latitud longitud, fecha, hora velocidad *** todo es cuestion de observar un poco, por supuesto en cada gps es diferente pero *** en este caso en particular queda algo asi: *** 013666666666BP05000013666666666 *** Fecha 110106 *** A23 *** Latitud 09.0321S *** Longitud 06419.0954W *** Velocidad 009.8 *** Hora 113023 *** 84.57000000000L000860AF *** ELSE IF THISFORM.iFoxSockets.SocketClosed THISFORM.iFoxSockets.CLOSE(THISFORM.Socket) THISFORM.Socket = 0 UPDATE gp_gps SET conectado = "Finalizado..." ENDIF ENDIF ENDIF ***Bueno para que lo puedan ir digiriendo los dejo un rato, en la siguiente entrega, ver los datos en Google Maps.
Bueno hasta aquí la lectura del puerto.
Saludos y hasta la próxima.
Carlos [Caremi66]
PORFA TU PROYECTO PARECE INTERESANTE NOS PUEDES DAR OTRO ADELANTO
ResponderBorrarMe gustaría saber si ya el proyecto esta terminado y se pueden localizar teléfonos por medio de este método.
ResponderBorrarGracias
me gustaria saber si el ptoyecto esta completo y IFOX donde lo puedo conseguir
ResponderBorrar