From 52709443e3d563ec5ff3cd36a8f55fac03719103 Mon Sep 17 00:00:00 2001 From: Jack Wilson Date: Mon, 27 Jul 2020 06:43:04 +0000 Subject: [PATCH 1/4] Initial commit --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f54682 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# RockloggerRepository + +contains all rocklogger files \ No newline at end of file From dac922b48f4029d3b138b85394bb18c3ef393865 Mon Sep 17 00:00:00 2001 From: Jack Wilson Date: Mon, 27 Jul 2020 07:01:29 +0000 Subject: [PATCH 2/4] Upload files to '' --- Rocklogger.b4a | 447 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 447 insertions(+) create mode 100644 Rocklogger.b4a diff --git a/Rocklogger.b4a b/Rocklogger.b4a new file mode 100644 index 0000000..4bac2b7 --- /dev/null +++ b/Rocklogger.b4a @@ -0,0 +1,447 @@ +Build1=Default,b4a.rocklogster +File1=mapfrag.bal +File2=marker1.png +File3=marker2.png +File4=overlay (1).png +File5=overlay.png +File6=overlaywhite.png +File7=Rockloggervisual.bal +FileGroup1=Default Group +FileGroup2=Default Group +FileGroup3=Default Group +FileGroup4=Default Group +FileGroup5=Default Group +FileGroup6=Default Group +FileGroup7=Default Group +Group=Default Group +Library1=core +Library2=gps +Library3=runtimepermissions +Library4=randomaccessfile +Library5=googlemaps +Library6=googlemapsextras +ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.DarkTheme)~\n~~\n~AddApplicationText(~\n~~\n~)~\n~~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~~\n~~\n~'End of default text.~\n~'broken icon manifest~\n~SetApplicationAttribute(android:icon, "@mipmap/ic_launcher")~\n~CreateResource(mipmap-anydpi-v26, ic_launcher.xml,~\n~~\n~ ~\n~ ~\n~~\n~)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~~\n~ +Module1=Mapmod +Module2=Starter +NumberOfFiles=7 +NumberOfLibraries=6 +NumberOfModules=2 +Version=9.9 +@EndOfDesignText@ +#Region Module Attributes + #FullScreen: False + #IncludeTitle: True + #ApplicationLabel: RockLogster + #VersionCode: 1 + #VersionName: + #SupportedOrientations: unspecified +#End Region +#BridgeLogger: true +Sub Process_Globals + Public updateclick As Boolean + Public RockList As List + Public WeedList As List + Public PointList As List + Dim headerlist As List + Public locationstringlist As List + Public headerposition As Map + +End Sub + +'Correct the log syntax +'add menu item to clear log +'add comment to last log +'highlight last log +'more buttons + +Sub Globals + + + Dim locationstrings() As String + Dim headerstringget As Matcher + + Type LoggedEntry (Date As String, Lat As Double, Lot As Double, obstacle As String, comment As String) + Private lblLon As LoggedEntry + Public lblpnlrock As Label + Dim lblSpeed As Label + Dim lblSatellites As Label + Private btnRock As Button + Private btnWeed As Button + Private editxt As EditText + Private lblSatIndicator As Label + Private STime As Double + Private SLong As String + Private SLat As String + Private BtnDownTime As Double + Private BtnUpTime As Double + Public FLong As String + Public FLat As String + Public FTime As Double + + Public FileStringBuilder As StringBuilder + Public EstimatorStringBuilder As StringBuilder + Public FileString As String + Private FileList As List + Public DelayedSat As Boolean + Public lbl2secwarn As Label + Public EstimatorString As String + Private pnlrock As Panel + Private lblpnlpoint As Label + Private lblpnlweed As Label + Private rp As RuntimePermissions + Dim cust2 As LoggedEntry + Dim raf2 As B4XSerializator + Dim cust2list As List + Private printbut As Button + Private savebut As Button + + Private ButDownTime As Long + Private ButUpTime As Long + Private LocDown As Location + Private LocUp As Location + Public ELong As Double + Public ELat As Double + + + + Public paneldowncomplete As Boolean + + Private butviewmap As Button + Private lblpnlcust As Label +End Sub + +Sub Activity_Create(FirstTime As Boolean) + Activity.LoadLayout("Rockloggervisual") + Activity.AddMenuItem("Clear Log", "Clearlog") + FileStringBuilder.Initialize + EstimatorStringBuilder.Initialize + FileList.Initialize + RockList.Initialize + WeedList.Initialize + PointList.Initialize + + 'cust2.Initialize + 'cust2list.Initialize + rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) + rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE) + If File.Exists(rp.GetSafeDirdefaultExternal(""), "Editxt.txt") Then + editxt.text = File.Readstring(rp.GetSafeDirDefaultExternal(""), "editxt.txt") +' End If +' If File.Exists(rp.GetSafeDirdefaultExternal(""), "Weedlist.txt") Then +' WeedList = File.ReadList(rp.GetSafeDirDefaultExternal(""), "Weedlist.txt") +' End If +' If File.Exists(rp.GetSafeDirdefaultExternal(""), "Pointlist.txt") Then +' PointList = File.ReadList(rp.GetSafeDirDefaultExternal(""), "Pointlist.txt") + End If + convert_texttolists +End Sub + +Sub Print_rocks + + Private sb As StringBuilder + sb.Initialize + sb.append(DateTime.Date(DateTime.Now))'.Append(CRLF) + + If headerlist.Size >0 Then +' If updateclick = False Then + For i = 0 To headerlist.Size - 1 + sb.Append(CRLF).Append(headerlist.get(i))'.Append(CRLF) + sb.Append(CRLF).Append(locationstringlist.get(i+1))'.Append(CRLF) + 'Log(sb.ToString) + Next +' Else +' For i = 0 To headerlist.Size - 1 +' sb.Append(headerlist.get(i)) +' sb.Append(locationstringlist.get(i+1))'.Append(CRLF) +' 'Log(sb.ToString) +' Log("trueb") +' Next +' End If + End If + updateclick = False 'flag + editxt.Text = (sb.ToString) +End Sub + +Sub convert_texttolists + + headerposition.Initialize + headerlist.Initialize + headerstringget = Regex.matcher2("^\D+$",Regex.MULTILINE, editxt.text)'use this to break loaded textedit file into strings or when textedit text is changed + Do While headerstringget.Find = True + headerlist.Add(headerstringget.Match) + headerposition.Put(headerstringget.Match,headerlist.Size) + + Log($"headerstringsize${headerlist.size}"$) + Loop + For i = 0 To headerlist.Size-1 + Log(headerlist.Get(i)) + Next + locationstringlist.Initialize + + locationstrings = Regex.Split2("\n^\D+$\n",Regex.MULTILINE, editxt.text)'/n to split around the newline, and not include it in the string + For i=0 To locationstrings.Length - 1 + locationstringlist.Add(locationstrings(i)) + Next + + Log($"Splitted Size: ${locationstrings.Length} "$) +' For i= 0 To teststring.Length-1 +' Log($"Val #${i}=${teststring(i)}"$) +' Next + +' For Each k As String In headerposition.Keys +' Log($"k${k}"$) +' Log($"Positionk${headerposition.Get(k)}"$) +' Next + +' Private sb As StringBuilder +' sb.Initialize +' sb.append(DateTime.Date(DateTime.Now)).Append(CRLF) +' For i = 0 To headerlist.Size - 1 +' sb.Append(headerlist.get(i)).Append(CRLF) +' sb.Append(locationstrings(i+1)).Append(CRLF) +' Next +'Log(sb.ToString) + Print_rocks + +End Sub + +Sub Clearlog_Click + 'cust2list.Clear + locationstringlist.Clear + headerlist.Clear + headerposition.clear + + FileList.Clear + FileString = "" + editxt.Text = "" + EstimatorString = "" + FileStringBuilder.Initialize + RockList.Clear + WeedList.Clear + PointList.Clear + Log ("Clear") +convert_texttolists +End Sub + +Sub Activity_Resume + If Starter.GPS1.GPSEnabled = False Then + ToastMessageShow("Please enable the GPS device.", True) + StartActivity(Starter.GPS1.LocationSettingsIntent) 'Will open the relevant settings screen. + Else + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) + Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + If Result Then CallSubDelayed(Starter, "StartGPS") + End If +End Sub + + +Sub Activity_Pause (UserClosed As Boolean) + File.WriteList(rp.GetSafeDirDefaultExternal(""), "Rocklist.txt", RockList) + File.WriteList(rp.GetSafeDirDefaultExternal(""), "Weedlist.txt", WeedList) + File.WriteList(rp.GetSafeDirDefaultExternal(""), "Pointlist.txt", PointList) + File.WriteString(rp.GetSafeDirDefaultExternal(""), "editext.txt", editxt.text) + Log("writelists") + CallSubDelayed(Starter, "StopGPS") + 'File.WriteList(File.DirRootExternal, "LogRocks.txt", FileList) + 'File.WriteBytes(File.DirInternal, "List", raf2.ConvertObjectToBytes(cust2list)) + 'Log("listsave") +End Sub + +Public Sub GpsStatus (Satellites As List) + 'Dim sb As StringBuilder + 'sb.Initialize + 'sb.Append("Satellites:").Append(CRLF) + 'For i = 0 To Satellites.Size - 1 + ' Dim Satellite As GPSSatellite = Satellites.Get(i) + ' sb.Append(CRLF).Append(Satellite.Prn).Append($" $1.2{Satellite.Snr}"$).Append(" ").Append(Satellite.UsedInFix) + ' sb.Append(" ").Append($" $1.2{Satellite.Azimuth}"$).Append($" $1.2{Satellite.Elevation}"$) + 'Next + 'lblSatellites.Text = sb.ToString + 'lblSatIndicator.Color = 0xff7fff00 +End Sub +Public Sub LocationChanged(Location1 As Location) + 'lblLat.Text = "Lat = " & Location1.ConvertToMinutes(Location1.Latitude) + 'lblLon.Text = "Lon = " & Location1.ConvertToMinutes(Location1.Longitude) + 'lblSpeed.Text = $"Speed = $1.2{Location1.Speed} m/s "$ + lblSatIndicator.Color = 0xff7fff00 +End Sub +Sub pnlrock_touch(ACTION As Int,X As Float,Y As Float) + Select ACTION + Case Activity.ACTION_DOWN + lblpnlrock.Color = 0xFFDEB887 + Panel_down + + + Case Activity.ACTION_UP + lblpnlrock.Color = 0xFFFFEBCD + Panel_up("Rocks") + + Case Activity.ACTION_MOVE + + End Select +End Sub +Sub Panel_down + ButDownTime = DateTime.Now + paneldowncomplete = False + Do While Starter.ValidGPS = False + Sleep (100) + Loop + 'STime = DateTime.Now + LocDown = Starter.Location2 + paneldowncomplete = True + 'SLong = Starter.Location2.Longitude + 'checks for valid gps + 'logs lat and long and time +End Sub +Sub Panel_up(obstacle As String) + ButUpTime = DateTime.Now + Log("panelup") + Do While Starter.ValidGPS = False Or paneldowncomplete = False + Sleep (200) + Loop + If (ButUpTime - LocDown.Time < 2000) And (ButUpTime - ButDownTime >500) Then + lbl2secwarn.Visible = True + Sleep (2000) + lbl2secwarn.Visible = False + + End If + LocUp = Starter.Location2 + Estimator(obstacle) +End Sub + +Sub Estimator(obstacle As String) + DateTime.DateFormat = ("dd/MM/yyyy") +If (LocDown.Time = LocUp.Time) Then + ELat = LocUp.Latitude + ELong = LocUp.Longitude +Else + ELat =LocDown.Latitude - (LocDown.Latitude - LocUp.Latitude)*(LocDown.Time - 2*ButDownTime + ButUpTime)/(LocDown.Time - LocUp.Time) + ELong = (LocDown.Longitude - LocUp.Longitude)*(2*ButDownTime-LocUp.Time-ButUpTime)/(LocDown.Time - LocUp.Time)+LocUp.longitude +End If +Log(ELong) +Log(obstacle) + Log(headerposition.Get(obstacle)) + Log(headerposition.ContainsKey(obstacle)) + 'origional calculationELat = FLat + (BtnDownTime-FTime)*(SLat - FLat)/(STime - FTime) + 'ELong = FLong + (BtnDownTime-FTime)*(SLong - FLong)/(STime - FTime) +Dim sb2 As StringBuilder + sb2.Initialize +If headerposition.ContainsKey(obstacle) = False Then + Log("false") + headerlist.Add(obstacle) + headerposition.Put(obstacle,headerlist.Size) + sb2.Append($",$2.6{ELat} $2.6{ELong},"$) + locationstringlist.Add(sb2.tostring) + 'locationstringlist.get(1)="e" +Else + Log("true") + sb2.Append(locationstringlist.get(headerposition.Get(obstacle))).Append($",$2.6{ELat} $2.6{ELong},"$) + locationstringlist.InsertAt(headerposition.Get(obstacle),sb2.tostring) + locationstringlist.RemoveAt(headerposition.Get(obstacle)+1) +End If + +'If obstacle = "Rock" Then +' If RockList.Size = 0 Then +' RockList.Add("Rocks") +' End If +' RockList.Add($",$2.6{ELat} $2.6{ELong},"$) +'Else If obstacle = "Weed" Then +' If WeedList.Size = 0 Then +' WeedList.Add("Weeds") +' End If +' WeedList.Add($",$2.6{ELat} $2.6{ELong},"$) +'Else If obstacle = "Point" Then +' If PointList.Size = 0 Then +' PointList.Add("Points") +' End If +' PointList.Add($",$2.6{ELat} $2.6{ELong},"$) +'End If +Print_rocks +End Sub + + +Sub pnlweed_Touch (Action As Int, X As Float, Y As Float) + Select Action + Case Activity.ACTION_DOWN + lblpnlweed.Color = 0xFF61c800 + Panel_down + + Case Activity.ACTION_UP + lblpnlweed.Color = 0xFF7cfc00 + '_up + Panel_up("Weed") + + Case Activity.ACTION_MOVE + + End Select +End Sub + +Sub pnlpoint_Touch (Action As Int, X As Float, Y As Float) + Select Action + Case Activity.ACTION_DOWN + lblpnlpoint.Color = 0xFF68320d + Panel_down + + Case Activity.ACTION_UP + lblpnlpoint.Color = 0xff8b4513 + '_up + Panel_up("Point") + + Case Activity.ACTION_MOVE + + End Select +End Sub + +Sub savebut_Click + If File.Exists(rp.GetSafeDirdefaultExternal(""), "Editxt.txt") Then + editxt.text = File.Readstring(rp.GetSafeDirDefaultExternal(""), "editxt.txt") + End If + convert_texttolists +End Sub + +Sub printbut_Click +editxt.RequestFocus +editxt.SelectAll + +End Sub + +Sub butviewmap_click + StartActivity(Mapmod) +End Sub + +'Sub Editxt_TextChanged(Old As String,New As String) + +'End Sub + +Sub Updatebtn_Click + 'updateclick=True 'used to prevent double new lines in string + convert_texttolists + + 'Log(headerlist.Size) + 'Log(locationstringlist) +End Sub + +Sub pnlcust_Touch (Action As Int, X As Float, Y As Float) + Select Action + Case Activity.ACTION_DOWN + 'lblpnlpoint.Color = 0xFF68320d + Panel_down + For i = 0 To headerlist.Size - 1 + If headerlist.Get(i) <> "Rocks" Then + If headerlist.Get(i) <> "Weed" Then + If headerlist.Get(i) <> "Point" Then + lblpnlcust.Text = headerlist.Get(i) + Exit + End If + End If + End If + Next + Case Activity.ACTION_UP + 'lblpnlpoint.Color = 0xff8b4513 + '_up + Panel_up(lblpnlcust.text) + + Case Activity.ACTION_MOVE + + End Select +End Sub \ No newline at end of file From 6917ff1071cacba1157cf3bf4bb0df9cd84b5b14 Mon Sep 17 00:00:00 2001 From: Jack Wilson Date: Mon, 27 Jul 2020 13:52:36 +0000 Subject: [PATCH 3/4] Delete 'README.md' --- README.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 6f54682..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# RockloggerRepository - -contains all rocklogger files \ No newline at end of file From 62446a0eeeadb15a2cc4f116db82e7032276d8ba Mon Sep 17 00:00:00 2001 From: Jack Wilson Date: Mon, 27 Jul 2020 13:54:01 +0000 Subject: [PATCH 4/4] Delete 'Rocklogger.b4a' --- Rocklogger.b4a | 447 ------------------------------------------------- 1 file changed, 447 deletions(-) delete mode 100644 Rocklogger.b4a diff --git a/Rocklogger.b4a b/Rocklogger.b4a deleted file mode 100644 index 4bac2b7..0000000 --- a/Rocklogger.b4a +++ /dev/null @@ -1,447 +0,0 @@ -Build1=Default,b4a.rocklogster -File1=mapfrag.bal -File2=marker1.png -File3=marker2.png -File4=overlay (1).png -File5=overlay.png -File6=overlaywhite.png -File7=Rockloggervisual.bal -FileGroup1=Default Group -FileGroup2=Default Group -FileGroup3=Default Group -FileGroup4=Default Group -FileGroup5=Default Group -FileGroup6=Default Group -FileGroup7=Default Group -Group=Default Group -Library1=core -Library2=gps -Library3=runtimepermissions -Library4=randomaccessfile -Library5=googlemaps -Library6=googlemapsextras -ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.DarkTheme)~\n~~\n~AddApplicationText(~\n~~\n~)~\n~~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~~\n~~\n~'End of default text.~\n~'broken icon manifest~\n~SetApplicationAttribute(android:icon, "@mipmap/ic_launcher")~\n~CreateResource(mipmap-anydpi-v26, ic_launcher.xml,~\n~~\n~ ~\n~ ~\n~~\n~)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~~\n~ -Module1=Mapmod -Module2=Starter -NumberOfFiles=7 -NumberOfLibraries=6 -NumberOfModules=2 -Version=9.9 -@EndOfDesignText@ -#Region Module Attributes - #FullScreen: False - #IncludeTitle: True - #ApplicationLabel: RockLogster - #VersionCode: 1 - #VersionName: - #SupportedOrientations: unspecified -#End Region -#BridgeLogger: true -Sub Process_Globals - Public updateclick As Boolean - Public RockList As List - Public WeedList As List - Public PointList As List - Dim headerlist As List - Public locationstringlist As List - Public headerposition As Map - -End Sub - -'Correct the log syntax -'add menu item to clear log -'add comment to last log -'highlight last log -'more buttons - -Sub Globals - - - Dim locationstrings() As String - Dim headerstringget As Matcher - - Type LoggedEntry (Date As String, Lat As Double, Lot As Double, obstacle As String, comment As String) - Private lblLon As LoggedEntry - Public lblpnlrock As Label - Dim lblSpeed As Label - Dim lblSatellites As Label - Private btnRock As Button - Private btnWeed As Button - Private editxt As EditText - Private lblSatIndicator As Label - Private STime As Double - Private SLong As String - Private SLat As String - Private BtnDownTime As Double - Private BtnUpTime As Double - Public FLong As String - Public FLat As String - Public FTime As Double - - Public FileStringBuilder As StringBuilder - Public EstimatorStringBuilder As StringBuilder - Public FileString As String - Private FileList As List - Public DelayedSat As Boolean - Public lbl2secwarn As Label - Public EstimatorString As String - Private pnlrock As Panel - Private lblpnlpoint As Label - Private lblpnlweed As Label - Private rp As RuntimePermissions - Dim cust2 As LoggedEntry - Dim raf2 As B4XSerializator - Dim cust2list As List - Private printbut As Button - Private savebut As Button - - Private ButDownTime As Long - Private ButUpTime As Long - Private LocDown As Location - Private LocUp As Location - Public ELong As Double - Public ELat As Double - - - - Public paneldowncomplete As Boolean - - Private butviewmap As Button - Private lblpnlcust As Label -End Sub - -Sub Activity_Create(FirstTime As Boolean) - Activity.LoadLayout("Rockloggervisual") - Activity.AddMenuItem("Clear Log", "Clearlog") - FileStringBuilder.Initialize - EstimatorStringBuilder.Initialize - FileList.Initialize - RockList.Initialize - WeedList.Initialize - PointList.Initialize - - 'cust2.Initialize - 'cust2list.Initialize - rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) - rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE) - If File.Exists(rp.GetSafeDirdefaultExternal(""), "Editxt.txt") Then - editxt.text = File.Readstring(rp.GetSafeDirDefaultExternal(""), "editxt.txt") -' End If -' If File.Exists(rp.GetSafeDirdefaultExternal(""), "Weedlist.txt") Then -' WeedList = File.ReadList(rp.GetSafeDirDefaultExternal(""), "Weedlist.txt") -' End If -' If File.Exists(rp.GetSafeDirdefaultExternal(""), "Pointlist.txt") Then -' PointList = File.ReadList(rp.GetSafeDirDefaultExternal(""), "Pointlist.txt") - End If - convert_texttolists -End Sub - -Sub Print_rocks - - Private sb As StringBuilder - sb.Initialize - sb.append(DateTime.Date(DateTime.Now))'.Append(CRLF) - - If headerlist.Size >0 Then -' If updateclick = False Then - For i = 0 To headerlist.Size - 1 - sb.Append(CRLF).Append(headerlist.get(i))'.Append(CRLF) - sb.Append(CRLF).Append(locationstringlist.get(i+1))'.Append(CRLF) - 'Log(sb.ToString) - Next -' Else -' For i = 0 To headerlist.Size - 1 -' sb.Append(headerlist.get(i)) -' sb.Append(locationstringlist.get(i+1))'.Append(CRLF) -' 'Log(sb.ToString) -' Log("trueb") -' Next -' End If - End If - updateclick = False 'flag - editxt.Text = (sb.ToString) -End Sub - -Sub convert_texttolists - - headerposition.Initialize - headerlist.Initialize - headerstringget = Regex.matcher2("^\D+$",Regex.MULTILINE, editxt.text)'use this to break loaded textedit file into strings or when textedit text is changed - Do While headerstringget.Find = True - headerlist.Add(headerstringget.Match) - headerposition.Put(headerstringget.Match,headerlist.Size) - - Log($"headerstringsize${headerlist.size}"$) - Loop - For i = 0 To headerlist.Size-1 - Log(headerlist.Get(i)) - Next - locationstringlist.Initialize - - locationstrings = Regex.Split2("\n^\D+$\n",Regex.MULTILINE, editxt.text)'/n to split around the newline, and not include it in the string - For i=0 To locationstrings.Length - 1 - locationstringlist.Add(locationstrings(i)) - Next - - Log($"Splitted Size: ${locationstrings.Length} "$) -' For i= 0 To teststring.Length-1 -' Log($"Val #${i}=${teststring(i)}"$) -' Next - -' For Each k As String In headerposition.Keys -' Log($"k${k}"$) -' Log($"Positionk${headerposition.Get(k)}"$) -' Next - -' Private sb As StringBuilder -' sb.Initialize -' sb.append(DateTime.Date(DateTime.Now)).Append(CRLF) -' For i = 0 To headerlist.Size - 1 -' sb.Append(headerlist.get(i)).Append(CRLF) -' sb.Append(locationstrings(i+1)).Append(CRLF) -' Next -'Log(sb.ToString) - Print_rocks - -End Sub - -Sub Clearlog_Click - 'cust2list.Clear - locationstringlist.Clear - headerlist.Clear - headerposition.clear - - FileList.Clear - FileString = "" - editxt.Text = "" - EstimatorString = "" - FileStringBuilder.Initialize - RockList.Clear - WeedList.Clear - PointList.Clear - Log ("Clear") -convert_texttolists -End Sub - -Sub Activity_Resume - If Starter.GPS1.GPSEnabled = False Then - ToastMessageShow("Please enable the GPS device.", True) - StartActivity(Starter.GPS1.LocationSettingsIntent) 'Will open the relevant settings screen. - Else - Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) - Wait For Activity_PermissionResult (Permission As String, Result As Boolean) - If Result Then CallSubDelayed(Starter, "StartGPS") - End If -End Sub - - -Sub Activity_Pause (UserClosed As Boolean) - File.WriteList(rp.GetSafeDirDefaultExternal(""), "Rocklist.txt", RockList) - File.WriteList(rp.GetSafeDirDefaultExternal(""), "Weedlist.txt", WeedList) - File.WriteList(rp.GetSafeDirDefaultExternal(""), "Pointlist.txt", PointList) - File.WriteString(rp.GetSafeDirDefaultExternal(""), "editext.txt", editxt.text) - Log("writelists") - CallSubDelayed(Starter, "StopGPS") - 'File.WriteList(File.DirRootExternal, "LogRocks.txt", FileList) - 'File.WriteBytes(File.DirInternal, "List", raf2.ConvertObjectToBytes(cust2list)) - 'Log("listsave") -End Sub - -Public Sub GpsStatus (Satellites As List) - 'Dim sb As StringBuilder - 'sb.Initialize - 'sb.Append("Satellites:").Append(CRLF) - 'For i = 0 To Satellites.Size - 1 - ' Dim Satellite As GPSSatellite = Satellites.Get(i) - ' sb.Append(CRLF).Append(Satellite.Prn).Append($" $1.2{Satellite.Snr}"$).Append(" ").Append(Satellite.UsedInFix) - ' sb.Append(" ").Append($" $1.2{Satellite.Azimuth}"$).Append($" $1.2{Satellite.Elevation}"$) - 'Next - 'lblSatellites.Text = sb.ToString - 'lblSatIndicator.Color = 0xff7fff00 -End Sub -Public Sub LocationChanged(Location1 As Location) - 'lblLat.Text = "Lat = " & Location1.ConvertToMinutes(Location1.Latitude) - 'lblLon.Text = "Lon = " & Location1.ConvertToMinutes(Location1.Longitude) - 'lblSpeed.Text = $"Speed = $1.2{Location1.Speed} m/s "$ - lblSatIndicator.Color = 0xff7fff00 -End Sub -Sub pnlrock_touch(ACTION As Int,X As Float,Y As Float) - Select ACTION - Case Activity.ACTION_DOWN - lblpnlrock.Color = 0xFFDEB887 - Panel_down - - - Case Activity.ACTION_UP - lblpnlrock.Color = 0xFFFFEBCD - Panel_up("Rocks") - - Case Activity.ACTION_MOVE - - End Select -End Sub -Sub Panel_down - ButDownTime = DateTime.Now - paneldowncomplete = False - Do While Starter.ValidGPS = False - Sleep (100) - Loop - 'STime = DateTime.Now - LocDown = Starter.Location2 - paneldowncomplete = True - 'SLong = Starter.Location2.Longitude - 'checks for valid gps - 'logs lat and long and time -End Sub -Sub Panel_up(obstacle As String) - ButUpTime = DateTime.Now - Log("panelup") - Do While Starter.ValidGPS = False Or paneldowncomplete = False - Sleep (200) - Loop - If (ButUpTime - LocDown.Time < 2000) And (ButUpTime - ButDownTime >500) Then - lbl2secwarn.Visible = True - Sleep (2000) - lbl2secwarn.Visible = False - - End If - LocUp = Starter.Location2 - Estimator(obstacle) -End Sub - -Sub Estimator(obstacle As String) - DateTime.DateFormat = ("dd/MM/yyyy") -If (LocDown.Time = LocUp.Time) Then - ELat = LocUp.Latitude - ELong = LocUp.Longitude -Else - ELat =LocDown.Latitude - (LocDown.Latitude - LocUp.Latitude)*(LocDown.Time - 2*ButDownTime + ButUpTime)/(LocDown.Time - LocUp.Time) - ELong = (LocDown.Longitude - LocUp.Longitude)*(2*ButDownTime-LocUp.Time-ButUpTime)/(LocDown.Time - LocUp.Time)+LocUp.longitude -End If -Log(ELong) -Log(obstacle) - Log(headerposition.Get(obstacle)) - Log(headerposition.ContainsKey(obstacle)) - 'origional calculationELat = FLat + (BtnDownTime-FTime)*(SLat - FLat)/(STime - FTime) - 'ELong = FLong + (BtnDownTime-FTime)*(SLong - FLong)/(STime - FTime) -Dim sb2 As StringBuilder - sb2.Initialize -If headerposition.ContainsKey(obstacle) = False Then - Log("false") - headerlist.Add(obstacle) - headerposition.Put(obstacle,headerlist.Size) - sb2.Append($",$2.6{ELat} $2.6{ELong},"$) - locationstringlist.Add(sb2.tostring) - 'locationstringlist.get(1)="e" -Else - Log("true") - sb2.Append(locationstringlist.get(headerposition.Get(obstacle))).Append($",$2.6{ELat} $2.6{ELong},"$) - locationstringlist.InsertAt(headerposition.Get(obstacle),sb2.tostring) - locationstringlist.RemoveAt(headerposition.Get(obstacle)+1) -End If - -'If obstacle = "Rock" Then -' If RockList.Size = 0 Then -' RockList.Add("Rocks") -' End If -' RockList.Add($",$2.6{ELat} $2.6{ELong},"$) -'Else If obstacle = "Weed" Then -' If WeedList.Size = 0 Then -' WeedList.Add("Weeds") -' End If -' WeedList.Add($",$2.6{ELat} $2.6{ELong},"$) -'Else If obstacle = "Point" Then -' If PointList.Size = 0 Then -' PointList.Add("Points") -' End If -' PointList.Add($",$2.6{ELat} $2.6{ELong},"$) -'End If -Print_rocks -End Sub - - -Sub pnlweed_Touch (Action As Int, X As Float, Y As Float) - Select Action - Case Activity.ACTION_DOWN - lblpnlweed.Color = 0xFF61c800 - Panel_down - - Case Activity.ACTION_UP - lblpnlweed.Color = 0xFF7cfc00 - '_up - Panel_up("Weed") - - Case Activity.ACTION_MOVE - - End Select -End Sub - -Sub pnlpoint_Touch (Action As Int, X As Float, Y As Float) - Select Action - Case Activity.ACTION_DOWN - lblpnlpoint.Color = 0xFF68320d - Panel_down - - Case Activity.ACTION_UP - lblpnlpoint.Color = 0xff8b4513 - '_up - Panel_up("Point") - - Case Activity.ACTION_MOVE - - End Select -End Sub - -Sub savebut_Click - If File.Exists(rp.GetSafeDirdefaultExternal(""), "Editxt.txt") Then - editxt.text = File.Readstring(rp.GetSafeDirDefaultExternal(""), "editxt.txt") - End If - convert_texttolists -End Sub - -Sub printbut_Click -editxt.RequestFocus -editxt.SelectAll - -End Sub - -Sub butviewmap_click - StartActivity(Mapmod) -End Sub - -'Sub Editxt_TextChanged(Old As String,New As String) - -'End Sub - -Sub Updatebtn_Click - 'updateclick=True 'used to prevent double new lines in string - convert_texttolists - - 'Log(headerlist.Size) - 'Log(locationstringlist) -End Sub - -Sub pnlcust_Touch (Action As Int, X As Float, Y As Float) - Select Action - Case Activity.ACTION_DOWN - 'lblpnlpoint.Color = 0xFF68320d - Panel_down - For i = 0 To headerlist.Size - 1 - If headerlist.Get(i) <> "Rocks" Then - If headerlist.Get(i) <> "Weed" Then - If headerlist.Get(i) <> "Point" Then - lblpnlcust.Text = headerlist.Get(i) - Exit - End If - End If - End If - Next - Case Activity.ACTION_UP - 'lblpnlpoint.Color = 0xff8b4513 - '_up - Panel_up(lblpnlcust.text) - - Case Activity.ACTION_MOVE - - End Select -End Sub \ No newline at end of file