mmdl
no way to compare when less than two revisions
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Předchozí verzeNásledující verze | |||
— | mmdl [2013/09/23 09:15] – [Popis jayzka] mypower_cz | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== MMDL - Mypower Microlog Display Language ====== | ||
+ | |||
+ | ===== 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é [[mmdl# | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | ===== Ukázky programu ===== | ||
+ | |||
+ | * [[mmdl: | ||
+ | * [[mmdl: | ||
+ | * [[mmdl: | ||
+ | * [[mmdl: | ||
+ | |||
+ | ===== Komentáře ===== | ||
+ | |||
+ | Komentáře jsou v programu realizovány pomocí "< | ||
+ | |||
+ | Příklad komentáře v programu | ||
+ | |||
+ | // Obrazovky displaye | ||
+ | |||
+ | **Pozor! Komentáře na konci řádku nejsou funkční a jsou chápány jako syntaktická chyba** | ||
+ | |||
+ | Příklad **chybného** komentáře v programu | ||
+ | |||
+ | $win = $win1 + $win2 // soucet vykonu | ||
+ | |||
+ | Znak "< | ||
+ | |||
+ | Příklad **korektního** komentáře v programu | ||
+ | |||
+ | // soucet vykonu | ||
+ | $win = $win1 + $win2 | ||
+ | |||
+ | ===== Proměnné ===== | ||
+ | |||
+ | ==== Definice proměnných | ||
+ | |||
+ | * **$** Začátek proměnné. | ||
+ | * **@** 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é. | ||
+ | * **.** 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. | ||
+ | |||
+ | ==== Základní proměnné ==== | ||
+ | |||
+ | Proměnné začínají znakem < | ||
+ | |||
+ | Příklady definice proměnných: | ||
+ | |||
+ | $uFV1 | ||
+ | $uFV2 | ||
+ | $iarray | ||
+ | | ||
+ | V názvech proměnných jsou rozdílně vnímána malá a velká písmena. Proměnné < | ||
+ | |||
+ | ==== Speciální proměnné ==== | ||
+ | |||
+ | Speciální proměnné se vyznačují použitím modifikátoru < | ||
+ | |||
+ | === Analogové vstupy === | ||
+ | |||
+ | Následující příklady jsou různé hodnoty pro analogový pin 11. | ||
+ | |||
+ | $@a11 => průměrná hodnota z převodníku pinu 11, například 578 | ||
+ | $@r11 => efektivní hodnota z převodníku pinu 11, například 572 | ||
+ | $@s11 => okamžitá hodnota z převodníku pinu 11, například 570 | ||
+ | $@m11 => minimální hodnota z převodníku pinu 11, například 27 | ||
+ | $@x11 => maximální hodnota z převodníku pinu 11, například 762 | ||
+ | |||
+ | $@A11 => propočtená průměrná hodnota dle nastavení rozsahu pro pin 11, například 13.753 | ||
+ | $@R11 => propočtená efektivní hodnota dle nastavení rozsahu pro pin 11, například 231.2 | ||
+ | $@S11 => propočtená okamžitá hodnota dle nastavení rozsahu pro pin 11, například 12.302 | ||
+ | $@M11 => propočtená minimální hodnota dle nastavení rozsahu pro pin 11, například 21.552 | ||
+ | $@X11 => propočtená maximální hodnota dle nastavení rozsahu pro pin 11, například 325.622 | ||
+ | |||
+ | === Datum a čas === | ||
+ | |||
+ | (od verze 2.04) | ||
+ | |||
+ | $@Td => Den včetně dodatečné nuly. 01 - 31 | ||
+ | $@Tj => Den. 1 - 31 | ||
+ | $@Tm => Měsíc včetně dodatečné nuly. 01 - 12 | ||
+ | $@Tn => Měsíc. 1 - 12 | ||
+ | $@TY => Čtyřciferný rok. 2013 | ||
+ | $@Ty => Dvojciferný rok. 13 | ||
+ | $@Tg => Hodiny ve dvanáctihodinovém času. 1 - 12 | ||
+ | $@TG => Hodiny ve čtyřiadvacetihodinovém času. 0 - 23 | ||
+ | $@Th => Hodiny ve dvanáctihodinovém času včetně dodatečné nuly. 01 - 12 | ||
+ | $@TH => Hodiny ve čtyřiadvacetihodinovém času včetně dodatečné nuly. 00 - 23 | ||
+ | $@Ti => Minuty včetně dodatečné nuly. 00 - 59 | ||
+ | $@Ts => Sekundy včetně dodatečné nuly. 00 - 59 | ||
+ | |||
+ | == Příklad zobrazení data a času == | ||
+ | |||
+ | < | ||
+ | # | ||
+ | $@Td# | ||
+ | $@TH: | ||
+ | </ | ||
+ | Výsledek: | ||
+ | < | ||
+ | | ||
+ | 17: | ||
+ | </ | ||
+ | |||
+ | == Příklad výpočtu počtu sekund od půlnoci a zobrazení času == | ||
+ | |||
+ | < | ||
+ | $whrs = $@TH * 3600 | ||
+ | $wmin = $@Ti * 60 | ||
+ | $wx = $@Ts + $wmin + $whrs | ||
+ | |||
+ | # | ||
+ | cas: | ||
+ | sekund: | ||
+ | </ | ||
+ | |||
+ | Výstup: | ||
+ | |||
+ | < | ||
+ | cas: 01:08:58 | ||
+ | sekund: | ||
+ | </ | ||
+ | |||
+ | Další příklady pro [[mmdl: | ||
+ | |||
+ | ==== Modifikátor počtu desetinných míst ==== | ||
+ | |||
+ | Proměnné v sekci pro stránky displaye může pomocí speciálního modifikátoru určit, kolik desetinných míst, či v jakém formátu bude číslo zobrazeno. < | ||
+ | |||
+ | === Pravidla === | ||
+ | |||
+ | * **$X.0** zobrazí pouze celou část čísla. Například 17 | ||
+ | * **$X.1** až **$X.4** zobrazí 1 - 4 desetinná místa s doplněním zbývajících nul do požadovaného počtu desetinných míst. Například 17.85 pro < | ||
+ | * **$X.** zobrazí automatický počet desetinných míst. 0 - 4, bez zbývajících nul. | ||
+ | |||
+ | * (od verze 2.04) | ||
+ | * **$X.R** zobrazí celou část čísla. Narozdíl od výše uvedených se neprovádí se úprava na jednotky k, M, G, T. | ||
+ | |||
+ | [[mmdl: | ||
+ | |||
+ | |||
+ | |||
+ | ===== Sekce ===== | ||
+ | |||
+ | ==== Výpočty ==== | ||
+ | |||
+ | Sekce výpočtů slouží pro přípravu a kalkulaci hodnot před jejich použitím pro zobrazení na displayi. Pro výpočty se používají základní matematické rovnice s použitím matematických operátoru pro součet < | ||
+ | |||
+ | Příklad sekce výpočtů | ||
+ | |||
+ | $wIN1 = $@A10 * $@A11 | ||
+ | $wIN2 = $@A12 * $@A13 | ||
+ | $wINsum = $wIN1 + $wIN2 | ||
+ | |||
+ | Popis řádků: | ||
+ | |||
+ | $wIN1 = $@A10 * $@A11 | ||
+ | |||
+ | Do proměnné < | ||
+ | |||
+ | $wIN2 = $@A12 * $@A13 | ||
+ | |||
+ | Do proměnné < | ||
+ | |||
+ | $wINsum = $wIN1 + $wIN2 | ||
+ | |||
+ | Do proměnné < | ||
+ | ==== Stránky ==== | ||
+ | |||
+ | 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 < | ||
+ | |||
+ | === Definice stránky === | ||
+ | |||
+ | Každá stránka začíná symbolem < | ||
+ | |||
+ | Příklad definice stránky s možností ji vyvolat pomocí tlačítka < | ||
+ | |||
+ | #R | ||
+ | Toto je stranka | ||
+ | po stisku RIGHT | ||
+ | |||
+ | Běžná stránka je bez definice tlačítka | ||
+ | |||
+ | # | ||
+ | Toto je bezna | ||
+ | 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 " | ||
+ | |||
+ | # | ||
+ | Centrovano | ||
+ | Vlevo|Vpravo | ||
+ | |||
+ | === Proměnné === | ||
+ | |||
+ | Proměnné je možno použít pomocí znaku < | ||
+ | |||
+ | === Formát čísel === | ||
+ | |||
+ | Pro definici počtu desetinných míst použijeme znak < | ||
+ | |||
+ | # | ||
+ | Baterie|$uBat.2V | ||
+ | Spotreba|$woutSUM# | ||
+ | |||
+ | === Datum a čas === | ||
+ | |||
+ | Příklady pro datum a čas (od verze 2.04) | ||
+ | |||
+ | < | ||
+ | # | ||
+ | Menic:| $wAC3k.2W | ||
+ | Cas: | $@TH:$@Ti | ||
+ | </ | ||
+ | Výsledek: | ||
+ | < | ||
+ | Menic: | ||
+ | Cas: 17:29 | ||
+ | </ | ||
mmdl.txt · Poslední úprava: 2013/09/23 15:16 autor: 127.0.0.1