28/9/23 - Modificaciones para que mande la ubicación si no hay cambios durante 15 minutos.

This commit is contained in:
2023-09-28 00:39:03 -06:00
parent 94d176ea9e
commit 084b4d9c49
7 changed files with 42 additions and 26 deletions

View File

@@ -38,13 +38,23 @@ Version=12.5
#Region Project Attributes
#ApplicationLabel: FLP 2.0
#VersionCode: 1
#VersionName: 3.07.07
#VersionName: 3.09.27
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
' #AdditionalJar: com.android.support:support-v4
#AdditionalJar: com.google.android.gms:play-services-location
#BridgeLogger:True
'###########################################################################################################
'###################### PULL #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull
'###########################################################################################################
'###################### PUSH #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\
'###########################################################################################################
'###################### PUSH TORTOISE GIT #########################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../"&Args=/closeonend:2
'###########################################################################################################
#End Region
#Region Activity Attributes
@@ -65,7 +75,7 @@ End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
Private Button1 As Button
Private b_pong As Button
Private et_id As EditText
Private b_guardarId As Button
Private l_coords As Label
@@ -79,7 +89,7 @@ Sub Activity_Create(FirstTime As Boolean)
Subs.getPhnId
et_id.Text = Starter.devModel.trim
getSSID
Button1.Left = Round(Activity.Width/2)-(Button1.Width/2)
b_pong.Left = Round(Activity.Width/2)-(b_pong.Width/2)
l_id.Left = (Activity.Width / 2) - (l_id.Width / 2)
l_lastUpdate.Left = (Activity.Width / 2) - (l_lastUpdate.Width / 2)
b_guardarId.Left = (Activity.Width / 2) - (b_guardarId.Width / 2)
@@ -110,8 +120,9 @@ Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim)
Sub b_pong_Click
CallSubDelayed(Tracker, "StartFLP")
If laUbicacion.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim)
Dim params As Map = CreateMap("topic": FirebaseMessaging.Sprvsr,"title":"Prueba Trckr", "body":"Prueba Trckr", "d":Starter.devModel, "t":"pong")
CallSubDelayed2(FirebaseMessaging, "SendMessage",params)
If Starter.logger Then Log("Start wifi scan")
@@ -119,7 +130,7 @@ Sub Button1_Click
Wait For WiFi_ScanDone (Results() As String, Count As Int)
End Sub
Sub Button1_LongClick
Sub b_pong_LongClick
copiaDB
End Sub
@@ -193,7 +204,7 @@ Private Sub b_guardarId_Click
et_id.Text = Starter.devModel.Trim
If Starter.logger Then Log(Starter.devModel.Trim)
End If
If Tracker.FLP.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim)
If laUbicacion.IsInitialized Then Subs.mandaLocAServer(laUbicacion, Starter.devModel.Trim)
End Sub
Sub ponCoords

View File

@@ -19,9 +19,9 @@ ModuleClosedNodes1=
ModuleClosedNodes2=
ModuleClosedNodes3=1
ModuleClosedNodes4=
ModuleClosedNodes5=
ModuleClosedNodes6=2,3,4,5,6,7,8,9,10,11,12,13,16
ModuleClosedNodes7=7,8
NavigationStack=Subs,ConvertMillisecondsToString,179,0,Main,actualizaLabelUU,173,5,Main,b_guardarId_Click,142,0,Visual Designer,Layout.bal,-100,6,Main,Globals,36,1,Main,Activity_Create,42,6,Starter,Timer1_Tick,54,0,Starter,Process_Globals,15,0,Subs,fechaKMT,141,0,Subs,mandaLocAServer,171,6
ModuleClosedNodes5=2,3
ModuleClosedNodes6=2,3,4,5,6,7,8,9,10,11,12,13
ModuleClosedNodes7=9,11
NavigationStack=FirebaseMessaging,SendMessage,142,0,Starter,Process_Globals,5,0,Starter,Service_Start,46,0,Tracker,StartFLP,76,0,Starter,Timer1_Tick,55,6,Tracker,dameUltimaUbicacionConocida,102,1,NotificationService,NotiMon_NotificationPosted,81,6,Tracker,flp_LocationChanged,135,6,Tracker,StopFLP,128,0,Main,b_pong_Click,75,0
SelectedBuild=0
VisibleModules=5,2,7,3,6,4

Binary file not shown.

View File

@@ -72,7 +72,7 @@ Sub Service_Destroy
End Sub
Sub NotiMon_NotificationPosted (SBN As StatusBarNotification)
If not(Tracker.FLP.IsInitialized) then StartService(Tracker)
If Not(Tracker.FLP.IsInitialized) Then StartService(Tracker) 'Si el servicio no esta corriendo, lo iniciamos.
Private logger As Boolean = True
' Log("-= Notificacion recibida =-")
If SBN.PackageName = "com.whatsapp" Then
@@ -84,7 +84,8 @@ Sub NotiMon_NotificationPosted (SBN As StatusBarNotification)
' Si recibimos un mensaje con la palabra "donde", "Donde" o "bien", entonces mandamos la última ubicación conocida.
If SBN.Message.Contains("donde") Or SBN.Message.Contains("Donde") Or SBN.Message.Contains("bien") Then 'Si el mensaje contiene "#NS" y tiene un segundo parametro ...
If esMensajeWAValido(SBN) Then
CallSub2(Tracker, "dameUltimaUbicacionConocida", Starter.UUC)
CallSubDelayed(Tracker, "StartFLP")
CallSubDelayed2(Tracker, "dameUltimaUbicacionConocida", Starter.UUC)
Log("Mandamos a Server")
End If
End If

View File

@@ -18,12 +18,13 @@ Sub Process_Globals
Dim reqManager As DBRequestManager
Dim cmd As DBCommand
Dim Timer1 As Timer
Dim interval As Int = 60 '600 segs (10 mins)
Dim interval As Int = 600 '600 segs (10 mins)
Dim UUC As Location
Dim run As Int = 0 'ignore
Dim devModel As String
Dim lastLocUpdate As String = 0
Dim logger As Boolean = True
Dim FLPStatus As String
End Sub
Sub Service_Create
@@ -51,14 +52,15 @@ Sub Service_Start (StartingIntent As Intent)
End Sub
Private Sub Timer1_Tick
' ToastMessageShow("Timer",False)
CallSubDelayed(Tracker, "StartFLP")
If logger Then Log("Next run " & DateTime.Time(DateTime.Now + interval * 1000))
' Log($"|${Tracker.FLP.IsInitialized}|${Tracker.FLP.GetLastKnownLocation.IsInitialized}|"$)If DateTime.DateForm
CallSub2(Tracker, "dameUltimaUbicacionConocida", UUC)
'Si ya pasaron mas de 15 minutos (900 segs) desde la ultima actualización, entonces mandamos UUC.
If ((DateTime.now - lastLocUpdate)/1000) > (interval * 1.5) Then
LogColor($"Mandamos ubicacion porque no se ha enviado en ${(interval * 1.5)} segs."$, Colors.red)
Subs.mandaLocAServer(Tracker.FLP.GetLastKnownLocation, devModel)
LogColor($"Mandamos "Ultima Ubicacion Conocida" porque no se ha enviado en ${(interval * 1.5)} segs."$, Colors.red)
CallSub2(Tracker, "dameUltimaUbicacionConocida", UUC)
If Tracker.FLP.IsInitialized Then Subs.mandaLocAServer(Tracker.FLP.GetLastKnownLocation, devModel)
End If
End Sub

View File

@@ -169,7 +169,7 @@ End Sub
Sub mandaLocAServer(loc As Location, id As String)
Starter.lastLocUpdate = DateTime.Now
CallSubDelayed(Main, "actualizaLabelUU")
If Not(IsPaused(Main)) Then CallSubDelayed(Main, "actualizaLabelUU")
Starter.cmd.Initialize
Starter.cmd.Name = "guardaDatos"
Starter.cmd.Parameters = Array As Object(fechaKMT(DateTime.Now), id, fechaKMT(DateTime.Now), $"${loc.Latitude},${loc.Longitude},${loc.Accuracy},${loc.AccuracyValid},${loc.Speed},${loc.SpeedValid}"$, "Coords")
@@ -179,7 +179,7 @@ Sub mandaLocAServer(loc As Location, id As String)
Starter.reqManager.ExecuteCommand(Starter.cmd,"guardaDatos")
End Sub
Sub ConvertMillisecondsToString(t As Long) As String
Sub ConvertMillisecondsToString(t As Long) As String 'ignore
Dim hours, minutes, seconds As Int
hours = t / DateTime.TicksPerHour
minutes = (t Mod DateTime.TicksPerHour) / DateTime.TicksPerMinute

View File

@@ -39,7 +39,7 @@ Sub Process_Globals
'Para FusedLocationProvider (2 lineas)
Public FLP As FusedLocationProvider
Private flpStarted As Boolean
Dim minAccuracy As Int = 50
Dim minAccuracy As Int = 30
End Sub
Sub Service_Create
@@ -58,7 +58,7 @@ Sub flp_ConnectionSuccess
End Sub
Sub flp_ConnectionFailed(ConnectionResult1 As Int)
if starter.logger then Log("Failed to connect to location provider")
If Starter.logger Then Log("Failed to connect to location provider")
End Sub
Sub Service_Start (StartingIntent As Intent)
@@ -88,14 +88,15 @@ Public Sub StartFLP
Loop
' If flpStarted = False Then
Log("RequestLocationUpdates")
Starter.FLPStatus = "Searching" : LogColor("FLP Searching", Colors.blue)
FLP.RequestLocationUpdates(CreateLocationRequest) 'Buscamos ubicacion
Log("Buscamos ubicacion")
flpStarted = True
' End If
End Sub
Private Sub CreateLocationRequest As LocationRequest
' Log("CreateLocationRequest")
Starter.FLPStatus = "Searching" : LogColor("FLP Searching", Colors.blue)
Dim lr As LocationRequest
lr.Initialize
lr.SetInterval(30000) 'Intervalo deseado para actualizaciones de ubicacion en milisegundos
@@ -111,7 +112,7 @@ Sub dameUltimaUbicacionConocida(lastLocation As Location)
If Starter.logger Then Log("This accuracy: " & FLP.GetLastKnownLocation.Accuracy)
If Starter.logger Then Log("This distance to previous: " & FLP.GetLastKnownLocation.DistanceTo(lastLocation))
Dim coords As String = FLP.GetLastKnownLocation.Latitude&","&FLP.GetLastKnownLocation.Longitude&","&Subs.formatoFecha(FLP.GetLastKnownLocation.Time)
If FLP.GetLastKnownLocation.Accuracy < 30 And FLP.GetLastKnownLocation.DistanceTo(lastLocation) > 25 Then
If FLP.GetLastKnownLocation.Accuracy < minAccuracy And FLP.GetLastKnownLocation.DistanceTo(lastLocation) > 25 Then
Starter.UUC = FLP.GetLastKnownLocation
Subs.mandaLocAServer(FLP.GetLastKnownLocation, Starter.devModel)
If Starter.logger Then Log("Mandamos GetLastKnownLocation : "&DateTime.Time(FLP.GetLastKnownLocation.Time))
@@ -133,7 +134,8 @@ Public Sub StopFLP
End Sub
Sub flp_LocationChanged (Location1 As Location)
If Not(Starter.Timer1.Enabled) Then Starter.Timer1.Enabled = True : Log("timer enabled")
Starter.FLPStatus = "Location changed" : LogColor("Location changed", Colors.blue)
If Not(Starter.Timer1.Enabled) Then Starter.Timer1.Enabled = True : Log("timer enabled")
If Starter.logger Then LogColor("FLP_LocationChanged", Colors.Red)
' ToastMessageShow("FLP_LocationChanged", False)
Dim coords As String = Location1.Latitude&","&Location1.Longitude&","&Subs.formatoFecha(DateTime.Now)
@@ -147,7 +149,7 @@ Sub flp_LocationChanged (Location1 As Location)
If Location1.Accuracy < minAccuracy Then CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords)
If Location1.Accuracy < minAccuracy Then Starter.UUC = Location1
If Location1.Accuracy < minAccuracy Then Subs.mandaLocAServer(Location1, Starter.devModel)
if starter.logger then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Starter.devModel&"|")
If Starter.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Starter.devModel&"|")
CallSubDelayed(Main, "ponCoords")
End Sub