Makrá (2. časť)

Z návodu už vieme, ako vytvoriť makro, ktoré za nás nájde a aktivuje tlačidlo. Môžeme si však zjednodušiť aj zložitejšie úlohy. Ukážeme si, ako napríklad priamo v prostredí Corvusu spustiť popisovanie obrázkov z aplikácie TapTapSee a nechať Corvus popis vysloviť bez toho, aby sme museli čokoľvek v TapTapSee hľadať.

Samozrejme, aby ste si to mohli vyskúšať spolu s nami, nainštalujte si najskôr túto užitočnú bezplatnú aplikáciu pre nevidiacich prostredníctvom Obchodu Play. Ako inštalovať aplikácie sme sa dozvedeli v návode a vyskúšali sme si to práve na aplikácii TapTapSee. Potom sa s aplikáciou dostatočne oboznámte prostredníctvo Corvus Čítača. Tvoriť makro je nevyhnutne možné až po tom, keď aplikáciu zvládate používať i bez neho.

Naše makro bude robiť nasledovné: Spustí si aplikáciu Taptapsee. Počká, kým sa aplikácia načíta a zobrazí. Vyhľadá tlačidlo, ktorým sa spúšťa fotenie. Keď ho nájde, aktivuje ho. Potom počká, kým sa obrázok popíše. Nájde popis a zatvorí TapTapSee. Následne nám popis prečíta. Cieľom je vytvoriť si skratku na hlavnej obrazovke, ktorou budeme priamo v prostredí Corvusu identifikovať odfotené objekty.

Budeme pracovať s aplikáciou TapTapSee vo verzii 3.3.4.3. Ak máte inú verziu aplikácie, postup na vytvorenie makra môže byť mierne odlišný. Tiež sa môže stať, že po aktualizácii aplikácie TapTapSee budete musieť vytvoriť makro nanovo, pretože objekty v aplikácii TapTapSee môže autor tejto aplikácie zmeniť, resp. môže zmeniť postup krokov pri využívaní aplikácie.

Ako prvý krok si aplikáciu TapTapSee spustime. To preto, aby sme ju mali medzi nedávnymi aplikáciami a mohli sa do nej vrátiť z obrazovky makra.

Ideme vytvoriť nové makro. Spustíme aplikáciu Corvusu Makrá. Nové makro vytvoríme aktivovaním príslušnej položky z kontextovej ponuky. Vyplníme si názov. Povedzme: „Popíš obrázok“. Následne poklepeme na položku kód a ako úvodný príkaz zvolíme spustenie Android aplikácie. V zozname vyberieme TapTapSee.

Náš kód teraz vyzerá takto:

  1. Spustiť aplikáciu – TapTapSee,
  2. Tichý posun po objektoch - Zapnuté
  3. Inteligentný fokus – Vypnuté.

Teraz potrebujeme zistiť informácie o prvkoch, s ktorými budeme pracovať. Budeme čakať na okno aplikácie, preto potrebujeme všeobecnú informáciu o okne. Budeme hľadať tlačidlo na odfotenie, takže si zistíme niečo o tlačidle. Napokon budeme hľadať informáciu o popise, takže si opäť uložíme informácie o tomto objekte. Prvky v systéme android majú rôzne vlastnosti. O tlačidle vieme, že je to tlačidlo. Môže mať nejaký dlhý popis a text, ktorý sa zobrazí. Toto nám pomôže nájsť presne to tlačidlo, na ktoré sa má kliknúť. Aby sme tieto informácie zistili, prejdeme do aplikácie TapTapSee. Poslúži nám na to tlačidlo Nedávne.

Ak nie ste zvyknutí používať okno Nedávne, môžete tvorbu makra opustiť tlačidlom domov a následne štandardne prejsť do aplikácie TapTapSee. Corvus si makro bude pamätať a po návrate do aplikácie Makrá sa vás opýta, či chcete v tvorbe makra pokračovať.

Nachádzame sa teda v aplikácii TapTapSee. Postupne si ideme uložiť informácie o prvkoch, z ktorými budeme neskôr pracovať. Slúži nám na to tlačidlo 2-shift (teda tlačidlo na znižovanie hlasitosti). Toto tlačidlo funguje len vtedy, ak sme pred tým spustili vytváranie makra.

Najskôr si uložíme informáciu o okne, ktoré máme zamerané. Informáciu uložíme do modulu makra stlačením tlačidla 2-shift. Potrebujeme tiež informáciu o tlačidle na fotenie. Najprv ho nájdeme švihaním dole. Je označené ako Take a picture button“. A opäť si informáciu o tomto objekte uložíme tlačidlom 2-shift. Napokon si ešte urobíme skúšobnú fotku. Nájdeme popis obrázka, a takisto si informáciu o tomto objekte uložíme tlačidlom 2-shift. Teraz sa gestom 1-shift švih doľava alebo tlačidlom Späť vrátime do aplikácie Makrá.

Najprv budeme čakať, kým sa zobrazí okno aplikácie TapTapSee. Ak sa zobrazí, budeme pokračovať, ak stále nebude zobrazené, budeme čakať ďalej. Ak čakáme pridlho, pravdepodobne došlo k chybe a preto necháme Corvus vysloviť slovo „chyba“. Aby sme mohli robiť takéto úlohy, musíme si definovať takzvané návestia. Sú to body v kóde, na ktoré môže Corvus za splnenia istých podmienok preskočiť. Potrebujeme tri návestia.

  • Návestie Čakaj okno, ktoré bude opakovane kontrolovať či sa už zobrazilo okno.
  • Návestie Mám okno, na ktoré skočíme, ak už okno máme.
  • A návestie chyba, ktoré použijeme, ak sa aplikácia nebude dať spustiť.

Návestia vytvoríme z kontextovej ponuky.
<ponuka,  pridať príkaz>
poklepeme
<nasledujúci objekt>
Hľadáme a potvrdíme položku návestie
<návestie. Názov:>
Zadáme názov čakaj okno.
<čakaj okno>
Aby sme mohli definovať skákanie po návestiach, musíme ich mať už vytvorené.Preto si rovnako teraz vytvoríme aj návestie chyba a mám okno.
<vytváranie návestí>
Teraz sa vrátime k návestiu Čakaj okno.
<návestie čakaj okno>
Príkazy, ktoré teraz vložíme sa vložia za kurzorom. Najprv vložíme príkaz na čakanie. Nájdeme ho v kontextovej ponuke, pod položkou pridať príkaz.
<ponuka, pridať, čakanie>
Ponecháme hodnotu 50 milisekúnd.
<kód, čakanie 50 milisekúnd>
Teraz budeme testovať objekt a zisťovať, či sa zhoduje s otvoreným oknom aplikácie Taptapsee. Najprv si musíme nájsť informácie o objekte, ktoré sme si už uložili. K informácii sa dostaneme opäť cez kontextovú ponuku, aktivovaním poslednej položky.
<ponuka, info o uložených objektoch>
V zozname máme objekty, ktoré sme si uložili. Ako prvá je informácia o samotnom okne.
<text: null.... package...>
Mnohé údaje sú prázdne, alebo obsahujú všeobecné informácie. Všimnite si ale, že položka package  obsahuje názov aplikácie.
<znovu prečítať info o objekte>
Po poklepaní sa nám informácie o tomto objekte zobrazia v neprepisovateľnom editačnom poli. My si skopírujeme do schránky informáciu o názve inštalačného balíčka. Kopírujeme len text bez úvodzoviek.
<hľadanie textu package, kopírovanie>
Vrátime sa späť ku kódu nášho makra.
<kód, čakanie>
Vložíme príkaz Testovanie zameraného objektu.
<ponuka, pridať, testovanie objektu>
Vieme, že sme si z nášho objektu zapamätali informáciu o balíčku, preto hľadáme v zozname opäť položku package.
<package nedefinovaný>
Po poklepaní do editačného políčka vložíme obsah schránky.
<vkladanie>
Teraz ešte nájdeme položku choď na návestie.
<choď na návestie>
Ak sa okno podarí nájsť, chceme prejsť na návestie Mám okno.
<choď na návestie mam okno>
Nakoniec ešte musíme zadanie uložiť.
<uložiť>
Teraz potrebujeme vložiť  kontrolu, či nečakáme pridlho. Vložíme príkaz návestím podmienený skok.
<ponuka, pridať, návestím podmienený skok>
Prvá položka ak je počítadlo na nám určuje,ktoré návestie chceme kontrolovať.
<ak je počítadlo na cakaj okno>
Potvrdíme hneď prvé návestie.
Druhá položka
<väčšie ako>
určuje hodnotu. Zadáme napríklad 50.
<väčšie ako 50>
Nakoniec chceme určiť, čo sa bude diať, ak bude kontrola trvať pridlho. To určíte v nasledujúcom kroku
<choď na návestie>
Vyberieme návestie chyba.
<choď na návestie chyba>
Zadanie uložíme.
<uložiť>
Nakoniec celý cyklus musíme uzavrieť príkazom, ktorý nás vráti na začiatok, aby sa kontrola opakovala. To urobíme príkazom choď na.
<pridať, choď na>
Zvolíme návestie cakaj okno.
Preistotu si náš kód znovu pozrime.
<čítanie kódu>
Teraz určíme, čo sa stane pri skoku na návestie chyba. Vložíme text chyba. Urobíme to príkazom vyslov text.
<pridať, vyslov text>
Napokon pridáme ešte príkaz prerušiť makro.
<pridať príkaz, prerušiť makro>
Teraz potrebujeme určiť, čo sa bude diať, keď okno máme. Corvus bude hľadať tlačidlo na odfotenie. Budeme potrebovať nové návestie. Definujeme Návestie Mám tlačidlo, ktoré použijeme, keď sme tlačidlo našli.
<ponuka, pridať, návestie, mam tlacidlo>
Chceme hľadať príslušné tlačidlo. Informáciu o ňom máme už uloženú, preto si ju nájdeme v informáciách o objekte.
<info o uložených objektoch>
Pozrime si, čo vieme o tlačidle:
<... content description...>
Z toho, čo sme počuli môžeme na identifikáciu použiť položku content description alebo zdroj resource. Zdroj bude lepší hlavne pre prípad, že časom niekto aplikáciu preloží a zmení sa popis objektu. Preto si do schránky skopírujeme časť resource.
<kopírovanie>
Nasledujúce príkazy potrebujeme zaradiť do návestia mám okno. Preto kurzor presunieme na návestie Mam okno.
<mam okno>
Teraz vložíme testovanie zameraného objektu.
<ponuka, pridať, testovanie>
Do políčka Resource vložíme text zo schránky.
<resource>
Ostatné položky necháme prázdne. Musíme ale rozhodnúť, že budeme skákať na návestie Mám tlačidlo.
<choď na návestie mám tlačidlo>
Potrebujeme sa postupne presúvať cez objekty na obrazovke, preto vložíme príkaz nasledujúci objekt.
<nasledujúci objekt>
zadáme hodnotu 1, aby sme prechádzali postupne cez všetky objekty a žiadny nevynechali.
<nasledujúci objekt 1 vykonaní>
Opäť vložíme kontrolu, že ak hľadáme pridlho, chceme makro ukončiť.
<pridať návestím podmienený skok>
Ak je počítadlo na definujeme na návestie mám okno, ktoré teraz hľadá tlačidlo.
<ak je počítadlo na mam okno>
Počet môžeme určiť opäť napríklad na 50.
<väčšie ako 50>
Choď na návestie nastavíme na návestie chyba, ktoré sme už použili.
<choď na návestie chyba>
Zadanie uložíme.
<uložiť>
Opäť potrebujeme činnosť opakovať, preto vložíme príkaz choď na.
<pridať, choď na>
Vraciame sa späť na návestie Mám okno.
<choď na mám okno>.
Naše makro doteraz vie otvoriť aplikáciu a nájsť tlačidlo. Tlačidlo potrebujeme aktivovať, preto vložíme príkaz kliknutie. Ten ale patrí do návestia mám tlačidlo.
<presunutie kurzora na navestie mam tlacidlo>
<pridať, kliknutie>
Počet opakovaní ponecháme na 1.
<1>
Po kliknutí musíme čakať, kým sa popíše odfotený obrázok. Mohli by sme postupovať opakovanou kontrolou, ktorú sme si ukázali v predošlých príkazoch. Za domácu úlohu si to môžete skúsiť navrhnúť. Teraz sa uspokojíme s tým, že vložíme čakanie.
<pridať, čakanie>
Napíšeme  2000, čo je dve sekundy.
<čakanie 2000>
Pri príprave tohto makra sa ukázalo, že dve sekundy sú málo. Príkaz čakanie ale neumožňuje vložiť dlhší čas, preto ho vložíme znovu.
<pridať, čakanie, 2000>
Teraz potrebujeme nájsť text popisu a vysloviť ho. Najprv definujeme návestie vyslov.
<pridať, návestie vyslov>
Vrátime sa  pred návestie vyslov, lebo nasledujúce príkazy sú ešte súčasťou návestia mám tlačidlo
<čakanie...>
Teraz potrebujeme pohnúť kurzorom, aby sme sa dostali na popis fotky. Preto vložíme prechod na predchádzajúci objekt:
<pridať, predchádzajúci objekt, počet vykonaní: 1>
Teraz vložíme skok na nasledujúci objekt, kde by už mal byť popis obrázka.
<pridať, nasledujúci objekt. 1X>
Teraz potrebujeme zistiť, ako vyzeá objekt s popisom obrázka.
<info o objektoch>
O našom objekte vieme toto:
<objekt>
Popis nemôžeme použiť, lebo ten sa bude meniť. Ostatné informácie sú veľmi všeobecné. Údaj resource ale obsahuje zaujímavú informáciu, preto si ju skopírujeme.
<kopírovanie>
Opäť vložíme testovanie zameraného objektu.
<pridať, testovanie>
Budeme kontrolovať hodnotu resource:
<resource>
Ak objekt nájdeme, chceme prejsť na návestie vyslov.
<choď na návestie nedefinovaný... vyslov>
Zadanie uložíme.
<uložiť>
Čaká nás definovanie záverečných krokov, ktoré  budú súčasťou návestia Vyslov.

Teraz chceme aplikáciu TapTapSee zatvoriť. Preto vložíme príkaz Späť.

Nakoniec vložíme príkaz na zobrazenie popisu. Môžeme použiť funkciu zobraz text.

V informácii o objekte sme si všimli, že popis obrázka je správne zadaný ako text. Preto použijeme premennú. Napíšeme $_otext.
makro máme hotové. Vyzerá takto:

 

 

Makro uložíme tak, že sa z kódu vrátime späť do hlavného okna nového makra a poklepeme na položku uložiť.

Makro môžeme otestovať spustením z modulu makrá. V zozname vytvorených makier len poklepeme na naše nové makro s názvom Popíš obrázok. Fotoaparát musíme už mať namierený na predmet, ktorí chceme identifikovať. Potom už len čakáme, či nám Corvus oznámi výsledok rozpoznávania predmetu z aplikácie TapTapSee. Nakoniec si ešte môžeme definovať skratku na spustenie makra z hlavnej obrazovky Corvusu a to v nastaveniach Corvusu, v časti Gestá - Skratky na hlavnej obrazovke, aby naše popisovanie obrázkov bolo naozaj efektívne a poruke vždy, keď ho budeme potrebovať.