This is an old revision of the document!
Table of Contents
GgDrake
Plugin je určen pro předávání dat mezi GeoGetem a aplikací a:Drake pro mobilní telefony se systémem Android.
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.
|
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
.
|
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:
- 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í.
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)
Připojení k a:Drake
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í namulticast
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
-
- 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
-
- 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.
-
- 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í:
-
- 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
-
- 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, …
-
- 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:
-
- 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
Ú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
Stopy
Po získání seznamu stop z a:Drake a jeho zobrazení, je možné každou stopu:
- automaticky se zobrazuje celkový přehled o stopě, pokud je k dispozici MTP připojení, je přehled komplexnější
- uložit ve vybraném formátu jako soubor na PC
- zobrazit v jedné z definovaných aplikací
- pokud to aplikace umožňuje, tak ji upravit
Zobrazení stopy je nezávislé na předchozím uložení stopy do souboru na PC - plugin si vybranou stopu z a:Drake stáhne a předá ji aplikaci.
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í
Seznam dostupných verzí
Filename | Filesize | Last modified |
---|---|---|
ggdrake-0.3.2.gip | 132.0 KiB | 2018/12/07 09:36 |
ggdrake-0.2.1.gip | 131.5 KiB | 2018/11/09 08:50 |
Seznam změn
1.0.0.0
- úvodní veřejná verze (zatím není publikovaná)