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

GPS-Signal auf den PC: Oregon 450 mit Cachewolf verbinden?

white_rabbit

Geocacher
Hallo.
Vorweg: Vermutlich ist dies ein "Linux-only"-Thema...

Ich habe hier den NB vom CacheWolf und habe erst gerade entdeckt, dass mein Garmin Oregon 450 auch den sog. "Garmin Spanner"-Mode beherrscht (hab' mich aber vorher auch nicht damit befasst). (--> hier gefunden)

Nun wäre es natürlich schön, wenn man das GPS-Signal mit dem Cachewolf abgreifen könnte. Ich bin soweit gekommen, dass der GPSd läuft und das Signal zeigt; leider kommt es aber dann im CW zu einem Fehler. Hier meine Vorgehensweise (alles als root):
Code:
modprobe usbserial
modprobe garmin-gps
/usr/sbin/gpsd -n -D 6 -N /dev/ttyUSB0
Daraufhin erhalte ich die NMEA-Datensätze in der Konsole "gpsd: INFO: Garmin: ..."
Nun habe ich den CW gestartet und dort unter "Einstellungen --> Karten/GPS --> Einstellungen"
diese Settings eingetragen:
Port: /dev/ttyUSB0
Baud: 9600
Daten per GPSD empfangen: Yes (>=2.91)
gpsd Host: 127.0.0.1

Klicke ich dort aber *irgendwas* an (Testen, Suchen, Ports auflisten...), erhalte ich diese Java-Fehler:

Code:
java.lang.IllegalAccessException: Class ewe.reflect.Field can not access a member of class CacheWolf.GPSPortOptions with modifiers "public"
        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109)
        at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261)
        at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253)
        at java.lang.reflect.Field.get(Field.java:376)
        at ewe.reflect.Field.nativeGetValue(Field.java)
        at ewe.reflect.Field.getValue(Field.java)
        at ewe.reflect.FieldTransfer.transfer(FieldTransfer.java)
        at ewe.ui.Editor.transfer(Editor.java)
        at ewe.ui.Editor.toControls(Editor.java)
        at ewe.ui.Editor.toControls(Editor.java)
        at ewe.ui.Editor.make(Editor.java)
        at ewe.ui.CellPanel.make(CellPanel.java)
        at ewe.ui.CellPanel.make(CellPanel.java)
        at ewe.ui.Frame.make(Frame.java)
        at ewe.ui.FormFrame.make(FormFrame.java)
        at ewe.ui.Gui.setupNewWindow(Gui.java)
        at ewe.ui.Gui.execFrame(Gui.java)
        at ewe.ui.Form.doShowExec(Form.java)
        at ewe.ui.Form.exec(Form.java)
        at ewe.ui.Form.execute(Form.java)
        at CacheWolf.PreferencesScreen.onEvent(Unknown Source)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Control.notifyAction(Control.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.penReleased(ButtonControl.java)
        at ewe.ui.Control.penClicked(Control.java)
        at ewe.ui.Control.onPenEvent(Control.java)
        at ewe.ui.Control.onEvent(Control.java)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Window.doPostEvent(Window.java)
        at ewe.ui.Window$windowThread.run(Window.java)
        at ewe.sys.mThread.run(mThread.java)
        at ewe.sys.Coroutine.run(Coroutine.java)
java.lang.IllegalAccessException: Class ewe.reflect.Field can not access a member of class CacheWolf.GPSPortOptions with modifiers "public"
        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109)
        at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261)
        at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253)
        at java.lang.reflect.Field.get(Field.java:376)
        at ewe.reflect.Field.nativeGetValue(Field.java)
        at ewe.reflect.Field.getValue(Field.java)
        at ewe.reflect.FieldTransfer.transfer(FieldTransfer.java)
        at ewe.ui.Editor.transfer(Editor.java)
        at ewe.ui.Editor.toControls(Editor.java)
        at ewe.ui.Editor.toControls(Editor.java)
        at ewe.ui.Editor.make(Editor.java)
        at ewe.ui.CellPanel.make(CellPanel.java)
        at ewe.ui.CellPanel.make(CellPanel.java)
        at ewe.ui.Frame.make(Frame.java)
        at ewe.ui.FormFrame.make(FormFrame.java)
        at ewe.ui.Gui.setupNewWindow(Gui.java)
        at ewe.ui.Gui.execFrame(Gui.java)
        at ewe.ui.Form.doShowExec(Form.java)
        at ewe.ui.Form.exec(Form.java)
        at ewe.ui.Form.execute(Form.java)
        at CacheWolf.PreferencesScreen.onEvent(Unknown Source)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Control.notifyAction(Control.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.fullAction(ButtonControl.java)
        at ewe.ui.ButtonControl.penReleased(ButtonControl.java)
        at ewe.ui.Control.penClicked(Control.java)
        at ewe.ui.Control.onPenEvent(Control.java)
        at ewe.ui.Control.onEvent(Control.java)
        at ewe.ui.Control.postEvent(Control.java)
        at ewe.ui.Window.doPostEvent(Window.java)
        at ewe.ui.Window$windowThread.run(Window.java)
        at ewe.sys.mThread.run(mThread.java)
        at ewe.sys.Coroutine.run(Coroutine.java)
Ist das nun ein Fehler von mir oder vom CW?
:hilfe:
 

arbor95

Geoguru
Hi,
ich müßte mal nachsehen, wer den gpsd code geschrieben hat.
Da habe ich bisher fast noch keinen Blick rein getan.

Für das gpsd sind, soweit ich mich erinnere, nur die unteren Einstellungen relevant (Daten per gpsd empfangen Auswahlfeld und gpsd host).

Mit dem USB bzw USB auf Seriell Port, so wie du getestet hast, (ich habe da auch keine Erfahrung mit) meine ich, dass das unter Java (Linux, Windows bzw Eclipse...) nicht funktioniert. Ich erhalte unter Windows mit Eclipse beim Port Test die gleichen Fehlermeldungen wie du.

Was ich mal getestet habe ist ein Garmin mit seriellem Anschluss und das Protokoll dort auf NMEA gestellt und dann mit CW . Aber das ist schon lange her. Und es war wohl "nur" die Windows - Version von CW. Das hat funktioniert.

Ich denke nicht, dass das ein Problem des NB ist. Ich hab an dem Code in diesem Bereich nichts geändert. Da habe ich nur "Kleinigkeiten" an dem Einstellungsdialog / Aufruf angepasst.
 
OP
W

white_rabbit

Geocacher
ich habe gerade wieder gefunden wie ich es vor Jaaaaahren mal mit meinem alten Handy geschafft habe... es scheinen sich aber einige Dinge geändert haben. EWE ist z.B. auf dem Stand von 2005 stehen geblieben.

http://forum.geoclub.de/viewtopic.php?f=40&t=39110
 

jennergruhle

Geoguru
Das gpsd-Zeux ist von mir, habe aber auch Jahre nicht mehr dran gearbeitet. Das hatte ich damals für mein OpenMoko-Telefon implementiert. Ich könnte mal versuchen, das mit GPS-Maus und Bluetooth am Linux-PC nachzustellen. Wird aber frühestens am Dienstag was.
 

jennergruhle

Geoguru
Ich habe noch mal nachgesehen, hab das ganze Zeux schon weggeschmissen. CacheWolf-Entwicklungsumgebung habe ich nicht mehr (und Ewe/Eve/Efe oder wie auch immer war immer stark gewöhnungsbedürftig), OpenMoko-Gerät ist platt, GPS-Maus tut nicht mehr und Bluetooth-Dongle ist auch weg. Seit ich Android-Geräte habe (also 2009), habe ich nichts mehr daran gemacht. Seitdem nutze ich c:geo auf dem Gerät und GSAK auf demPC, auch unter Linux.

Obiges klingt laut der Exception aber nicht nach einem grundsätzlichen GPSD-Problem, sondern eher nach dem üblichen Problem, dass Ewe schlechten Programmierstil gefördert hat (auf Attribute nicht mit Gettern/Settern, sondern durch "Reinfassen" zuzugreifen). Vielleicth erbarmt sich ja noch mal jemand und schreibt ein paar ordentliche Getter und Setter...
 

arbor95

Geoguru
Falsch:
Es ist einfach das Problem, dass die verwendete Klasse in Java, Eclipse, ... nicht existiert, wohl aber in EWE und der Umsetzung für Win32. Und das ist mehrfach mitgeteilt worden. Wer es trotzdem probiert erhält halt diese Meldungen. Da nützen auch keine getter und setter.

Ich brauche sie aber auch nicht, da
ich mit Cachebox auf Android und immer noch Offline unterwegs bin.

Es wird wohl nicht mehr viele Benutzer geben, die mit mobilem Windows unterwegs sind.
Den Bedarf sehe ich eher gegen 0 gehen.
Da würde ich mich eher für CacheWolf auf Android stark machen!
 

jennergruhle

Geoguru
Seltsam - ursprünglich habe ich auch mal mit Eclipse unter Linux entwickelt, und das Openmoko - Gerät als GPSD genutzt. Damals ging das noch - mir kam obige Meldung eher so vor als ob jetzt durch zwischenzeitliche Änderungen der Zugriff auf die Objekte nicht mehr passt.
 

arbor95

Geoguru
An deinem Code hat niemand etwas geändert.
Du bist wahrscheinlich nie auf die Idee gekommen Ports zu listen oder zu testen, weil das ja nichts mit gpsd (tcp-ip, sockets,..) zu tun hat. Sonst hättest du auch diese Meldung erhalten.
 

jennergruhle

Geoguru
Da hast Du recht - wenn das GPSD-Häkchen gesetzt ist, sollten eigentlich bestimmte Dinge disabled werden. Jetzt hast du mich neugierig gemacht - vielleicht kriege ich doch noch meine CW-Entwicklungsumgebung wieder zum Laufen.
 

arbor95

Geoguru
Mehr als Eclipse und Java brauchst du ja nicht.

Ich mache es mit Eclipse Version: Kepler Service Release 1 vom 19.9.2013 (ohne svn plugin)

Und mit der Anleitung http://cachewolf.aldos.de/index.php/Main/CWSelbstBauen sollte es ja kein Problem mehr sein.
 
Oben