From 03800c418a143790b2cbce362fa48712914d23de Mon Sep 17 00:00:00 2001 From: zedamota Date: Mon, 2 Aug 2010 23:10:28 +0000 Subject: [PATCH] OP37/GCS MapLib Added offline map creator git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1198 ebee16cc-31ac-478f-84a7-5cbb03baadba --- .../src/libs/opmapcontrol/src/core/opmaps.cpp | 2 +- .../src/libs/opmapcontrol/src/core/opmaps.h | 2 +- .../opmapcontrol/src/core/pureimagecache.cpp | 29 ++++++++++-------- .../opmapcontrol/src/core/tilecachequeue.cpp | 30 +++++++++++++------ .../libs/opmapcontrol/src/core/urlfactory.cpp | 2 +- 5 files changed, 40 insertions(+), 25 deletions(-) diff --git a/ground/src/libs/opmapcontrol/src/core/opmaps.cpp b/ground/src/libs/opmapcontrol/src/core/opmaps.cpp index 7fc74290e..6f2d0592d 100644 --- a/ground/src/libs/opmapcontrol/src/core/opmaps.cpp +++ b/ground/src/libs/opmapcontrol/src/core/opmaps.cpp @@ -36,7 +36,7 @@ namespace core { m_pInstance=new OPMaps; return m_pInstance; } - OPMaps::OPMaps():MaxZoom(19),RetryLoadTile(2),useMemoryCache(true) + OPMaps::OPMaps():RetryLoadTile(2),useMemoryCache(true) { accessmode=AccessMode::ServerAndCache; Language=LanguageType::PortuguesePortugal; diff --git a/ground/src/libs/opmapcontrol/src/core/opmaps.h b/ground/src/libs/opmapcontrol/src/core/opmaps.h index a59781787..6389f03c1 100644 --- a/ground/src/libs/opmapcontrol/src/core/opmaps.h +++ b/ground/src/libs/opmapcontrol/src/core/opmaps.h @@ -39,6 +39,7 @@ #include "pureimagecache.h" #include "alllayersoftype.h" #include "urlfactory.h" + //#include "point.h" @@ -66,7 +67,6 @@ namespace core { LanguageType::Types GetLanguage(){return Language;}//TODO AccessMode::Types GetAccessMode()const{return accessmode;} void setAccessMode(const AccessMode::Types& mode){accessmode=mode;} - int MaxZoom; int RetryLoadTile; private: bool useMemoryCache; diff --git a/ground/src/libs/opmapcontrol/src/core/pureimagecache.cpp b/ground/src/libs/opmapcontrol/src/core/pureimagecache.cpp index 52e590391..676ad83a3 100644 --- a/ground/src/libs/opmapcontrol/src/core/pureimagecache.cpp +++ b/ground/src/libs/opmapcontrol/src/core/pureimagecache.cpp @@ -27,6 +27,7 @@ #include "pureimagecache.h" #include +//#define DEBUG_PUREIMAGECACHE namespace core { qlonglong PureImageCache::ConnCounter=0; @@ -49,7 +50,7 @@ QString PureImageCache::GtileCache() bool PureImageCache::CreateEmptyDB(const QString &file) { #ifdef DEBUG_PUREIMAGECACHE - qDebug()<<"Create database at:"< add; bool ret=true; QString dir=gtilecache; -#ifdef DEBUG_PUREIMAGECACHE - qDebug()<<"Cache dir="<GetPosition().X()<<","<GetPosition().Y(); #endif //DEBUG_TILECACHEQUEUE if(!tileCacheQueue.contains(task)) { #ifdef DEBUG_TILECACHEQUEUE - qDebug()<<"EnqueueCacheTask"<GetPosition().X()<<","<GetPosition().Y(); #endif //DEBUG_TILECACHEQUEUE mutex.lock(); tileCacheQueue.enqueue(task); @@ -57,14 +57,17 @@ void TileCacheQueue::EnqueueCacheTask(CacheItemQueue *task) #ifdef DEBUG_TILECACHEQUEUE qDebug()<<"Wake Thread"; #endif //DEBUG_TILECACHEQUEUE - waitc.wakeOne(); + this->start(QThread::NormalPriority); + //waitmutex.lock(); + waitc.wakeAll(); + //waitmutex.unlock(); } else { #ifdef DEBUG_TILECACHEQUEUE qDebug()<<"Start Thread"; #endif //DEBUG_TILECACHEQUEUE - this->start(QThread::LowestPriority); + this->start(QThread::NormalPriority); } } @@ -89,21 +92,30 @@ void TileCacheQueue::run() qDebug()<<"Cache engine Put:"<GetPosition().X()<<","<GetPosition().Y(); #endif //DEBUG_TILECACHEQUEUE Cache::Instance()->ImageCache.PutImageToCache(task->GetImg(),task->GetMapType(),task->GetPosition(),task->GetZoom()); - QThread::usleep(44); + usleep(44); delete task; } else { + qDebug()<<"Cache engine BEGIN WAIT"; waitmutex.lock(); - if(!waitc.wait(&waitmutex,4444)) - + int tout=4000; + if(!waitc.wait(&waitmutex,tout)) { + waitmutex.unlock(); #ifdef DEBUG_TILECACHEQUEUE qDebug()<<"Cache Engine TimeOut"; #endif //DEBUG_TILECACHEQUEUE - if(tileCacheQueue.count()==0) break; + mutex.lock(); + if(tileCacheQueue.count()==0) + { + mutex.unlock(); + break; + } + mutex.unlock(); } + qDebug()<<"Cache Engine DID NOT TimeOut"; waitmutex.unlock(); } } diff --git a/ground/src/libs/opmapcontrol/src/core/urlfactory.cpp b/ground/src/libs/opmapcontrol/src/core/urlfactory.cpp index 361a100b7..e36e27671 100644 --- a/ground/src/libs/opmapcontrol/src/core/urlfactory.cpp +++ b/ground/src/libs/opmapcontrol/src/core/urlfactory.cpp @@ -41,7 +41,7 @@ UrlFactory::UrlFactory() /// UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7"; - Timeout = 30 * 1000; + Timeout = 5 * 1000; CorrectGoogleVersions=true; isCorrectedGoogleVersions = false; UseGeocoderCache=true;