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

"Resize Zone" mit iPhone 4s iOS6 stürzt ab

Atokad

Geocacher
Hi,
ich hab im LUA-Wiki die Vergrößerung der Zonen beim Betreten gefunden.
Die find ich richtig klasse und das wäre genau das was ich brauche. Nur leider stürtzt die Wherigo App auf dem iPhone 4s iOS6 ohne Meldung ab. Einfach aus und weg.
Hängt das am LUA oder an der App? Im URWIGO Simulator läuft es - aber da ist eh kein
1:1-Vergleich möglich.
Läuft die Resize_Zone Cartridge bei jemand anderem auf dem Apfelteilchen ohne Probleme?
Gruß,
Atokad
 

AoiSora

Geocacher
Hab kein Apfel zum testen, jedoch kann ich dir sagen, dass es am Lua nicht liegt, sondern wenn, dann nur an dem schlechtesten Player den es gibt (der Apfelplayer).
 

bodenseepingu

Geomaster
Eigentlich sollte dort kein Code drin sein, der dem Apfel Probleme bereitet.

Hast Du irgendwelche Hinweise, Fehlermeldungen, Logs von dem Absturz?
Stürzt das I-Phone reproduzierbar ab?
 
OP
A

Atokad

Geocacher
Hi bodenseepingu,
es gibt keinerlei Fehlermeldung. Die WIG-App steigt komplett aus.
Das passiert ausnahmslos immer nachdem ich die Meldung bestätigt habe, dass die Zone nun vergrößert wird. Klick und weg.
 
OP
A

Atokad

Geocacher
Ein Logfile wird nicht geschrieben!
Ich hab mal etwas experimentiert.

1. Abschalten von zone.Active --> Absturz
2. Abschalten der Funktion Calc_New_Points --> Kein Absturz
Es liegt somit an der Funktion Calc_New_Points womit die App nicht
klar kommt.
3. Abschalten von table.insert --> kein Absturz
Der Insert ist wohl etwas zu komplex für die App...
 

bodenseepingu

Geomaster
Das kann ich mir absolut nicht vorstellen, table.insert ist ein absolut normaler
LUA-Befehl, das glaube ich jetzt so nicht, dass das I-Phone das nicht kann.

Zuerst mal müsste man den table.insert-Befehl in separate Zeilen schreiben.

So ungefähr:

local new_point = Wherigo.TranslatePoint(ref_point, new_dist, b)
table.insert(points, new_point)


Dann könnte man prüfen ob es der Wherigo.TranslatePoint ist - wie gesagt, kann
ich mir das bei table.insert nicht vorstellen.

Der verwendete Code ist so oder so nicht ganz I-Phone kompatibel, da das I-Phone
bereits bei Wherigo.VectorToPoint fehlerhaft arbeitet - es liefert um 180 Grad verkehrte Winkel - d.h. die Zone würde beim Resize von der Form her gespiegelt werden....

Also müsste man Wherigo.VectorToPoint ersetzen - da gibt es hier im Geoclub einen Thread dazu.

Ein weiterer Punkt ist - es wurde zone.OriginalPoint verwendet - ich weiss nicht, ob der I-Phone-Player da korrekt mitspielt - alternativ kann man auch den auskommentierten Code verwenden, die sich einen "Mittelpunkt" aus den Zonenpunkten berechnet
 

Mauergeckos

Geocacher
Ich hatte vor kurzem das gleiche Problem. Im Simulator wurden die Zonen
fehlerfrei verändert. Beim Test mit 4S und OS5 ist der Wherigoplayer sofort
abgestürzt. Würde mich freuen wenn eine Lösung gefunden und hier
veröffentlicht wird. Mir fehlt dazu leider das Fachwissen.

Gruss Mauergeckos
 

bodenseepingu

Geomaster
Probiert es mal mit dieser Version

Ich habe auf die Verwendung von zone.OriginalPoint verzichtet - ich könnte mir vorstellen, dass das I-Phone dieses Attribut nicht gesetzt hat.

Weiterhin habe ich eine Ersatzroutine für Wherigo.VectortoPoint drin, was ja auf dem I-Phone einen um 180 Grad verkehrten Wert liefert.
 

Anhänge

  • resize_zone.zip
    9,9 KB · Aufrufe: 32
OP
A

Atokad

Geocacher
Auch die neue Version stürzt nach der Meldung ab, dass die Zone jetzt vergrößert wird und ich auf "ok" klicke.
 

bodenseepingu

Geomaster
hmmm sehr seltsam - eigentlich wird da nix anderes gemacht als bei jedem Play-Anywhere Wherigo - dieselben LUA-Konstrukte....

Also doch irgendwas mit der Table...ist aber seltsam - die allermeisten meiner Wherigo's benutzen sehr intensiv Tables - GeoMemory z.B. da gibt es laufend table.insert...
 

bodenseepingu

Geomaster
Vielleicht probierst mal

- beim table.insert:

local new_point = Wherigo.TranslatePoint(...) --> d.h. die Funktion vor dem table.insert aufrufen
table.insert(points, new_point)

oder

local new_point = Wherigo.ZonePoint(0,0,0)
new_point = Wherigo.TranslatePoint(...)
table.insert(points, new_point)
 

bodenseepingu

Geomaster
Also ich hab nochmal den Code vom Geo-Memory angeschaut, der definitiv auf dem I-Phone nach Behebung des Wherigo.VectorToPoint-Fehlers gelaufen ist.

Da werden zig Tables gefüllt - ebenfalls mit ZonePoint-Objekten.

Der einzige Unterschied, den ich da gesehen habe, war dass die Tables global statt lokal definiert waren - das wars dann aber auch schon - dass das zu einem Absturz führen soll erscheint mir doch sehr zweifelhaft. Also ich hab keine Ahnung wo das Problem liegen soll - klar kann man jetzt rumexperimentieren - nur table.insert wird in nahezu jeder meiner Cartridge verwendet - und beim Geomemory weiß ich definitiv dass das auf I-Phone läuft.
 

Mauergeckos

Geocacher
Hallo Bodenseepingu

Danke für Deine Mühe. Das Geo-Memory läuft problemlos.
Die neue Version von resize-zone führt bei mir auf dem 4S
weiterhin nach der Meldung dass die Zone vergrössert
wird zum Absturz. Ich habe lediglich die Zonen auf meinen
Standort abgeändert.

Gruss Mauergeckos
 
OP
A

Atokad

Geocacher
Hi,
sorry, dass ich mich etwas später melde aber ich war für einige Zeit ausgeknockt...
Die neue Version hat auch bei mir keine Verbesserung gebracht, wie Mauergeckos schon angemerkt hat.
Gruß,
Atokad
 

bodenseepingu

Geomaster
sorry, ich hab für meinen Teil keine Ahnung woran es liegt - ihr könnt gerne experimentieren - ohne I-PHone ist das für mich zu mühsam.
 

bodenseepingu

Geomaster
Könnte es sein, daß eine Endlos-Schleife der Grund ist?

Auf dem Android hat jetzt kroegi festgestellt, dass dort eine Endlosschleife auftaucht.
Die gilt es natürlich zuerst mal zu beseitigen - dann mal weitersehen...


Gruß bodenseepingu
 

bodenseepingu

Geomaster
Ich denke eine Lösung hier ist in Sicht.

Im Moment sieht es danach aus, dass das I-Phone als einziger Player beim
Aufruf von Wherigo.VectorToPoint abstürzt...was in zig anderen Cartridges problemlos
funktioniert (durch Kroegi getestet). Hier berichtete Fehler bei table.insert gehören ins
Fabelland - das stimmt nicht.

Der Grund kann m.E. nur beim Anlegen des verwendeten Distance-Objektes liegen.

Und zwar habe ich ausgerechnet in dieser Cartridge ein Distance Objekt

mit Wherigo.Distance (variable) angelegt.

In anderen Cartridges, die mit dem I-Phone funktionieren habe ich Distance-Objekte
immer mit Wherigo.Distance(variable,'m') angelegt.

Die Cartridge wird von kroegi getestet, wenn sich das bestätigt, wird korrigierter Code bereitgestellt und es gibt ein entsprechendes Update eines neuen I-Phone-Bugs bei
das-wherigo-handbuch.de
 

bodenseepingu

Geomaster
Anhang anzeigen resize_zone.zipYes - Kroegi hat bestätigt, der Fehler ist gefunden.

Damit an alle, die Wherigo.Distance benutzen:

Wenn ihr auf dem I-Phone folgenden Code benutzt, führt das zum Absturz:
Code:
local entf = 100
local dist = Wherigo.Distance(entf)
local ZP = Wherigo.TranslatePoint(ref_point,dist, bearing)  <--- Absturz I-PHone

Um den Absturz zu verhindern, dürft ihr ein Distance Objekt nur folgendermassen
erzeugen:

Code:
...
local dist = Wherigo.Distance(entf,'m')   ---oder 'ft'
...

Anbei der neue Code.

Besten Dank an Kroegi fürs ausgiebige Testen !!!
 
Oben