• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

WIG-Logbuch

docfred

Geocacher
Hallo miteinander,
nachdem ich mich seit drei Wochen mit Urwigo und LUA beschäftige, möchte ich hier mal mein Logbuch vorstellen.
Das Programm schreibt ein Logbuch, welches mehrere Seiten haben kann. Mit einer Funktion "neuer_log("Das Ereignis was ich loggen will") Kann ein Ereignis, welches wichtig ist, z.B. das Erhalten eines Lösungswort o.ä. zusammen mit der aktuellen Zeit eingetragen werden.

Ich habe die Funktionen zum Stellen der Zeit von Bodenseepingu (danke) integriert. Auch hier wird das Vor- und Zurückstellen der Zeit im Logbuch protokolliert. Ein weiteres Item ist beispielhaft dabei um weitere Logeinträge zu generieren.

Mit einer Variablen "logbuch_seitenlaenge" kann die Anzahl der Logs pro Logbuchseite festgelegt werden.

Die Erweiterung des Tables geschieht mit
Code:
table.insert(Logbuch, Wert)

Wo ich mir die Zähne ausgebissen hab ist mit table.concat. Das wäre sehr elegant gewesen und hat im Debugger auch funktioniert. Im Programm aber nicht so richtig. Deshalb wird das Zusammensuchen der Seitenelemente jetzt mit einer Schleife gemacht.

Noch ungelöste Probleme:
- Ich würde gerne den Befehl (den Namen) der aktuellen Seite in von "Seite X" in "Seite X (aktuell)" umbenennen, aber das tut nicht.
- Die Seitentasten sind nicht in der Reihenfolge
- Die Funktion zur Zeitkorrektur ist um Tag, Monat, Jahr erweitert. Hier wird allerdings die mögliche Auswirkung auf das Datum noch nicht korrigiert.

Ich hab das Logbuch bisher nur im Emulator getestet. Über Verbesserungsvorschläge und bemerkte Fehler wäre ich dankbar.

Viele Grüße
docfred
 

Anhänge

  • Logbuch.zip
    3,8 KB · Aufrufe: 16
  • logbuch.jpg
    logbuch.jpg
    59,6 KB · Aufrufe: 360

bodenseepingu

Geomaster
Schöne Arbeit, ich hab ein paar Anmerkungen - wie immer ist das aber Geschmacksache

- warum hast du Logbuch_updaten nicht gleich beim Logeintragen mitgemacht - ist weniger Fehleranfällig - gut das hätte man dann wahrscheinlich auch in LUA schreiben müssen
- die direkten Seitenzahlen und das damit verbundene Handling gefallen mir persönlich nicht - Seite vor/zurück hätte es auch getan - evtl. noch erste/letzte Seite oder alternativ Springe zu Seite und dort eine Auswahl der möglichen Seiten (hab ich in LUA auch schon gemacht, dass man in einer Auswahl-Eingabe nur die tatsächlich möglichen Seiten einträgt vor Aufruf der Eingabe).
- programmiertechnisch hätte ich ein paar Verbesserungsvorschläge - z.b. bei neuer_log schreibst du die globale Variable ergebnis, die du dann aber zurückgibst und in der benutzerdefinierten Anweisung nochmals überschreibst.
- pass ein wenig auf mit Speichern/Restaurieren, so wie du das gemacht hast, wird ein Garmin wahrscheinlich den Logbuchinhalt verlieren - dagegen hilft z.b. in LUA möglichst wenig globale Variablen zu verwenden - und gleichzeitig dafür sorgen, dass der Urwigo die in ZVariables einträgt (weiss nicht ob es nen Post hierzu gibt)
- Kommandos ändern geht einfach nicht (gibts glaub nen post dazu) - aber du könntest den Namen des Logbuchs ändern in Logbuch (Seite 1 von X)
 
OP
docfred

docfred

Geocacher
Danke für die Rückmeldung
und für diese Anmerkungen bin ich auch dankbar. Ich bin mir durchaus bewusst, dass ich ein Greenhorn bin.
Das mit dem Speichern ist auch das bisher ungelöste Problem. Wenn ich dich richtig verstehe kann ich normale Variablen in URWIGO anlegen und dann in LUA gucken,wie die heisst? Oder kann man von vorneherein sagen, wie eine Variable in LUA heisst, wenn ich sie mit 'variablen_name' in URWIGO definiere. Leider habe ich bisher wenig in das erzeugte LUA-File geschaut, deshalb übertrage ich idR. die LUA-raw-Variable erst in einen URWIGO-Variable. Das muss ich noch lernen. (Die Doku ist an dieser Stelle LUAraw <-> URWIGO leider auch spärlich, und nicht alles geht was in LUA geht)
Mein nicht gelöstes Problem ist jetzt in der Tat, dass ich ja ein Table dynamisch generiere, und dieser nicht gespeichert wird. Ich könnte ihn ja einfach mit concat in eine Variable (gesicherte) schreiben, und bei Start dort ggf. wieder restaurieren, aber 850 Zeichen wird nicht reichen.
Vielleicht weisst du da Abhilfe.

docfred
 

bodenseepingu

Geomaster
Das mit den Variablen ist ganz einfach:

  • für Text oder Integer-Variablen - einfach eine LUA-Variable anlegen und in Kennung statt automatisch den gewünschten Namen eingeben unter dem du ihn in LUA ansprechen willst (z.B. Variable ergebnis, text, Kennung: ergebnis)
  • für tables eine Text-Variable angeben, wiederum einen Namen in Kennung statt automatische Kennung eintragen und in einer LUA-Initialisierung mit einer Table überschreiben (z.b. texte = {})

Damit werden Variablen auch bei Garmin gespeichert und wieder geladen.

Wenns nicht klar ist, einfach Bescheid sagen, dann bau ich es exemplarisch mal in deine Cartridge ein.
 
OP
docfred

docfred

Geocacher
Hier hab ich jetzt noch einmal eine korrigierte Version, mit der auch speichern möglich ist. Außerdem ist die Navigation im Logbuch verbessert.
docfred
 

Anhänge

  • Logbuch.zip
    44,3 KB · Aufrufe: 11

casi_82

Geocacher
Sieht schick aus und funktioniert mit WherYouGo.
Allerdings nimmt WherYouGo immer die Systemzeit vom Gerät. Bei Android ist das soviel ich weiß die Greenwich Mean Time. Bei Garmin ist das kein Problem, da nimmt das Gerät immer die lokale GPS-Zeit. Bei Windows sowieso immer das was eingestellt wurde. Wie das beim iOS aussieht weiß ich leider nicht, würde mich aber mal Interessieren.
 
OP
docfred

docfred

Geocacher
docfred schrieb:
Hier hab ich jetzt noch einmal eine korrigierte Version, mit der auch speichern möglich ist. Außerdem ist die Navigation im Logbuch verbessert.
docfred
Hier noch das URWIGO-File
 

Anhänge

  • Logbuch_urwigo.zip
    3,6 KB · Aufrufe: 12
OP
docfred

docfred

Geocacher
casi_82 schrieb:
Sieht schick aus und funktioniert mit WherYouGo.
Allerdings nimmt WherYouGo immer die Systemzeit vom Gerät. Bei Android ist das soviel ich weiß die Greenwich Mean Time. Bei Garmin ist das kein Problem, da nimmt das Gerät immer die lokale GPS-Zeit. Bei Windows sowieso immer das was eingestellt wurde. Wie das beim iOS aussieht weiß ich leider nicht, würde mich aber mal Interessieren.
Hallo Casi_82,
du müsstest aber genau hierfür die Zeit korrigieren können.
docfred
 
Oben