Public Documentation
  • Introduction
  • Getting started
    • Introduction
    • 1. Welcome Page
    • 2. Introduction (Beginner's Guide)
  • Portal Tools
    • Blocko
      • Ůvod do blocka
      • Flip-flop
      • REST-API bloček
    • Grid
      • Úvod do GRID
      • Základní Tlačítko (základy GRID)
      • vylepšený Přepínač (stylování a pokročilé možnosti GRID)
      • text generátor button (messeage type, two elements one widget)
      • graf (pokročilé funkce GRID)
      • Slider (User class v GRIDu)
      • Styly a jejich použití
  • Cloud
    • Cloud
    • Instancies
    • Rest-Api
  • General
    • What we plan
  • Hardware a programování
    • Úvod
      • Nahrání prvního programu
    • Konektivita
      • Specifikace zdroje internetu
      • GSM
      • 6LowPAN
      • Komunikace s portálem
      • Přepínání mezi servery
    • Hardware
      • Základní jednotky
        • IODAG3E
          • Rozhraní a periférie
          • Konektor X a Y
          • Napájení
          • Připojení zdroje k VBAT
          • Paměti
          • Technické specifikace
          • Schémata
        • IODAG3L
      • Rozšiřující moduly
        • GSM shield
        • LED shield
        • Relay shield
        • RFID shield
        • Ultrasonic shield
        • Meteo shield
        • Movement shield
        • PIR shield
        • RGB Displej shield
        • Serial shield
      • Ostatní
        • DevKitG3
          • Schéma
        • TK3G
          • Schéma
        • ZPPG3
          • Schéma
        • WEXP
    • Programování HW
      • Architektura FW
        • Aktualizace FW
        • Autobackup
      • Struktura programu
      • Byzance API
        • Vstupy a výstupy do Portálu
        • Callback Busy
        • Odložený restart
        • Callbacky připojení
        • Uživatelská makra
      • MBED API
        • Vstupy a výstupy
        • Komunikační rozhraní
        • Časování
        • RTOS
      • Knihovny
        • DHT
        • DS1820
        • Dali
        • EdgeStruct
        • I2CWrapper
        • Knock
        • MFRC522
        • MFRC522::MIFARE_Key
        • MPU9150
        • ms5637
        • OneWire
        • PCA9536
        • RGB_matrix
        • RollerDrive
        • SHT21
        • ST7565
        • Servo
        • TCA6424A
        • TLC59116
        • TripleSevenSeg
        • MFRC522::Uid
        • WS2812
        • WakeUp
      • Offline programování
        • Vlastní IDE
        • Upload kódu z GUI
        • Upload kódu z konzole
        • Upload kódu Drag&drop
    • Tutoriály
      • Datum a čas (RTC)
      • Komunikace po sériové lince (UART) s PC
        • Konfigurace sériové linky v PC
        • Programování sériové linky
      • Základní tutoriály
        • Digital Read
        • Analog Read/Write
        • PWM Fade
        • Timer/Ticker
        • State Change Detection
        • Ovládání LED modulu
        • BusOut
        • HC-SR04 Senzor
      • Pokročilé
    • Správa a diagnostika
      • Zdroj restartu
      • LED modul
      • Identifikace zařízení
      • Monitoring parametrů
      • Vytížení zařízení
      • Webové rozhraní
        • Základní přehled
        • Správce firmware
        • Vlákna
        • Definované vstupy
        • Konfigurace MQTT
        • Nastavení
      • Bootloader
        • Režimy bootloaderu
        • Command mód
        • Další vlastnosti bootloaderu
      • Webová konzole
      • Konfigurace zařízení
        • Confighash
      • Omezení konfigurace
        • Konfigurace
        • Binárky
        • Omezení MQTT
        • Lowpan
    • Knowledge base
      • Náhodná čísla
      • Watchdog
      • Paměť RAM
Powered by GitBook
On this page
  • vytvoření projektu
  • Programová část:
  • Přidání grafického elementu:
  • Základní stylizace
  • Interakce s uživatelem
  • Gratuluji, tímto jste vytvořili základní tlačítko pro uživatele
  1. Portal Tools
  2. Grid

Základní Tlačítko (základy GRID)

PreviousÚvod do GRIDNextvylepšený Přepínač (stylování a pokročilé možnosti GRID)

Last updated 7 years ago

vytvoření projektu

Jakožto první příklad si vytvoříme jednoduché tlačítko, které při stisknutí pošle digitální hodnotu truea při puštění false

začneme novým, čistým widgetem:

vybereme nebo vytvoříme novou skupinu, dle toho kam chceme widget

a stiskneme "create new grid widget"

vytvoříme widget a otevřeme ho:

Programová část:

Nejdříve se zamyslíme nad tím, co chceme aby náš widget dělal a co vše k tomu bude potřebovat. Naše tlačítko bude reagovat na stisk tím, že pošle signál že je stisknuto. Naše tlačítko nic nepříjímá, pouze posílá jednu boolean hodnotu.

Tudíž nám stačí jeden output, vzhledem k tomu že se jedná o boolean, jenž pouze nabývá hodnot true/false, tak nám stačí digitální výstup.

Pozn.: Z praktického hlediska vždy začínáme s psaním input/output na začátku.

protože píšeme v jazyku Typescript, začneme takto let valueDigOutput = context.outputs.add("valDigOut","digital","value digital out"); kde první argument označuje jednoslovně jméno výstupu (pro práci v blocku), druhý typ výstupu (digital, analog, messeage), o těch si povíme později, a poslední je popisné pojmenování jenž se zobrazí v nastavení u nastavení.

let

valueDigOutput

definuje promněnou abychom mohli k daménu outputu přistupovat v kódu

Poté definujeme rozměry widgetu, definice rozměrů je povinná ve všech widgetech. Můžeme použít context.addSizeProfile(1,1);kde v parametrech definujeme výšku a šířku widgetu (v pevně daných čtvercích, tudíž widgety vypadají všude stejně. Jeden čtverec má zhruba 1 cm).

Tímto definujeme velikost napevno, bez možností jí změnit.

Pokud víme, že budeme tento widget při tvoření aplikace zvětšovat, můžeme použít context.addSizeProfiles(1,1,5,5);

pořadí parametrů jest

(

minimální výška, minimální šířka, max. výška, max. šířka

)

;

Tímto přidáme rozsah možných velikostí.

Size profilů může být přidáno vícero, bloček začne vždy od nejmenší možné velikosti. Přidáváním síze profilů přidáváme povolené (možné) rozměry widgetu.

připomínám že **Musíme přidat jakýkoliv kladný a nenulový sizeProfile každému widgetu.

Pokud kliknete na

test

, zobrazí se toto:

Protože ačkoliv máme definované velikosti,

nemáme definované jakékoliv grafické prvky

*

*

. Musíme je do Widgetu přidat.

Přidání grafického elementu:

Protože Widgety jsou od toho, abychom poskytnuli uživateli grafickou vazbu na jeho zařízení, musíme je do Widgetu přidat.

Přidáme jednoduchý button element, z WK objektů

let button = new WK.Button(context,"push");

první argument je vždy context

(

později si ukážeme, proč

)

a druhý je text v našem tlačítku.

Pokud znovu klikneme na test, nic se nestane, protože tlačítko nená ani styl a ani není přidané do Widgetu.

pro přidání tlačítka do Widgetu použijeme

context.root.add(button);

prvný argument je element, který přidáváme.

Root můžeme považovat za

základní

element, který je rozšířen o několik funkcionalit a je přítomný vždy ve všech widgetech.

Klikneme na tlačítko

test.

pokud si tlačítko zvětšíme, zjistíme že je defalutně nastylované, avšak vzhedově je naprosto ošklivé.

Základní stylizace

Upravíme si tlačítko tak, aby bylo po celé šířce i výšce našeho widgetu. Připomínám, že widgetů budeme mít v aplikaci několik a jeden widget by měl zastávat jednu funkci.

Úprava stylu elementu je jednoduchá. Šířku a výšku _button _elementu upravíme snadno pomocí

button.style.height = "100%";
button.style.width = "100%";

`

Pokud dáme test ihned uvidíme zlepšení.

Interakce s uživatelem

O interaktivní stránku widgetů se nejčastěji používají listenery. Na náš _button _přidáme event listener, který bude naslouchat zda bylo na tlačítko kliknuto.

button.listenEvent("mousedown", callback => {        
     valueDigOutput.value = true;        
 });

na button zavoláme listenEvent, první argument je typ akce, na kterou má kód reagovat (v tomto případě, že na element bylo zmáčknuto tlačítko myši) a další část je funkce, co se má vykonat při vyvolání. Jedná se o zkrácený javascriptový zápis

button.listenEvent("mousedown", function(callback){        
     valueDigOutput.value = true;        
 });

(obojí je validní) kde _callback _je pouze pomocná promněná a můžeme jí pojmenovat jak je libo.

V hranatých závorkách je kód, co se vykoná při stisknutí levého tlačítka na myši ve chvíli co je najet na button element. V kódu voláme na záčátku definovaný valueDigOutput _jakožto výstup. Protože se jedná o digitální výstup, vkládáme do .value jenom _true nebo false. v tomto případě posíláme true (logickou 1);

přidáme ještě:

button.listenEvent("mouseup", e => {        
     valueDigOutput.value = false;        
 });

Což při puštění tlačítka myši pošle na výstup false

Nyní klikneme na

test

A mužeme testovat, pokud vše proběhlo správně, do konzole se vypisuje stav valDigOut.

Gratuluji, tímto jste vytvořili základní tlačítko pro uživatele

Rosáhlejší stylování popíšeme později, pro rychlé nahlédnutí ale pomůže kapitola "".

Styly a jejich použití