GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skript:ggdrake

This is an old revision of the document!


GgDrake

Plugin je určen pro předávání dat mezi GeoGetem a aplikací a:Drake pro mobilní telefony se systémem Android.

flag-english.jpg

Autor

Nekamarádíte se s PayPalem? Napište mi email a domluvíme se na jiném způsobu, třeba převodu na účet. Protože plugin má jednu část na straně GeoGetu a druhou na straně a:Draku, bude částka rozdělena na polovinu mezi autory obou částí.

Automatická instalace

Plugin zatím není veřejně k dispozici, ale jen ve vývojové verzi pro testování. Pokud máte zájem se do testování zapojit, kotaktujte mě, prosím.

Nainstalovat do GeoGetu
Instalaci doplňku spustíte kliknutím na tlačítko vlevo. Následně budete v prostředí GeoGetu provedeni instalačním procesem. Pro zajištění této funkce je třeba mít na počítači již nainstalovaný a spuštěný program GeoGet .
Kliknuli jste na tlačítko a nic se nestalo? Máte opravdu spuštěný GeoGet ? Je to potřeba! Nebo možná máte zastaralý webový prohlížeč. Nevadí, instalaci doplňku můžete jednoduše vyvolat i prostým zkopírováním (označit text → klik pravým tlačítkem → kopírovat) následujícího odkazu do schránky: https://www.geoget.cz/doku.php/user:skript:ggdrake?download

Diskuze

  • Diskuze o tomto skriptu se nachází na stránkách Geocaching.cz.

Popis

Plugin umožňuje:

  • získávat informace z a:Drake
  • přenášet data mezi a:Drake a Geogetem (v jednom nebo obou směrech)
  • upravovat nastavení a:Drake

Způsob komunikace a přenášení dat:

  • u každé funkce je ikona, která indikuje způsob připojení, který je pro použití funkce požadován WiFi=, MTP=
  • většina funkcí je realizována přes WiFi
    • tedy telefon s a:Drake a počítač s Geogetem a spuštěným pluginem musejí být ve stejné lokální síti LAN
  • datově náročné funkce (např. přenos souboru s mapou) jsou možné jen přes MTP, nebo je pro ně MTP přenos velmi doporučen (např. přenos celé databáze, který sice přes WiFi lze realizovat, ale trvá podstatně déle)
    • tedy telefon a a:Drake připojený USB kabelem k počítači
  • některé funkce založené na přenosu souborů mohou probíhat jak přes WiFi, tak přes MTP v závislosti na okamžitém způsobu připojení nebo na volbě uživatele
  • některé funkce nemusejí poskytovat stejné možnosti nebo výsledky při obou způsobech připojení

Základem činnosti pluginu je WiFi připojení. WiFi připojení zajišťuje spolupráci pluginu s a:Drake. MTP připojení s a:Drake nespolupracuje a je myšleno jako rozšíření nebo doplnění některých funkcí a slouží jen pro přenos souborů - a:Drake o změně souboru nebude vědět. Pokud tedy funkce obsahuje jen přenos nějakého souboru, není WiFi připojení potřeba. Ve všech ostatních případech je WiFi připojení nutné.

MTP připojení:

  • je nutné pro přenos mapových souborů a mapových témat
  • je doporučené pro přenos celé databáze (není to nutné, ale přenos je mnohem rychlejší a nemá takové omezení ohledně umístění databáze jako při WiFi přenosu)
  • rozšiřuje práci se stopama

Ikona na zakázaném tlačítku (se zašedlým textem) indikuje chybějící jeden nebo oba typy připojení.

Připojení k a:Drake

Připojení k a:Drake je možné

  • automaticky
  • ručně

Automatické připojení

Automatické připojení by mělo být základem, protože plugin se pokusí sám vyhledat zařízení se spustěným a:Drake a jeho funkcí sync. Během navázání spojení se plugin dozví IP adresu zařízení a přes tu pak s a:Drake komunikuje.

Problém může nastat právě při hledání zařízení, protože je použita multicast zpráva. Bohužel v každé síti a na každém zařízení mohou být pro multicast povoleny jiné IP adresy a porty, případně může použitá IP adresa kolidovat s jinou aplikací. Proto umožňuje jak plugin, tak a:Drake tyto hodnoty změnit. Při dalším spuštění budou použity již upravéné parametry.

Povolený rozsah IP adres pro multicast je 224.0.0.0 až 239.255.255.255.

  • a:Drake “poslouchá” na dvou až třech adresách současně
    • vždy na 224.0.0.0:5000 a 224.0.0.1:5000
    • uživatel může nastavit jednu další adresu a port navíc (je třeba to udělat jak v a:Drake, tak v nastavení pluginu GgDrake). Na obrázku je přidána adresa 239.1.2.3:5000
  • připojení pluginu k a:Drake je možné jen v případě, že je na mobilu aktivní obrazovka funkce sync (tj. není zhasnutá!)
  • pokud má mobil obrazovku zhasnutou, nepřijímá multicast signál a připojit se nejde
    • to umožňuje mít na jedné LAN více mobilů s a:Drake a více spuštěných GeoGetů s pluginem - každý plugin se může připojit k požadovanému a:Drake právě tím, že v době připojování bude aktivní sync obrazovka jen na jednom z mobilů. Pokud by jich bylo aktivních více, pak se plugin připojí k tomu mobilu, který odpoví na multicast požadavek jako první, což nemusí být zrovna ten požadovaný
  • když už je mobil s pluginem spojen, komunikují mezi sebou i při zhasnuté obrazovce mobilu přes IP adresu
  • pokud jsou problémy s automatickým vyhledáním telefonu a jeho připojením, je možné ruční připojení zadáním IP adresy telefonu na portu 8080
  • a:Drake i plogin GgDrake vypisují IP adresu a port, na kterém jsou připojeni
  • pokud k připojení zatím nedošlo
    • a:Drake vypisuje IP adresu, přes kterou bude komunikovat a při zapnutém podrobném logování informuje i o multicast adresách, na kterých poslouchá
    • GgDrake vypisuje multicast adresu a port, na kterém bude hledat a:Drake

Občas se stane, že i při správném nastavení nedojde k připojení - připojení je ukončeno ve fázi vyhledávání “serveru” s již zjištěnou IP adresou. V tom případě doporučuji ukončit funkci sync v a:Drake, znovu ji spustit a pak se již připojení podaří (většinou na nové IP adrese).

Pokud je problém s připojením notebooku a telefonu do stejné sítě (např. v zaměstnání mohou být zařízení s neznamými MAC adresami blokovaná), může být řešením vytvořit na dalším telefonu hot-spot a k němu obě zařízení připojit. Pak spolu mohou komunikovat a jelikož nepotřebují přístup na internet, nebudou čerpat datový tarif telefonu s hot-spotem.

Ruční připojení

Ruční připojení znamená ručně nastavit IP adresu zařízení s a:Drake. Ta je zobrazena po spuštění funkce sync. Plugin pak již nepotřebuje zařízení vyhledat. Nevýhodou je, že v síti může mít zařízení pokaždé jinou IP adresu a je tedy potřeba ji nastavovat při každém spuštění pluginu, kdy nemá být použito automatické připojení. Ruční připojení je tedy jakési nouzové řešení, kdy aktomatický způsob vyhledání zařízení s a:Drake selhává.

Parametry pro ruční připojení je možné uložit, takže budou použity při dalším spustění pluginu a připojení k a:Drake.

Vyhledání MTP

Plugin a MTP knihovna, kterou plugin používá, předpokládají standardní instalaci a:Drake do delefonu nebo na SD kartu do cesty Android/data/cz.adrake[.plus]. Jinam dnes nainstalovat nejde. Pokud jej máte z předchozích verzí androidu instalovaný jinde, doporučuji jej nainstalovat do standardního místa. Jinak funkce používající MTP nebudou pracovat.

Keše z Geogetu do a:Drake

Do a:Drake je možné odeslat:

  • keše z okna GeoGetu
    • funkce používá WiFi připojení a předává a:Drake všechny dostupně informace o keši, které ma GeoGet k dispozici. Výjimkou jsou soubory, které má uživatel ke keši v GeoGetu připojeny, ty do a:Drake předat takto nelze
    • všechny zobrazené
    • jen vybrané
    • omezení přenosu
      • zatím existuje limit na velikost přánášených dat, pokud bude limit překročen, nebude požadavek vůbec přijat
      • velikost přenášených dat neovlivňuje jen počet keší, ale také délky jejich listingů a počty adélky logů u přenášených keší
      • pokusy se ukazuje, že limit na počet keší je někde mezi 20 a 30, kdy import v a:Drake ještě proběhne
      • uvažujeme o několika principech, které by tento počet navýšily, ale v každém případě značně vzroste režie na obou stranách a u většího počtu keší už bych doporučil použít přenos celé databáze
  • celou aktuálně používanou databázi
    • funkce je dostupná jak při připojení přes WiFi, tak přes MTP. MTP protokol je výrazně rychlejší
    • plugin si zjistí, jakou databázi a:Drake používá a aktuální databázi odešle tak, aby ji a:Drake použil - předá ji tedy do správného adresáře a pod příslušným jménem
    • !!! POZOR !!! protože databáze v a:Drake obsahuje i tzv. ad-hoc waypointy, dojde překopírováním databáze k jejich ztátě. Ad-hoc waypointy je možné přenášet do databáze Geogetu samostatně nebo si soubor s nimi před kopírováním databáze načíst a po zkopírování zase vrátit.
  • jinou GeoGetí databázi
    • funkce je dostupná jak při připojení přes WiFi, tak přes MTP. MTP protokol je výrazně rychlejší
    • kromě výběru požadované databáze ma uživatel možnost zvolit, jaké bude jméno databáze po přenosu. Je možné zachovat jméno nebo databázi přejmenovat tak, aby ji a:Drake rovnou používal
  • při importu keší do a:Drake jsou vždy uchovány poznámky u keše, které jsou v a:Drake. Pokud se poznámka posílaná z GeoGetu liší, přidá se za ní poznámka z a:Drake a výsledek se uloží jako nová poznámka. Tím je zajištěno, že uživatel nepřijde o poznámky z terénu
  • při kopírování celé databáze je zatím podstatný rozdíl v tom, zda kopírování probíhá přes WiFi nebo přes MTP. Přes MTP je vždy databázový soubor zkopírován do místa, kde jej a:Drake očekává. Při kopírování přes WiFi je databázový soubor uložen vždy do datového adresáře, což je vždy v telefonu. Pokud tedy je aplikace přesunuta na externí SD kartu, měla by být i databáze na SD kartě. Zatím tomu tak při přenosu přes WiFi není

MTP protokol je nevyzpytatelný a občas může jen “navázání kontaktu s telefonem” před vlastním přenosem databáze trvat trochu déle než by člověk čekal, třeba i minutu.

Keše z:Drake do Geogetu

Volba keší pro přenos z a:Drake do GeoGetu je poměrně variabilní:

  • keše, které byly v databázi a:Drake nějak upraveny
    • uživatel může zvolit datum počátku a konce období, kdy ke změně u keše došlo
      • čas počátku je vždy 00:00 uvedeného dne
      • čas konce je vždy 23:59 uvedeného dne
    • uživatel může určit jen výběr keší podle pořadí první přenášené keše v seznamu a jejich počtu
    • seznam takových keší může být
      • zobrazen v okně GeoGetu
      • zobrazen v logu pluginu
      • keše mohou být importovány do GeoGetí databáze
    • při připojení přes MTP lze volitelně přenášet i přílohy ke keši, takže lze např uložit fotky, které byly pořízeny u kešky
      • je ale nutné je opravdu mít přiložené ke keši, tedy v příslušné adresářové struktuře
      • postup: v Galerii kliknout na ikonku foťáku, vyfotit a místo ukončení foťáku kliknout na OK nebo Uložit, …

  • keše určené jiným způsobem:
    • všechny nebo jen vybrané keše v okně GeoGetu
    • GC kódem (je možné uvést více GC kódů, oddělené jsou čárkou)
    • keše, které jsou uvedené v Konceptech (FN) v a:Drake, tedy keše, které jsou označeny jako nalezené (nebo také nenalezené, …), ale log ještě nebyl odeslán na web

Technické řešení záznamu změn v a:Drake

  • a:Drake si v databázi Geogetu vytváří vlastní tabulku (last_upd), do které zaznamenává informace o provedených změnách (kód keše, datum, čas a typ změny)
  • Geoget tuto tabulku v databázi nemá a neobsluhuje ji
  • po zkopírování celé databáze do a:Drake tabulka a:Draku chybí, proto tabulku změn vytvoří a začne ji plnit změnami
  • žádné starší záznamy v tabulce být nemohou a není tedy možné ani vyhledat keše se stašími změnami

Pokud uživatel žádá změněné keše, prohledá se tabulka last_upd s ohledem na zadané hodnoty (datum počátku - čas je vždy 00:00, datum změny - čas je vždy 23:59). Plugin pak zobrazí seznam keší, u kterých v tomto intervalu došlo ke změně. Je-li zadaný offset a počet keší, pak nejsou zobrazeny všechny změněné keše, ale jen zadaný počet keší od zadaného pořadí (tj. offsetu).

Poznámky k přenosu z a:Drake do Geogetu

import s přepisem

  • plugin umožňuje při importu keší do Geogetu přepisovat i waypointy, které mají nastaven příznak, který z anormálních okolností při importu tyto waypointy v databázi zachovává beze změn
  • je to užitečné např. v případech, kdy v terénu uživatel opraví chybné souřadnice waypointu
  • funkci přepisu je třeba vždy ručně zapnout
  • při každém zapnutí je uživatel varován, protože je možné, že importem uživatel přijde o data, která u waypointu v databázi má

přenos celé databáze z a:Drake do Geogetu

  • plugin takovou funkci nemá, protože a:Drake neobsluhuje všechny položky databáze (např prostorový index) tak jako Geoget a navíc a:Drake do databáze doplňuje některé své hodnoty (např. tabulku změn)
  • přenosem celé databáze tak, jak ji používá a:Drake, by mohlo v Geogetu dojít k poškození celé databáze a ztrátě všech dat

Koncepty (jinak také FN nebo Drafts)

Po získání souboru s koncepty (nebo po načtení dříve získaného souboru z disku) plugin zobrazí jednotlivé logy a po vybrání logu je možné:

  • keš zobrazit v okně GeoGetu
  • keš zobrazit na webu
  • log upravit nebo smazat

Po úpravách pak lze:

  • soubor vrátit do a:Drake, předat na web a případně i rovnou logy publikovat
    • volba Nechat odeslané logy je (asi) dočasná ladicí funkce, ktará v a:Drake zachová logy i po odeslání na web
  • zobrazit všechny keše v okně GeoGetu
  • importovat všechny logy do GeoGetu, v tom případě dojde i k případnému označení nálezů stejně, jako by logy byly importovány z webu

Úprava logu

Ačkoli se to nemusí na první pohled zdát, soubor s koncepty získaný z a:Drake má trochu odlišný tvar od souboru, který je odesílán na web. Proto není možné tento soubor na web odeslat přímo, ale je potřeba “oklika” přes a:Drake.

Z výše zdůrazněného upozornění vyplývají různá omezení:

  • úprava se týká textu logu, tedy toho, co je v šabloně a:Drake označeno zkratkou [L], tedy opravdu jen toho, co uživatel sám píše
  • nikde není vidět hodnoty, které do šablony doplňuje a:Drake až při odeslání (např. pořadí nálezu)
    • hodnoty jsou závislé na okamžiku odesílání a není možné je (správné) dopředu získat, aby byl vidět úplný log tak, jak je odesílán na web. Kdyby byl například úpravou změněn typ logu z FI na DNF (nebo opačně), nějaký log vymazán či přidán nebo třeba jen změněn čas logu, byly by hodnoty získané z a:Drake před touto úpravou chybné

Logy načtené z a:Drake zůstávají dostupné v pluginu i po jeho ukončení a opětovném spuštění. Bez připojení k a:Drake je možné je načíst, upravit a zase uložit. To je úmysl, aby bylo možné postupně upravovat větší počet logů a nebylo nutné je všechny upravit najednou.

Je však potřeba dát pozor na to, abychom si rozpracované logy nepřepsali novým načtením logů z a:Drake. Proto

  • je možné logy uložit do jiného než implicitního souboru
  • později s tímto souborem opakovaně pracovat
  • pozor také při vracení logů zpět do a:Drake. Vždy tam budou jen a pouze ty, které tam z pluginu odešlete. To znamená, že pokud máte v mobilu nějaké nové, můžete o ně přijít

Mapy

Tato záložka usnadňuje konfiguraci map v a:Drake. Je možné konfiguraci map zobrazit, upravit a pak vrátit zpět. Také je možné mapy přidávat či odebírat a kopírovat mapy z nastavení GeoGetu do konfigurace map pro a:Drake.

Protože a:Drake pracuje s bitmapovými i vektorovými mapami (ve formátu MapsForge), mají oba typy map trochu odlišné možnosti nastavení.

Pozor na změnu typu již existující mapy. Možnost změnit/nastavit typ mapy je zamýšlena zejména pro případ přidávání nové mapy.

Bitmapové mapy (zejména Google)

Vektorové mapy OSM (MapsForge)

U vektorových map je navíc možnost přenést soubor s mapou a adreář s mapovým tématem do zařízení. Tato funkce je zatím dostupná jen při MTP připojení, protože mapy mohou být v adresáři, kam a:Drake nemá právo k zápisu souboru.

  • MTP protokol je nevyzpytatelný a občas může jen “navázání kontaktu s telefonem” před vlastním přenosem souboru s mapou trvat trochu déle než by člověk čekal, třeba i minutu
  • cesta k souboru s mapou uvedená v konfiguračním souboru je používaná systémem Android (např. /storage/9016-4EF8/MapyOsm)
  • cesta zadaná pro odeslání souboru s mapou je používaná protokolem MTP (např. /Karta SD/MapyOsm)
  • ačkoli obě cesty mohou (a mají!) ukazovat na stejné místo, nejsou shodné, jak ukazují příklady cest výše
  • MTP protokol sice interpretuje cestu /Karta SD/MapyOsm jako např. /storage/9016-4EF8/MapyOsm, ale skutečnou systémovou cestu před uživatelem skývá

Mapy z Geogetu

Je také možné použít definici map tak, jak je v GeoGetu, a snadno ji přenést do a:Drake.

Stopy

Se stopami je možné pracovat ve dvou režimech. Základní režim předpokládá připojení k a:Drake přes WiFi a poskytuje základní přehled o stopách. Rozšířený režim pracuje přímo s databází stop, která je ale dostupná jen při MTP přístupu k telefonu. Jako bonus je navíc možné pracovat s dříve uloženou databází stop (_adrake.db3).

Je-li zároveň telefon připojený přes WiFi i MTP, automaticky se stáhne aktuální databáze stop _adrake.db3. Pozor! Přepíse tím dříve stažená a případně i upravená databáze stop.

Po získání seznamu stop z a:Drake (přes WiFi nebo z dříve uloženého databázového souboru _adrake.db3):

  • se automaticky zobrazuje celkový přehled o aktuální stopě
    • pokud je k dispozici MTP připojení, je přehled o vybrané stopě trochu komplexnější
  • lze uložit vybrané stopy v některém z formátů GPX, KML, PLT jako soubory na PC
  • lze zobrazit aktuální stopu v jedné z externích aplikaci (implicitní podle přípony nebo vybranou uživatelem)
    • pro zobrazení se vždy stopa buďto znovu stahuje z a:Drake nebo načítá ze stažené databáze podle toho, co je dostupné a případně uživatelem požadované
    • při označení více stop a volbě formátu KML (Google Earth), jsou všechny vybrané stopy vloženy do jediného souboru, každá je pak zobrazena jinou barvou
    • pokud to aplikace umožňuje, tak stopu upravit
  • v rozšířeném režimu (stopy načtené z databázového souboru _adrake.db3) je navíc možné:
    • přejmenovat stopu
    • smazat stopu
    • zobrazit jednotlivé body stopy
    • zobrazit vzdálenost vybraného (označeného) úseku stopy
    • vymazat některé body
      • ruční výběr
      • automaticky podle přesnosti, pokud jsou souřadnice bodu získané s horší než zadanou přesností
    • rozdělit jednu stopu na více stop
      • ručně v zadaném bodě
      • automaticky tak, aby žádná nově vzniklá stopa nebyla delší než je zadaná vzdálenost
      • automaticky tak, aby žádná nově vzniklá stopa netravle déle než zadaný časový úsek
    • spojit více stop do jediné
  • vrátit upravené stopy zpět do a:Drake

Ad-hoc waypointy

Ad-hoc waypointy jsou body, které si uživatel v a:Drake vytvoří bez souvislosti s jakoukoli keškou. Plugin umí tyto body:

  • zobrazit jako seznam (prefix bodu, souřadnice a jméno bodu uvedené v a:Drake)
  • vymazat ze seznamu některé body
  • body ze seznamu zobrazit na Geogetí mapě
  • body vrátit zpět do a:Drake
    • tady ale pozor, body mají nastaven příznak “Nepřepisovat”, takže pokud nebude změněn prefix bodu, a:Drake jej v podstatě nemůže neimportovat
  • importovat body ze seznamu do databáze Geogetu
    • importovat je jako samostatné body (v geocachingové terminologii jako keše)
      • uživatel může definovat první dva znaky kódu bodu
      • ostatní znaky kódu plugin zjistí automaticky tak, že najde v databázi poslední bod s uvedenými prvními znaky a takto získaný kód zvýší o jedničku
      • pokud v databázi není nalezen žádný bod, kód vytvoří ze zadaných prvních dvou znaků a zadané délky kódu (počtu znaků)
    • importovat je jako waypointy k rodičovskému bodu se zadaným kódem
      • kontroluje se (jen podle souřadnic!), zda WP u zadaného rodičovského bodu již existuje a pokud ano, WP se neimportuje (funkci je možné potlačit)
      • plugin vždy upraví prefix waypointu tak, aby byl jedinečný a tedy bude vždy přidán
      • pokud rodičovský bod ještě v databázi neexistuje nebo nemá žádný waypoint, použije se pro první importovaný waypoint uživatelem zadaný prefix

Zálohy

Ostatní

Instalace

Plugin se instaluje standardním způsobem a nemá žádné specifické požadavky na instalační postup.

Nastavení a konfigurace

Plugin uchovává nastavení na dvou místech:

  • GgDrake.config.pas
  • GgDrake.ini

GgDrake.config.pas

Tento soubor obsahuje nastavení potřebná k připojení k telefonu a nastavení lze změnit a uložit pro příští spuštění přímo v pluginu. Jsou tu uchovány hodnoty

  • MULTICAST - uživatelem nastavená doplňující IP adresa a port pro multicast zprávu
  • CONNECT_MANUALY - příznak použití ručního připojování
  • CONNECT_IP - ručně nastavená IP adresa telefonu s a:Drake

GgDrake.ini

Tento soubor obsahuje nastavení závislé na připojeném telefonu, např. cesty k mapovým souborům. I když je soubor při aktualizaci pluginu přepisován, všechny uložené parametry jsou zachovány i po aktualizaci pluginu.

Pro nastavení parametrů není potřeba ruční úprava souboru, vše je možné nastavit v pluginu.

Stažení

:!: Stáhnout aktuální verzi: ggdrake-0.3.2.gip

Seznam dostupných verzí

FilenameFilesizeLast modified
ggdrake-0.3.2.gip132.0 KiB2018/12/07 09:36
ggdrake-0.2.1.gip131.5 KiB2018/11/09 08:50

Seznam změn

1.0.0.0

  • úvodní veřejná verze (zatím není publikovaná)

:!: Zobrazit změny ve starších verzích

Skrýt změny ve starších verzích

user/skript/ggdrake.1531502865.txt.gz · Last modified: 2018/07/13 19:27 by gord