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

Spielverlauf durch Geräteabfrage bestimmen

xxmurdockxx

Geomaster
Hallo,

es besteht ja die Möglichkeit die die Geräteplattform abzufragen.

Macht es sinn, anhand der Plattform z.b. andere Funtionen zu verwenden.
Ich meine wenn z.b. bei einem Gerät die Cartridge nicht so läuft wie sie sollte,
dann könnte man doch anhand der Abfrage evtl. ein anderes Szenario aufrufen.

Zb. bei einem Telefongespräch.
Garmin kann keinen Sound - also wird das über Dialoge gesteuert.
Smartphones - hier hört man das Gespräch ohne Dialoganzeige.

Hat jemand schon sowas gemacht? Funktioniert es?

Grüße Stefan
 

hihatzz

Geomaster
Das hab ich mir auch schon mal überlegt.
Mir hat mal jemand berichtet dass das Oregon abstürzt wenn man einen Sound (mp3) abspielt, d.h. man könnte eine Abfrage vorschalten ob das Gerät ein Oregon ist.
hier (link) habe ich gefunden wie man den Emulator verhindert indem man auf Env.DeviceID = "Desktop" abfrägt, analog könnte man das auf andere Devices und andere Funktionen ausdehnen.
Jetzt muss man "nur" noch rausfinden wie die DeviceIDs bei den anderen Geräten heissen, für Oregon und Android kann ich das ja mal heute Abend machen.
 
OP
xxmurdockxx

xxmurdockxx

Geomaster
Im Urwigo kann man ja einfach den Knopf beim Emulator-Schutz drücken.
Ich weiß allerdings nicht, ob es auch funktioniert.

hihatzz schrieb:
Mir hat mal jemand berichtet dass das Oregon abstürzt wenn man einen Sound (mp3) abspielt
Das kann ich so nicht bestätigen.
Cartridge enthält MP3 und läuft auf dem Garmin ohne Probleme. Nur halt ohne Sound.

Nur bei einer doppelten Belegung der Medien im Urwigo (einmal mit mp3 und einmal mit fdl) wird auf dem Iphone die MP3 nicht abgespielt. Auf dem Garmin geht die FDL aber problemlos. :???:
Bei den DeviceIDs wird es wohl schwierig sein, da doch jedes Gerät seine eigene hat.
Geht meiner Meinung nach nur über die Plattform (IOS, Win 32, Min Mobile etc.)

Um nicht jede Eventualität (OS und Versionsnummer) abzufangen müsste man ja nur prüfen ob ein Teilstring in einer Variablen vorkommt.
Und da häng ich grad... :kopfwand:
Hab keine Ahnung, wie ich folgenden Code:
Code:
cString = "hello world from Lua"
        for wort in string.gfind(cString, "%a+") do
            print(wort)
        end
im Urwigo einbauen kann, damit ich nur einen Teilstring abfragen muß :???:
 

Anhänge

  • emulator.jpg
    emulator.jpg
    9,9 KB · Aufrufe: 1.408

Krolock

Geocacher
Ich hab mal die Env.DeviceID auf dem Oregon ausgeben lassen. Da kommt ne Zahl heraus. Wahrscheinlich die GeräteId. Wenn Orgeon hier nicht einen festen Nummernkreis hat, wird es schwierig aus der Zahl auf den Gerätetyp zu schließen.
 
OP
xxmurdockxx

xxmurdockxx

Geomaster
Krolock schrieb:
Ich hab mal die Env.DeviceID auf dem Oregon ausgeben lassen. Da kommt ne Zahl heraus. Wahrscheinlich die GeräteId. Wenn Orgeon hier nicht einen festen Nummernkreis hat, wird es schwierig aus der Zahl auf den Gerätetyp zu schließen.
Was kommt denn bei Env.Platform raus?
Bei folgender GWC scheint das Garmin nix auszuspucken :???:
 

Anhänge

  • kennung.zip
    3,9 KB · Aufrufe: 53

Krolock

Geocacher
Bei mir spukt das Garmin 300 mehr als nix aus. Sowohl Gerätekennung Env.DeviceID "3689401....", Plattform Env.Platform "Vendor 1 ARM9", Gerät "Garmin Colorado" und Version Env.Version "2.1.1"

Womit hast du die Abfrage des Gerätes (die zweite MessageBox) hinbekommen?

Ich hab noch einen nützlichen Link gefunden:
http://wherigobuilder.wikispaces.com/Env+table+values
 
OP
xxmurdockxx

xxmurdockxx

Geomaster
so sieht es im Urwigo aus.
Wobei die Variable jetzt keine Fuktion hat.
 

Anhänge

  • kennung.jpg
    kennung.jpg
    45,6 KB · Aufrufe: 1.364

bodenseepingu

Geomaster
Also tower27 hat in der Adaption meiner Cartridge Catch me if you can (ortsfeste Version im Saarland)
Code für die Stabilität der Garmins reingenommen (unkritischeres Timing in diesem Fall).

Hier hat ausgereicht (in LUA - geht aber auch mit Urwigo):

Code:
function pruefe_garmin()
    if Env.Platform == "Vendor 1 ARM9" then
        var_ist_garmin = true
    else
        var_ist_garmin = false
    end
end

D.h ich gehe mal davon aus, daß ein Abfragen der Plattform völlig ausreichend ist, um Sonderbehandlungen für manche Geräte einzubauen.
 
OP
xxmurdockxx

xxmurdockxx

Geomaster
Haben alle Garmingeräte die gleiche Plattform?

Heißt die immer "Vendor 1 ARM9"?

Wie kann ich denn nur einen Teilstring vergleichen?
z.B. beim Iphone. Dorst steht ja immer die IOs Version dabei. z.b. 4.3.3

Ich will jetzt aber nicht jede mögliche Variante als Variable eintragen.
Es würde ja reichen, wenn im Env. Platform der String Iphone vorkommt..
dann passiert ...

Geht das?
 

Krolock

Geocacher
xxmurdockxx schrieb:
Wie kann ich denn nur einen Teilstring vergleichen?

mit string.sub

Auszug aus http://lua-users.org/wiki/StringLibraryTutorial

> = string.sub("Hello Lua user", 7) -- from character 7 until the end
Lua user
> = string.sub("Hello Lua user", 7, 9) -- from character 7 until and including 9
Lua
> = string.sub("Hello Lua user", -8) -- 8 from the end until the end
Lua user
> = string.sub("Hello Lua user", -8, 9) -- 8 from the end until 9 from the start
Lua
> = string.sub("Hello Lua user", -8, -6) -- 8 from the end until 6 from the end
Lua
 
Oben