On Friday 07 November 2008 02:06:08 Oliver Eichler wrote:
> Daniel Schudel schrieb:
> > I have attached a patch file that adds support for the first generation
> > of yellow eTrex units.
> >
> > The modifications were localized to the EtrexLegend directory since the
> > eTrex, eTrex Legend, and eTrex Vista are all very similar. Testing,
> > however, was only done with my eTrex.
> >
> > One caveat: the eTrex does not support maps (like the Vista and Legend).
> > I added a flag to abort _queryMap and _uploadMap on the eTrex (but not
> > Vista and Legend). While this does skip attempts to query/upload maps
> > the the eTrex, it does confuse the upper layers of QLandKarte. Are there
> > any ideas on how to solve this?
>
Oliver,
Thanks for the info. The attached patch has your recommendation and has been
tested on my eTrex.
Daniel
> Hi Daniel,
>
> thanks for the patch. The flag approach is ok. To handle abortion
> correctly you have to call the default implementation in IDeviceDefault.
> Can you change this, test and resend the patch please. Then I can check
> it into SVN.
>
> Oliver
>
> > All work was done off this SVN tag:
> > https://qlandkarte.svn.sourceforge.net/svnroot/qlandkarte/tag/QLandkarte.
> >2008.07.04 It should patch to the trunk just fine.
> >
> > Daniel
> >
> >
> > ------------------------------------------------------------------------
> >
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > challenge Build the coolest Linux based applications with Moblin SDK &
> > win great prizes Grand prize is a trip for two to an Open Source event
> > anywhere in the world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > QLandkarte-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/qlandkarte-users
--
Daniel Schudel
[EMAIL PROTECTED]
Index: src/device/EtrexLegend/CDevice.cpp
===================================================================
--- src/device/EtrexLegend/CDevice.cpp (revision 514)
+++ src/device/EtrexLegend/CDevice.cpp (working copy)
@@ -49,7 +49,7 @@
CDevice::CDevice()
: serial(0)
{
-
+ supportsMaps = true;
}
@@ -108,6 +108,11 @@
void CDevice::_uploadMap(const uint8_t * mapdata, uint32_t size, const char * key)
{
+ if(supportsMaps == false)
+ {
+ IDeviceDefault::_uploadMap(mapdata, size, key);
+ return;
+ }
if(serial == 0) return;
int ready= 0;
int cancel = 0;
@@ -216,6 +221,11 @@
void CDevice::_queryMap(std::list<Map_t>& maps)
{
maps.clear();
+ if(supportsMaps == false)
+ {
+ IDeviceDefault::_queryMap(maps);
+ return;
+ }
if(serial == 0) return;
Packet_t command;
Index: src/device/EtrexLegend/EtrexLegend.pro
===================================================================
--- src/device/EtrexLegend/EtrexLegend.pro (revision 514)
+++ src/device/EtrexLegend/EtrexLegend.pro (working copy)
@@ -22,6 +22,18 @@
SOURCES += CDevice.cpp \
loader.cpp
-QMAKE_POST_LINK = cd ${DESTDIR} && ln -sf ${TARGET} libEtrexVista.so
-target2.path = $${QLANDKARTE_LIBDIR}
-target2.commands = cd ${INSTALL_ROOT}$${QLANDKARTE_LIBDIR} && ln -sf ${TARGET} libEtrexVista.so
+ALIASES = libEtrexVista \
+ libEtrexClassic
+
+unix {
+ QMAKE_POST_LINK = cd ${DESTDIR} && \
+ for n in $${ALIASES} ; do \
+ ln -sf ${TARGET} \$\$n$${SH_LIB_EXT}; \
+ done
+
+ target2.path = $${QLANDKARTE_LIBDIR}
+ target2.commands = cd $(INSTALL_ROOT)$${QLANDKARTE_LIBDIR} && \
+ for n in $${ALIASES} ; do \
+ ln -sf ${TARGET} \$\$n$${SH_LIB_EXT}; \
+ done
+}
Index: src/device/EtrexLegend/loader.cpp
===================================================================
--- src/device/EtrexLegend/loader.cpp (revision 514)
+++ src/device/EtrexLegend/loader.cpp (working copy)
@@ -54,3 +54,23 @@
EtrexLegend::device->devid = 169;
return EtrexLegend::device;
}
+
+// I went back-and-forth on where to put the eTrex Classic
+// (https://buy.garmin.com/shop/shop.do?cID=167&pID=6403). Visually,
+// and feature capabilities, it is probably close to the eTrex H. However,
+// the eTrex Classic is of the same vintage as the eTrex Legend and eTrex Vista.
+// So, as far as firmware (and serial communications go), it is closer to those.
+// Therefore, I put it here.
+extern "C" Garmin::IDevice * const initEtrexClassic(const char * version)
+{
+ if(strncmp(version,INTERFACE_VERSION,5) != 0) {
+ return 0;
+ }
+ if(EtrexLegend::device == 0) {
+ EtrexLegend::device = new EtrexLegend::CDevice();
+ }
+ EtrexLegend::device->devname = "eTrex";
+ EtrexLegend::device->devid = 130;
+ EtrexLegend::device->supportsMaps = false;
+ return EtrexLegend::device;
+}
Index: src/device/EtrexLegend/CDevice.h
===================================================================
--- src/device/EtrexLegend/CDevice.h (revision 514)
+++ src/device/EtrexLegend/CDevice.h (working copy)
@@ -36,6 +36,7 @@
std::string devname;
uint32_t devid;
+ bool supportsMaps; // Does this device support map upload/download
const std::string& getCopyright();
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QLandkarte-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qlandkarte-users