Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e678146
Merge pull request #1185 from AgOpenGPS-Official/master
richardklasens Apr 9, 2026
9b0304a
Fix ISOGuidancePattern ID assignment in ISOXML TaskData export
richardklasens Apr 10, 2026
8cbffa1
Update ISOGuidancePattern ID assignment in ISOXML export
richardklasens Apr 10, 2026
39a233f
Normalize steer angle for inverted WAS in CSmartWAS
richardklasens Apr 10, 2026
b1e931e
Validate point counts and sort ISOXML boundaries by area
richardklasens Apr 10, 2026
0c67f20
Github rate limiting API token not needed (introduces maintenance of …
lansalot Apr 12, 2026
ddc5bf6
Removed the updategithubstatus notifier
lansalot Apr 12, 2026
209d30d
Somehow missed a couple of mentions of authtoken, think I screwed up …
lansalot Apr 15, 2026
122cbfa
Suppress an edge-case error where a process locking the log file will…
lansalot Apr 15, 2026
8b79b97
Merge pull request #1188 from lansalot/fix/githubtoken
richardklasens Apr 15, 2026
5f6c207
Add AgShare Load with UI redesign and translations
richardklasens Apr 15, 2026
824fb26
Add AgShare translations for DE, NL, HU, CS, FR
richardklasens Apr 15, 2026
7f0c353
Move setAS_snapDistance and setAS_snapDistanceRef to ToolSettings
richardklasens Apr 15, 2026
38d58c1
Save current profiles before loading a new vehicle or tool
richardklasens Apr 15, 2026
854b4d4
Fix slow LogViewer load by reading file in one shot
richardklasens Apr 15, 2026
626ffdc
Make LogViewer realtime and scroll to bottom on load
richardklasens Apr 15, 2026
47ddc2d
Limit log file to last 100 lines on startup
richardklasens Apr 15, 2026
4fec4cc
Minor layout tweak in FormAgShareSettings designer
richardklasens Apr 15, 2026
06fe106
Fix FormAgShareSettings button state logic
richardklasens Apr 15, 2026
97b8954
Set test project PlatformTarget to x64 to match main project
richardklasens Apr 15, 2026
7172fc6
Simplify translation assignment formatting in FormAgShareSettings
richardklasens Apr 15, 2026
2b4f3b6
fix formatting
richardklasens Apr 15, 2026
cf6ee82
Merge pull request #1189 from AgOpenGPS-Official/FixAgShare
richardklasens Apr 15, 2026
1ff738d
Github rate limiting API token not needed (introduces maintenance of …
lansalot Apr 12, 2026
8aab9af
Removed the updategithubstatus notifier
lansalot Apr 12, 2026
ac2dbeb
Somehow missed a couple of mentions of authtoken, think I screwed up …
lansalot Apr 15, 2026
b1a2e6c
Suppress an edge-case error where a process locking the log file will…
lansalot Apr 15, 2026
941eeef
Merge remote-tracking branch 'origin/develop' into develop
richardklasens Apr 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions SourceCode/AgIO/Source/Properties/RegistrySettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ public static void Load()
//make sure directories exist and are in right place if not default workingDir
CreateDirectories();

//keep below 500 kb
Log.CheckLogSize(Path.Combine(logsDirectory, "AgIO_Events_Log.txt"), 1000000);
Log.CheckLogSize(Path.Combine(logsDirectory, "AgIO_Events_Log.txt"));

Properties.Settings.Default.Load();
}
Expand Down
62 changes: 21 additions & 41 deletions SourceCode/AgLibrary/Logging/Log.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,57 +38,37 @@ public static void FileSaveSystemEvents()
{
if (logsDirectory != "")
{
using (StreamWriter writer = new StreamWriter(logsDirectory, true))
try
{
using (StreamWriter writer = new StreamWriter(logsDirectory, true))
{
writer.Write(sbEvents);
}
}
catch
{
// suppressing an edge-case error for eg if someone has onedrive client locking the file
}
finally
{
writer.Write(sbEvents);
sbEvents.Clear();
}
}
}

public static void CheckLogSize(string logFile, int sizeLimit)
public static void CheckLogSize(string logFile, int maxLines = 100)
{
logsDirectory = logFile;

//system event log file
FileInfo txtfile = new FileInfo(logFile);
if (txtfile.Exists)
{
if (txtfile.Length > (sizeLimit)) // ## NOTE: 0.5MB max file size
{
StringBuilder sbF = new StringBuilder();
long bytes = txtfile.Length - sizeLimit;
bytes = (sizeLimit * 2) / 10 + bytes;
sbEvents.Append("Log File Reduced by: " + bytes.ToString());

//create some extra space
int bytesSoFar = 0;
if (!File.Exists(logFile)) return;

using (StreamReader reader = new StreamReader(logFile))
{
try
{
//Date time line
while (!reader.EndOfStream)
{
bytesSoFar += reader.ReadLine().Length;
if (bytesSoFar > bytes)
break;
}

while (!reader.EndOfStream)
{
sbF.AppendLine(reader.ReadLine());
}
}
catch { }
}

using (StreamWriter writer = new StreamWriter(logFile))
{
writer.WriteLine(sbF);
}
}
string[] lines = File.ReadAllLines(logFile);
if (lines.Length > maxLines)
{
string[] trimmed = new string[maxLines];
Array.Copy(lines, lines.Length - maxLines, trimmed, 0, maxLines);
File.WriteAllLines(logFile, trimmed);
sbEvents.Append("Log trimmed to last " + maxLines + " lines\r");
}
}
}
Expand Down
94 changes: 93 additions & 1 deletion SourceCode/AgOpenGPS.Core/Translations/gStr.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

73 changes: 73 additions & 0 deletions SourceCode/AgOpenGPS.Core/Translations/gStr.cs.resx
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,79 @@
<data name="gsAdvancedTramLines" xml:space="preserve">
<value>Votvoř pokročilé kolejové řádky</value>
</data>
<data name="gsAgShareDownloader" xml:space="preserve">
<value>Stáhnout pole z AgShare</value>
</data>
<data name="gsAgShareActivate" xml:space="preserve">
<value>Aktivovat</value>
</data>
<data name="gsAgShareActivated" xml:space="preserve">
<value>Aktivováno</value>
</data>
<data name="gsAgShareApiKey" xml:space="preserve">
<value>API klíč</value>
</data>
<data name="gsAgShareAutoLoad" xml:space="preserve">
<value>Načítání z cloudu</value>
</data>
<data name="gsAgShareAutoUpload" xml:space="preserve">
<value>Automatické nahrávání</value>
</data>
<data name="gsAgShareButtonsHint" xml:space="preserve">
<value>Automatické nahrávání: nahrát změny pole při zavření
Načítání z cloudu: vždy stáhnout nejnovější verzi z AgShare při otevření</value>
</data>
<data name="gsAgShareConnecting" xml:space="preserve">
<value>Připojování...</value>
</data>
<data name="gsAgShareConnectionOk" xml:space="preserve">
<value>Připojení úspěšné</value>
</data>
<data name="gsAgShareDeactivated" xml:space="preserve">
<value>Deaktivováno</value>
</data>
<data name="gsAgShareEnterDetails" xml:space="preserve">
<value>Zadejte server a API klíč, poté otestujte připojení</value>
</data>
<data name="gsAgShareInvalidApiKey" xml:space="preserve">
<value>Neplatný API klíč</value>
</data>
<data name="gsAgShareLocalOnly" xml:space="preserve">
<value>Pouze lokální</value>
</data>
<data name="gsAgSharePaste" xml:space="preserve">
<value>Vložit ze schránky</value>
</data>
<data name="gsAgShareRegisterHere" xml:space="preserve">
<value>Zaregistrujte se zde pro použití AgShare</value>
</data>
<data name="gsAgShareSaved" xml:space="preserve">
<value>Nastavení uloženo</value>
</data>
<data name="gsAgShareServer" xml:space="preserve">
<value>Server</value>
</data>
<data name="gsAgShareSettings" xml:space="preserve">
<value>Nastavení AgShare</value>
</data>
<data name="gsAgShareTestConnection" xml:space="preserve">
<value>Otestovat připojení</value>
</data>
<data name="gsAgShareUploadOff" xml:space="preserve">
<value>Nahrávání vypnuto</value>
</data>
<data name="gsAgShareUploadOn" xml:space="preserve">
<value>Nahrávání zapnuto</value>
</data>
<data name="gsAgShareAutoLoadActive" xml:space="preserve">
<value>Pole jsou automaticky načítána z cloudu</value>
</data>
<data name="gsAgShareFieldLoaded" xml:space="preserve">
<value>Pole načteno z AgShare</value>
</data>
<data name="gsAgShareLoadFailed" xml:space="preserve">
<value>Pole nelze načíst z cloudu, používá se lokální verze.</value>
</data>
<data name="gsAgressiveness" xml:space="preserve">
<value>Agresivita</value>
</data>
Expand Down
70 changes: 70 additions & 0 deletions SourceCode/AgOpenGPS.Core/Translations/gStr.de.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1211,6 +1211,76 @@ VERWENDUNG AUF EIGENES RISIKO.</value>
<data name="gsAgShareDownloader" xml:space="preserve">
<value>Felder von AgShare herunterladen</value>
</data>
<data name="gsAgShareActivate" xml:space="preserve">
<value>Aktivieren</value>
</data>
<data name="gsAgShareActivated" xml:space="preserve">
<value>Aktiviert</value>
</data>
<data name="gsAgShareApiKey" xml:space="preserve">
<value>API-Schlüssel</value>
</data>
<data name="gsAgShareAutoLoad" xml:space="preserve">
<value>Cloud-Laden</value>
</data>
<data name="gsAgShareAutoUpload" xml:space="preserve">
<value>Auto-Upload</value>
</data>
<data name="gsAgShareButtonsHint" xml:space="preserve">
<value>Auto-Upload: Feldänderungen beim Schließen hochladen
Cloud-Laden: Immer neueste Version beim Öffnen von AgShare herunterladen</value>
</data>
<data name="gsAgShareConnecting" xml:space="preserve">
<value>Verbinde...</value>
</data>
<data name="gsAgShareConnectionOk" xml:space="preserve">
<value>Verbindung erfolgreich</value>
</data>
<data name="gsAgShareDeactivated" xml:space="preserve">
<value>Deaktiviert</value>
</data>
<data name="gsAgShareEnterDetails" xml:space="preserve">
<value>Server und API-Schlüssel eingeben, dann Verbindung testen</value>
</data>
<data name="gsAgShareInvalidApiKey" xml:space="preserve">
<value>Ungültiger API-Schlüssel</value>
</data>
<data name="gsAgShareLocalOnly" xml:space="preserve">
<value>Nur Lokal</value>
</data>
<data name="gsAgSharePaste" xml:space="preserve">
<value>Aus Zwischenablage einfügen</value>
</data>
<data name="gsAgShareRegisterHere" xml:space="preserve">
<value>Hier registrieren zur Nutzung von AgShare</value>
</data>
<data name="gsAgShareSaved" xml:space="preserve">
<value>Einstellungen gespeichert</value>
</data>
<data name="gsAgShareServer" xml:space="preserve">
<value>Server</value>
</data>
<data name="gsAgShareSettings" xml:space="preserve">
<value>AgShare-Einstellungen</value>
</data>
<data name="gsAgShareTestConnection" xml:space="preserve">
<value>Verbindung testen</value>
</data>
<data name="gsAgShareUploadOff" xml:space="preserve">
<value>Upload Aus</value>
</data>
<data name="gsAgShareUploadOn" xml:space="preserve">
<value>Upload Ein</value>
</data>
<data name="gsAgShareAutoLoadActive" xml:space="preserve">
<value>Felder werden automatisch aus der Cloud geladen</value>
</data>
<data name="gsAgShareFieldLoaded" xml:space="preserve">
<value>Feld von AgShare geladen</value>
</data>
<data name="gsAgShareLoadFailed" xml:space="preserve">
<value>Feld konnte nicht aus der Cloud geladen werden, lokale Version wird verwendet.</value>
</data>
<data name="gsDownloadAll" xml:space="preserve">
<value>Alle herunterladen</value>
</data>
Expand Down
Loading
Loading