MicroLog.MyPower.CZ

… designed for freedom of automation.

Uživatelské nástroje

Nástroje pro tento web


mmdl

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
mmdl [2013/09/14 21:09] – [Základní proměnné] mypower_czmmdl [2013/09/23 15:16] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 3: Řádek 3:
 ===== Popis jayzka ===== ===== Popis jayzka =====
  
-MMDL je jednoduchý programovací jazyk, určený pro specifikaci chování displaye v projektu Mypower Microlog. Sestává ze dvou sekcí. První sekcí jsou matematické výpočty hodnot, definice a nastavení hodnot proměnných. Druhou sekcí je vlastní obsah jednotlivých stránek displaye a nastavení funkcí ovládacích tlačítek displaye.+MMDL je jednoduchý programovací jazyk, určený pro specifikaci chování displaye v projektu Mypower Microlog. Sestává ze dvou sekcí. První sekcí jsou matematické [[#vypocty|výpočty]] hodnot, definice a nastavení hodnot proměnných. Druhou sekcí je vlastní obsah jednotlivých [[#stranky|stránek]] displaye a nastavení funkcí ovládacích tlačítek displaye.
  
 {{http://mypower.cz/docs/ulog/t4-display1602.png?600}} {{http://mypower.cz/docs/ulog/t4-display1602.png?600}}
Řádek 10: Řádek 10:
  
   * [[mmdl:examples:helloworld|Hello World!]]   * [[mmdl:examples:helloworld|Hello World!]]
 +  * [[mmdl:examples:clock|Datum a čas na displayi]]
 +  * [[mmdl:examples:numberformat|Test formátu čísel]]
   * [[mmdl:examples:defaulttest|Test všech základních funkcí obsluhy displaye]].   * [[mmdl:examples:defaulttest|Test všech základních funkcí obsluhy displaye]].
  
Řádek 26: Řádek 28:
   $win = $win1 + $win2  // soucet vykonu   $win = $win1 + $win2  // soucet vykonu
  
-Znak "/" je zde chápán jako operátor dělení. "<html>/⁄</html>" musí být uveden na začátku řádku.+Znak "<html>/</html>" je zde chápán jako operátor dělení. "<html>/⁄</html>" musí být uveden na začátku řádku. 
 + 
 +Příklad **korektního** komentáře v programu 
 + 
 +  // soucet vykonu 
 +  $win = $win1 + $win2   
 ===== Proměnné ===== ===== Proměnné =====
  
Řádek 34: Řádek 42:
   * **@** Modifikátor určující že hodnota proměnné bude načtena z HW, například z analogového vstupu.   * **@** Modifikátor určující že hodnota proměnné bude načtena z HW, například z analogového vstupu.
   * **a** .. **z**, **A** .. **Z**, **0** .. **9**, **_** název proměnné.   * **a** .. **z**, **A** .. **Z**, **0** .. **9**, **_** název proměnné.
-  * **.** Modifikátor určující počet desetinných míst v sekci pro definici obrazovek displaye.+  * **.** Modifikátor určující počet desetinných míst v sekci pro definici obrazovek displaye. Může následovat číslo 0 .. 4 nebo písmeno R.
   * **#** Modifikátor vynucující ukončení názvu proměnné v sekci pro definici obrazovek displaye.   * **#** Modifikátor vynucující ukončení názvu proměnné v sekci pro definici obrazovek displaye.
  
Řádek 46: Řádek 54:
   $uFV2   $uFV2
   $iarray   $iarray
 +  
 +V názvech proměnných jsou rozdílně vnímána malá a velká písmena. Proměnné <html>$UFV</html> a <html>$uFV</html> jsou dvě zcela odlišné proměnné
  
 ==== Speciální proměnné ====  ==== Speciální proměnné ==== 
  
-Speciální proměnné se vyznačují použitím modifikátoru <html>@</html>. Jako hodnota proměnné bude použita aktuální hodnota na vstupu HW, nebo systémová proměnná, například aktuálně naměřená hodnota analogového vstupu dle jeho aktuálního nastavení, čas, datum, atd. Znakem následujícím pro modifikátoru <html>@</html> je typ hodnoty, která má být použita. +Speciální proměnné se vyznačují použitím modifikátoru <html>@</html>. Jako hodnota proměnné bude použita aktuální hodnota na vstupu HW, nebo systémová proměnná, například aktuálně naměřená hodnota analogového vstupu dle jeho aktuálního nastavení, nebo také čas, datum, atd. Znakem následujícím pro modifikátoru <html>@</html> je typ hodnoty, která má být použita. 
  
 === Analogové vstupy === === Analogové vstupy ===
Řádek 115: Řádek 125:
 sekund:     4138 sekund:     4138
 </code> </code>
 +
 +Další příklady pro [[mmdl:examples:clock|datum a čas na displayi]].
  
 ==== Modifikátor počtu desetinných míst ====  ==== Modifikátor počtu desetinných míst ==== 
Řádek 129: Řádek 141:
   * **$X.R** zobrazí celou část čísla. Narozdíl od výše uvedených se neprovádí se úprava na jednotky k, M, G, T.   * **$X.R** zobrazí celou část čísla. Narozdíl od výše uvedených se neprovádí se úprava na jednotky k, M, G, T.
  
-=== Příklad programu ===+[[mmdl:examples:numberformat|Test formátu čísel]]
  
-<code> 
-$x1 = 17.8523 
-$x2 = 2000 
-$x3 = 975231.667 
- 
-# 
-Test desetin- 
-nych mist 
- 
-# 
-$x1 | $x1.0 
-$x1. | $x1.1 
- 
-# 
-$x1.2 | $x1.3 
-$x1.4 | $x1.5 
-   
-# 
-$x1.R | :) 
---- 
- 
-# 
-$x2 | $x2.0 
-$x2. | $x2.1 
- 
-# 
-$x2.2 | $x2.3 
-$x2.4 | $x2.5 
-   
-# 
-$x2.R | :) 
---- 
- 
-# 
-$x3 | $x3.0 
-$x3. | $x3.1 
- 
-# 
-$x3.2|$x3.3 
-$x3.4|$x3.5 
-   
-# 
-$x3.R | :) 
---- 
-</code> 
  
  
Řádek 205: Řádek 172:
 ==== Stránky ==== ==== Stránky ====
  
-Sekce pro definici stránek slouží pro nastavení obsahu jednotlivých stránek displaye. Stránky jsou uloženy v pořadí za sebou. Ve stejném pořadí budou zobrazeny po stisku tlačítek <html>UP</html> a <html>DOWN</html> na LCD Keypad Shield displayi.+Sekce pro definici stránek slouží pro nastavení obsahu jednotlivých stránek displaye a následuje bezprostředně za sekcí určenou pro výpočty. Stránky jsou uloženy v pořadí za sebou. Ve stejném pořadí budou zobrazeny po stisku tlačítek <html>UP</html> a <html>DOWN</html> na LCD Keypad Shield displayi. 
 + 
 +=== Definice stránky ===
  
 Každá stránka začíná symbolem <html>#</html>. Za tímto znakem může následovat jedno z písmen <html>R</html>, <html>L</html>, nebo <html>S</html>, které značí tlačítko (<html>Right</html>, <html>Left</html>, nebo <html>Select</html>) po jehož stisku bude stránka okamžitě zobrazena. Tlačítka <html>Up</html> a <html>Down</html> si zachovávají svou funkci a jsou použita pro listování mezi stránkami v pořadí tak jak jsou napsány v programu pro display. Každá stránka začíná symbolem <html>#</html>. Za tímto znakem může následovat jedno z písmen <html>R</html>, <html>L</html>, nebo <html>S</html>, které značí tlačítko (<html>Right</html>, <html>Left</html>, nebo <html>Select</html>) po jehož stisku bude stránka okamžitě zobrazena. Tlačítka <html>Up</html> a <html>Down</html> si zachovávají svou funkci a jsou použita pro listování mezi stránkami v pořadí tak jak jsou napsány v programu pro display.
Řádek 220: Řádek 189:
   Toto je bezna   Toto je bezna
   stranka....   stranka....
 +
 +Poznámka: V případě, že se v programu vyskytne více stránek s definicí pro jedno a totéž tlačítko, bude zobrazena ta stránka, která je umístěna v programu nejdříve. Ostatní jsou ignorovány ((TODO: v případě více stránek se stejným označením by mohly stránky rotovat. Dvě stránky označené R by byly stiskem každým RIGHT přepínány .... hmmm... ? :) ))
 +
 +=== Zarovnání textu ===
  
 Zarovnání textu se provádí pomocí rozdělení řádku znakem "|". Vše vlevo od znaku "|" je zarovnáno vlevo, vše vpravo je zarovnáno vpravo. Řádek, který neobsahuje znak "|" je zarovnán na střed. Zarovnání textu se provádí pomocí rozdělení řádku znakem "|". Vše vlevo od znaku "|" je zarovnáno vlevo, vše vpravo je zarovnáno vpravo. Řádek, který neobsahuje znak "|" je zarovnán na střed.
Řádek 226: Řádek 199:
   Centrovano   Centrovano
   Vlevo|Vpravo   Vlevo|Vpravo
 +
 +=== Proměnné ===
  
 Proměnné je možno použít pomocí znaku <html>$</html>. Pokud je potřeba bezprostředně za proměnnou vložit text a je potřeba ukončit název proměnné, je možno použít znak <html>#</html>. například pro text 12.25V potřebujeme za proměnnou vložit jednotku "V". Proměná, do které jsme si v sekci výpočtů připravili napětí na bateriích se jmenuje <html>$uBat</html>. Definice <html>$uBat V</html> by vygenerovala text 12.25 V. Bez mezery dostáváme neexistující název proměnné <html>$uBatV</html>. Proto v těchto případech použijeme znak <html>#</html>, čímž určíme, kde končí název proměnné, tedy <html>$uBat#V</html> vygeneruje text 12.25V. Proměnné je možno použít pomocí znaku <html>$</html>. Pokud je potřeba bezprostředně za proměnnou vložit text a je potřeba ukončit název proměnné, je možno použít znak <html>#</html>. například pro text 12.25V potřebujeme za proměnnou vložit jednotku "V". Proměná, do které jsme si v sekci výpočtů připravili napětí na bateriích se jmenuje <html>$uBat</html>. Definice <html>$uBat V</html> by vygenerovala text 12.25 V. Bez mezery dostáváme neexistující název proměnné <html>$uBatV</html>. Proto v těchto případech použijeme znak <html>#</html>, čímž určíme, kde končí název proměnné, tedy <html>$uBat#V</html> vygeneruje text 12.25V.
 +
 +=== Formát čísel ===
  
 Pro definici počtu desetinných míst použijeme znak <html>.</html>. Pro jedno desetinné místo použijeme výraz <html>$uBat.1</html>. Výsledkem může být například 12.2. Pro 0 desetinných míst použijeme <html>$uBat.0</html>. Pro automatický počet desetinných míst znak <html>.</html> neuvedeme. V kombinaci se specifikací počtu desetinných míst se ukončení názvu proměnné nepoužívá. Je možno použít <html>$uBat.3V</html>, což vygeneruje 3 desetinná místa 12.253V. Pro definici počtu desetinných míst použijeme znak <html>.</html>. Pro jedno desetinné místo použijeme výraz <html>$uBat.1</html>. Výsledkem může být například 12.2. Pro 0 desetinných míst použijeme <html>$uBat.0</html>. Pro automatický počet desetinných míst znak <html>.</html> neuvedeme. V kombinaci se specifikací počtu desetinných míst se ukončení názvu proměnné nepoužívá. Je možno použít <html>$uBat.3V</html>, což vygeneruje 3 desetinná místa 12.253V.
Řádek 234: Řádek 211:
   Baterie|$uBat.2V   Baterie|$uBat.2V
   Spotreba|$woutSUM#W   Spotreba|$woutSUM#W
 +
 +=== Datum a čas ===
  
 Příklady pro datum a čas (od verze 2.04) Příklady pro datum a čas (od verze 2.04)
Řádek 246: Řádek 225:
 Menic:     0.00W Menic:     0.00W
 Cas:       17:29 Cas:       17:29
-</code> 
- 
--- 
- 
-<code> 
-# 
-Moje FVE 
-$@Td#.$@Tm#.$@TY 
-</code> 
-Výsledek: 
-<code> 
-    Moje FVE     
-   12.09.2013    
-</code> 
- 
--- 
- 
-<code> 
-# 
-Datum a cas 
-$@Td#.$@Tm#.$@TY $@TH:$@Ti 
-</code> 
-Výsledek: 
-<code> 
-   Datum a cas   
-12.09.2013 17:29 
-</code> 
- 
--- 
- 
-<code> 
-# 
-Datum|$@Td#.$@Tm#.$@TY 
-Cas|$@TH:$@Ti:$@Ts 
-</code> 
-Výsledek: 
-<code> 
-Datum 12.09.2013 
-Cas     17:31:15 
 </code> </code>
  
mmdl.1379185796.txt.gz · Poslední úprava: 2013/09/15 03:09 (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki