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

WIG auf operationellem Gerät von der Terasse aus debuggen

bodenseepingu

Geomaster
Hallo,

ich hab zum Thema WIG-Debuggen eine Idee gehabt, die ich umgesetzt habe - Vielleicht hilft sie euch...
Umgesetzt habe ich das mit Urwigo und User-Code

Wenn ein WIG fast fertig ist und mit dem Emulator hinreichend getestet ist, geht es ans zeitaufwändige Outdoor-Debuggen mit dem operationellen Gerät am besten auch mit verschiedenen Geräten.

Der Oregon verfügt zwar über einen Simulationsmodus - aber der funktioniert vielleicht nicht unbedingt so, wie man das haben will.

Also habe ich mir überlegt, wie man das Debuggen von der heimischen Terasse aus möglich macht.

Die Antwort ist einfach: Man verlegt die Zonen einfach auf die Terasse - dynamisch - nicht im Code !

Man gibt dem Player einfach einen neuen Gegenstand "Debug_Zones", der ein paar Kommandos hat.
So wird es grob gemacht - bei Bedarf folgt demnächst eine Testcartridge..

- Gegenstand DEBUG_ZONES
mit Kommandos
- Initialisierung
- Zone auswählen
- Zone hierher schieben...ggf noch weitere wie Zone wegschieben, activieren, visible..., Ausdehnung
- Eingabe debug_zone_input
- Multiple-Choice Auswahl der Zonen: alle Zonennamen korrekt eintragen !!!
- Variable debugvar
- enthält nach der Eingabe den Namen der ausgewählten Zone

- User Code
- debug_zones_init() bei Kommando Initialisierung aufrufen
- debug_zone_verschieben(objdebugvar) bei Kommando Zone hierher schieben aufrufen
- Hilfsfunktionen und weitere Funktionen nach Bedarf


Code:
---- debug ----
my_zones = {}
function debug_zones_init()
    my_zones = { objDorf1, objWald1, objWildschweinRevier,objHausvonObelix,  objReichderOpfer, objVermaechtnis, 
                       objMiraculixHuette,  objBaumhausvonTroubadix,  objStart, objPiratenschiff1, objFundort_Amulett,  
                       objLagerBabaorum,  objLagerKleinbonum,  objWildschweinVersteck, objRoemer_Bewegungszone , 
                       objPiratenschiffanLand,}
end

function search_zone(name)
    
    for key,zone in pairs(my_zones) do
        print (zone.Name)
        if zone.Name == name then
                      return zone
        end
    end
    return nil
end

function debug_zone_verschieben(objdebugvar)
      local zone = search_zone(objdebugvar)
      if zone ~= nil then
            objDEBUGZONES.Description = objDEBUGZONES.Description.." Zone "..objdebugvar.." nach "..Player.ObjectLocation.latitude.." "..Player.ObjectLocation.longitude.." verschoben"
            local activation = zone.Active
            zone.Active = false
            zone.OriginalPoint = Player.ObjectLocation
            zone.Points = GetZonePoints(Player.ObjectLocation,5)
            zone.Active = activation
      else 
            objDEBUGZONES.Description = objDEBUGZONES.Description.." Zone "..objdebugvar.." nicht gefunden"
      end 
      
end

function GetZonePoints(refPt, radi)
  local dist = Wherigo.Distance(radi, 'm')
  local pts = {
    Wherigo.TranslatePoint(refPt, dist, 22.5),
    Wherigo.TranslatePoint(refPt, dist, 67.5),
    Wherigo.TranslatePoint(refPt, dist, 112.5),
    Wherigo.TranslatePoint(refPt, dist, 157.5),
    Wherigo.TranslatePoint(refPt, dist, 202.5),
    Wherigo.TranslatePoint(refPt, dist, 247.5),
    Wherigo.TranslatePoint(refPt, dist, 292.5),
    Wherigo.TranslatePoint(refPt, dist, 337.5),
  }
  return pts
end
 

maierkurt

Geowizard
Ok, ich habe da andere Möglichkeiten.
Aber Respekt! Gute Arbeit, das könnte wirklich nützlich sein.

Gruß, maierkurt
 
OP
B

bodenseepingu

Geomaster
Hier die Testcartridge, hab meinen Asterix und Obelix mal abgestrippt...

Passwort für Debugging-Tool: password
 

Anhänge

  • wherigo_debug_zone.zip
    399,4 KB · Aufrufe: 44

kansu_makugen

Geocacher
bodenseepingu schrieb:
Hier die Testcartridge, hab meinen Asterix und Obelix mal abgestrippt...

Passwort für Debugging-Tool: password

Hab deinen Code mal auf mein Projekt umgemodelt. Funktioniert einwandfrei! Tausend Dank! :) Ist wirklich eine wahnsinnige Erleichterung.
 
OP
B

bodenseepingu

Geomaster
Das Debugging-Tool funktioniert auf Garmin und Whereyougo/Android, auf anderen Geräten wurde es noch nicht getestet.

Der Vorteil gegenüber der alten Version:
- dieses Debuggingtool ermittelt automatisch sämtliche verfügbare Objekte der Cartridge - d.h. es ist keine Anpassung des Debuggingtools auf Änderungen der Cartridge notwendig.

Klar muss man wissen, was man tut und wie die Cartridge funktioniert.

Dinge, die fehlen:
* Variablen zu manipulieren funktioniert m.E. nicht generisch (obwohl Variablen in ZVariables eingetragen sind, wenn ich ZVariables manipuliere hat dies keine Auswirkungen auf die Variablen obwohl man dort die Initialisierungswerte sieht)
* Inputs aufzurufen wäre denkbar, ob das aber Sinn macht weiss ich nicht
 

xxmurdockxx

Geomaster
... gerade auf Iphone getestet... funktioniert.

Ich habe zwar nicht alles ausprobiert, aber bei denen die ich versucht habe hat alles geklappt.

Geiles Tool,
aber wenn die Cartridge sehr viele Elemente enthält wirds schnell unübersichtlich, oder?
 
OP
B

bodenseepingu

Geomaster
....ob die Auswahleingaben problematisch sind, weiß ich nicht....

Klar ist, je mehr Objekte vorhanden sind, desto schwieriger wird es, sich zu orientieren.

Eine Sortierung nach Objekt-Typ und danach alphabetisch könnte hier schon helfen - sollte kein Problem sein diese einzubauen.

Ansonsten ist halt auch alles von einer klaren Namensvergabe des Programmierers abhängig - problematisch werden Cartridges wo mehrere Items den identischen Namen bekommen - das würde ich nur in den Griff bekommen, wenn ich den Index in der Objekttabelle noch mit in die Listbox reinschreiben würde und über den gehen würde anstatt über Namensvergleich..
 
Oben