Principi di progettazione del pannello

Nell’architettura μPanel, il pannello grafico non è memorizzato nell’APP che gira sul dispositivo mobile, ma è completamente definito e inviato dal microcontrollore collegato al modulo WiFi. La definizione del pannello si basa su una linea super-compatta di testo, che definisce non solo la definizione degli elementi del pannello ma anche il layout. Grazie a questa architettura, ogni micro-controllore può facilmente inviare all’App μPanel la descrizione del layout e gli oggetti, utilizzando una quantità molto limitata di memoria. Inoltre, il micro-controllore può anche cambiare il pannello durante la fase di esecuzione semplicemente inviando una nuova stringa. Immaginate un pannello che cambia dinamicamente un menu grafico o una multi pagina…

non è interessante? Esaminiamo i principi di progettazione!

Il pannello può essere progettato organizzando il contenuto in tabelle e sotto-tabelle di dimensioni arbitrarie. La struttura del pannello è molto simile a quello di una pagina web! Come probabilmente sai molto bene, il codice HTML in combinazione con i fogli di stile CSS è un linguaggio molto potente, che permette di creare layout complessi e curati. Purtroppo, il codice HTML richiede anche un sacco di tag e caratteri, che consumano molta memoria del micro-controllore. Non preoccuparti! μPanel utilizza un linguaggio speciale che è stato specificamente concepito per questa applicazione dagli ingegneri μPanel. Questo linguaggio si chiama HCTML (Hyper Compressed Text Markup Language) e permette di codificare molti elementi HTML con un singolo carattere o giù di lì.

 

Non hai familiarità con HTML e programmazione web? Non preoccuparti! Il HCTML è così intuitivo che non vi è alcuna necessità di conoscere alcun linguaggio di programmazione per la progettazione del pannello. Basta descrivere quello che ti serve sul pannello ed il HCTML farà il resto per te.

Il Simulatore Online ti aiuterà durante la progettazione della tu aVirtual APP.

 

Nell’ HCTML, ci sono 6 tipi di entità:

Constructors

Constructors

I Constructors sono caratteri che definiscono il layout del pannello. Gli attuali costruttori supportati sono:

  • { }
  • _
  • |

Le parentesi graffe definiscono un contenitore che può essere utilizzato per contenere elementi del pannello o altri costruttori. In realtà, si può pensare a questo contenitore come una tabella (HTML). La tabella inizia alla parentesi aperta e termina in corrispondenza della parentesi di chiusura. La linea orizzontale (underscore) definisce la prima e le successive righe della tabella, mentre la linea verticale (pipe) definisce sia la prima e le successive colonne. Si prega di notare che:

a) una parentesi di apertura deve avere la parentesi chiusa corrispondente;

b) ogni riga deve avere lo stesso numero di colonne.

Esempio
Creare un contenitore per il contenimento di oggetti (o sotto-contenitori) disposti su una tabella 2×2:
{ some content | some content _ some content | some content }

Si prega di notare che nel precedente esempio i simboli per la prima riga (_) e la prima colonna (|) sono stati evitati in quanto il sistema li inserisce automaticamente non appena alcuni contenuti (oggetti o sub-contenitore) sono inseriti nel contenitore. La stessa tabella 2×2 può essere ottenuta specificando anche questi due simboli, se lo si desidera, come segue:

{_| some content | some content _ some content | some content }

Potrai scoprire più tardi che i primi simboli di riga e colonna sono necessari quando è necessario modificare gli stili o gli eventi della prima riga o colonna.

Stylers

Styler

Gli Stylers sono sequenze di uno o più caratteri minuscoli che specificano l’aspetto grafico di contenitori o oggetti. Di solito, ogni styler definisce o modifica alcune specifiche caratteristiche grafiche. Ogni styler corrisponde a uno o più definizioni di stile HTML. Alcuni stylers hanno effetto solo sul contenitore in cui sono utilizzati, altri in tutti gli oggetti contenuti e sotto-contenitori. Stylers che hanno effetto solo su un unico contenitore o un oggetto sono classificati e contrassegnati come spot styler , gli altri come block styler.

Uno dei più importanti parametri grafici con cui dobbiamo fare conoscenza è rappresentato dalle dimensioni. μPanel adatta tutti i contenitori in base alla dimensione orizzontale del loro contenitore principale. Per il primo contenitore, viene utilizzata la dimensione orizzontale dell’intero display. Tutte le dimensioni sono specificate in percentuale. La dimensione degli oggetti viene solitamente adattata rispettando l’intera dimensione orizzontale del display utilizzando un fattore di scala definito dall’utente che ha effetto sul contenitore corrente e in tutti i suoi sotto-contenitori (block styler).

Si noti che, se non espressamente richiesto, anche la dimensione verticale degli oggetti e contenitori viene adattata rispetto alla dimensione orizzontale dei contenitori. Pertanto, un contenitore con dimensioni di 50% x 50% apparirà quadrato su ogni display e coprirà il 50% dello spazio orizzontale.

Per applicare uno styler ad un oggetto, consultare la sintassi dell’oggetto generale.

Per applicare uno styler a un costructor è sufficiente utilizzare lo styler dopo il simbolo del costrutor. In questo caso, si prega di notare la differenza tra i seguenti casi (in cui viene creata una tabella con una singola cella):

  • {styler content} Lo styler ha effetto sul simbolo del costruttore alla sua sinistra, il che significa sull’intera tabella contenitore
  • {_styler contentLo Styler ha effetto sul simbolo del costruttore alla sua sinistra, il che significa sull’intera riga della tabella
  • {_|styler content} Lo styler ha effetto sul simbolo del costruttore alla sua sinistra, il che significa sulla cella della tabella

La tabella seguente riporta l’elenco degli styler attualmente disponibili (per rendere la descrizione più chiara, per ogni styler vengono riportati uno o più esempi  . Questi esempi possono essere provati nel simulatore on-line. Alcuni esempi fanno uso dell’oggetto di testo. Il testo può essere aggiunto al pannello utilizzando la sintassi: T: testo;)

Tabella con descrizione breve:

Styler Mnemonic Type SHORT Description
% Dimensione Spot Definisc ela dimensione di ciascun contenitore o oggetto. see details
* Dimensione oggetto Block Definisce la dimensione dell’oggetto che contiene lo styler, o di tutti gli oggetti e sub-contenitori. see details
! Colore Sfondo Spot Definisce il colore di sfondo da utilizzare nel contenitore o per disegnare il relativo oggetto. see details
# Colore Block Definisce il colore da utilizzare nel contenitore, in tutti gli oggetti del contenitore e in tutti i sub-contenitori. see details
t Allinea in Alto Block Allinea verticalmente oggetti o sotto-contenitori nella parte superiore del contenitore. see details
b Allinea in Basso Block Allinea verticalmente oggetti o sotto-contenitori sul fondo del contenitore. see details
m Allinea al centro Block Allinea verticalmente oggetti o sotto-contenitori al centro del contenitore. see details
< Giustifica a Sinistra Block Allinea orizzontalmente oggetti o sotto-contenitori sul lato sinistro del contenitore see details
^ Giustifica al Centro Block Allinea orizzontalmente oggetti o sotto-contenitori nel centro del contenitore. see details
> Giustifica a Destra Block Allinea orizzontalmente oggetti o sotto-contenitori sul lato destro del contenitore. see details
w Window (overflow) Block Impedisce la comparsa delle barre di scorrimento nel caso in cui la dimensione del pannello supera l’area di visualizzazione. see details
Bordo Spot Definisce il bordo da utilizzare per il contenitore o l’oggetto corrente. see details
f Font Block Definisce la font da utilizzare nel contenitore o oggetto corrente e in tutti i sotto-contenitori. see details
r Raggio Spot Definisce il raggio per disegnare gli oggetti nel contenitore o oggetto corrente. see details
p Padding Spot Definisce la distanza tra bordo (i confini del contenitore) e contenuti per disegnare gli oggetti nel contenitore o oggetto corrente. see details
d Displacement
(Spostamento Relativo)
Spot Sposta il contenitore o l’oggetto corrente rispetto alla sua posizione prevista see details
o Opacità Spot Definisce l’opacità del contenitore o oggetto. see details
a Angolo (rotazione) Spot Definisce la rotazione del contenitore o oggetto see details
g Immagine di Sfondo Spot Definisce l’immagine da utilizzare per lo sfondo contenitore o oggetto. see details
h Ombra Spot Visualizza l’ombra del contenitore o dell’oggetto. see details
n Altezza Linea Spot Definisce l’altezza della linea di testo. see details
k Display Spot Definisce il tipo di visualizzazione per il contenitore o l’oggetto corrente. see details
@ At
(Posizione Assoluta)
Spot Imposta manualmente la posizione sia del contenitore che dell’oggetto sul display. see details
z z-index Spot Imposta la z-index sia del contenitore che dell’oggetto. Elementi con z-index più alto appariranno davanti a elementi con z-index inferiore see details
s Caricamento Styler Class Spot Richiama una class styler precedentemente memorizzata. Questo styler permette di caricare una class styler, che deve essere salvata in precedenza, e di applicarla a più contenitori o oggetti. see details
~ global ID Spot Questo styler tagga l’elemento di un pannello (oggetto o costruttore) con un numero chiamato ID globale.L’ID Globale permette di fare riferimento all’oggetto / costruttore etichettato durante l’utilizzo del pannello (tempo di esecuzione). Si noti che l’ID globale non è l’oggetto ID , e che gli oggetti possono anche avere ID globale (in aggiunta al loro ID oggetto) see details

Tabella con descrizione completa

Styler Mnemonic Type Description
% Size Spot Define size and scale of either the container or the container-like objects

The syntax is %x,py,a,b where x and y are the percentages of the horizontal and vertical size, respectively. a and b are optional parameters that represent the scale factor, for x and y respectively. Negative scale factors can be used to obtain a mirror effect on the corresponding axis. p is an optional flag that precedes y.

The only valid option for p: y
and used to scale the size with respect to the container height instead of the container width.

The last styler parameters can be omitted, so all the following stylers are valid:

%x,y
%x
%,y
%,,a,b
%,,,b

Examples

Create a container with size 80% x 40%:

{%80,40}

Create a container with size 80% x 40% with y-mirrored content:

{%80,40,,-1}

Create a container that cover the whole display area:

{%100,y100}

* Object Size Block Define the size of the object that contains the styler, or of all the objects and sub-container.

The syntax is *x where x is the size factor, multiplied by 10, to be applied to the object size. The initial objects’ size is automatically scaled with respect to the display width.

Please note that, x = 10 will not change the object size; x = 20 will double the object size with respect the the current size, and so on…
Please note also that the scale factor is a block styler and it is thus applied on the current object or all the object of the container and sub-containers.

A particular function is obtained if x is . (dot). In this case the object size is reset to the default value proportional to the parent container size. This function is useful when objects with size proportional to the container are required.

Due to the block nature of this styler, it is possible to scale the object size of all the panel’s object simply prefixing the panel definition with the * styler.

Example

Create a container with two texts of double size

*20{T:A;_T:B;}

! Background
color
Spot Define the background colour to be used in the container or for drawing the related object.

The basic syntax is !abc where a,b and c are 3 hexadecimal digits representing the R G B components of the colour. This syntax corresponds to the classic short HTML representation of colours (3 digits). It is also possible to create colour gradients specifying two colours with the following extended syntax: !abc,def where def represents the second colour

Examples

Create a container of size 80% x40% with background color gradient from white to blue

{%80,40!FFF,00F}

Create a container with background color blue, with a single cell of background color red containing the text “OK”;

{!00F|!F00T:OK;}

# Color Block Define the colour to be used in the container, in all objects of the container and in all sub-containers.

The syntax is #abc where a,b and c are 3 hexadecimal digits representing the R G B components of the colour. This syntax corresponds to the classic short HTML representation of colours (3 digits).

Example

Create a container with colour red and text OK

{#F00T:OK;}

t Top Block Vertically align objects or sub-containers at the top of the container.

The syntax is t

Example

Create a container of size 50% x 50%, border, vertical align top and text OK

{-%50,50tT:OK;}

b Bottom Block Vertically align objects or sub-containers at the bottom of the container.

The syntax is b

Example

Create a container of size 50% x 50%, border, vertical align top and text OK

{-%50,50bT:OK;}

m Middle Block Vertically align objects or sub-containers in the middle of the container.

The syntax is m

Example

Create a container of size 50% x 50%, border, middle align and text OK

{-%50,50mT:OK;}

< Left Block Horizontally align objects or sub-containers at the left side of the container.

The syntax is <

Example

Create a container of size 50% x 50%, border, left align and text OK

{%50,50<-T:OK;}

^ Center Block Horizontally align objects or sub-containers in the center of the container.

The syntax is ^

Example

Create a container of size 50% x 50%, border, center align and text OK

{%50,50-^T:OK;}

> Right Block Horizontally align objects or sub-containers at the right side of the container.

The syntax is >

Example

Create a container of size 50% x 50%, right align and text OK

{%50,50->T:OK;}

w Window (overflow) Block Prevent the appearance of the scroll bars in the case the panel size exceeds the display area. This styler is normally used to style the desktop (panel first container). Please refer to the Desktop object to know more about it.

The syntax is w (the use of stylers in the Desktop object is Dstylers;)

Example

create a blue table of 50% x 1000% preventing the appearance of scroll bars

Dw;{%50,1000!00F}

Border Spot Define the border to be used for the current container or object.

The syntax is -xxxxN where xxxx are one or more style options and N is the border width (in pixels scaled with respect to the display width).

The current supported style options are: d (dotted), h (dashed), s (solid), b (double), g (groove), c (collapse), e (separate). The default style is solid.

In addition to these standard flags, two special flags j and k can be used to enable and disable, respectively, the border of all the elements during the development of the layout. Knowing exactly the size of the different containers and object may be of great help during the panel design.

A special meaning is assigned to N = 0: border and margins are cleared so that the object or container can use 100% of the available area

Examples

1. Create a container with size 50% x 50% and dashed border line of width 5 scaled pixels

{%50,50-h5}

2. Create a flag with text taking advantage of the zero border -0

{{-0%10,6|!0F0|!FFF|!F00}|T:Made in Italy;}

f Font Block Define the font to be used in the current container or object and in all the sub-containers.

The syntax is fxxx where xxxx are one or more style options.

The current supported style options are: b (bold), i (italic), a (arial), c (courier), n (disable font).

Example

Create a container with bold-italic-arial font and the text OK

{fbiT:OK;}

r Radius Spot Define the radius for drawing objects in the current container or object. Currently, this styler takes effect only on the border.

The syntax is rN where N is the radius in scaled pixels

Example

Create a container 50% x 50% with solid border with radius 50 eq. pixels

{%50,50-1r50}

p Padding Spot Define the distance between border (container boundaries) and content for drawing objects in the current container or object.

The syntax is pN where N is the distance in scaled pixels

Example

Create a container with border, the text OK and padding 20 eq pixels

{p20-T:OK;}

d Displacement Spot Displace the current container or object with respect to its expected position

The syntax is dx,y where x and y are respectively the horizontal and vertical displacements scaled with respect to the horizontal display size.

Example

Create two containers, white and blue, of size 50% x 50% overlapping them almost completely

{%50,50!FFF}{d10,-40%50,50!00F}

o Opacity Spot Define the opacity of the container or object.

The syntax is oN where N is the opacity in percentage. Opacity of 100 means full opacity (not transparent). Opacity of 0 means full transparent.

Example

Create two containers, white and blue, of size 50% x 50% overlapping them almost completely and making the blue one transparent (opacity 70%)

{%50,50!FFF}{o70d10,-40%50,50!00F}

a Angle (rotation) Spot Define the rotation of the container or object.

The syntax is aN,x,y where N is the rotation angle in degrees (clockwise), x and y represent respectively the horizontal and vertical position of the rotation centre in percentage of the object size (e.g. to rotate an object by 90 degrees around its right top corner: a90,100,0)

X and Y are optional and if not specified their values will be assigned to 50 (i.e. the object is rotated around its centre)

Example

Create two nested centered containers of size 50% x 50%, white and blue with the nested one rotated by 45 degrees (around its centre)

{%50,50!FFF^{a45%50,50!00F}}

g Background image Spot Define the image to be used for the container background or object

The syntax is gxxxN where xxxx are styler otions and N is the number of the picture to be used. Please refer to the list of pictures.

The available options are: n (do not repeat the image if the area to cover is larger than the picture. If this happens the image will be enlarged to cover the whole area)

Example

Create a containers of size 50% x 50% and cover the background with the image number 1

{%50,50g1}

h Shadow Spot Display either the container’s shadow or the object’s shadow.

The syntax is hxN,CCC,M where x is one char option, N represents the position of the shadow in pixels, CCC the shadow 12-bit color represented with 3 hexadecimal digits, M the blur distance.

The available shadow options are: t

The t options applies the shadow to the text instead of the container.

Example

Create a square blue container with faint defined white shadow:

{%50,50!00Fh5,FFF,30}

n Line height Spot Define the text line height.

The syntax is nN where N represents the line-height with respect the font-size. N = 10 corresponds to a line height equals to the font-size.

Example

Create a box with the text “Hello World” over 2 lines whose height is 2 times the font height

{-%1n20T:Hello World;}

k Display Spot Define the display type for the current container or object. Currently this styler set the display type to block. This styler can be used for instance to make text objects as block.

The syntax is k

Example

Create a block of text with size 80% blue background, rotated by 15 degrees

Tka15,0%80!00F:Hello World!;

@ At
(Absolute position)
Spot Manually set the position of either the container or the object on the display.

The syntax is @x,py where x and y are the horizontal and vertical position to be assigned to the container or object, and p is one char option. Please note that, by default, both the coordinates are scaled with respect to the display width and are given in percentage.

The available option are: y

The y option asks to scale the vertical position with respect to the display height instead of the display width.

Example

Display a X at the display centre

{@50,y50T:X;} Please note the y option before the height coordinate.

z z-index Spot Set the z-index of either the container or the object. Elements with higher z-index will appear in front of elements with lower z-index. This styler is useful when some elements overlaps as a consequence of the displacement styler (d) of absolute positioning styler (@). By default, each element has z-index of 0. Positive and negative indexes can be used. The maximum allowed value is 999.

Example

Overlap two boxes at the centre of the display, making the red one in front of the blue one.

{z1@40,y40%20,20!F00}{@50,y50%20,20!00F}

s Styler Class Load Spot Recall a previously stored styler class. This styler permits to load a styler class, which has to be previously saved, and to apply it to multiple containers or objects. Styler class can be saved using the virtual S object. Please refer to the object table to know more about this virtual object.

The syntax is: sn where n is the number of saved styler class to be loaded.

Example

Define a styler class with blue background, rounded solid border, yellow color, white box shadow, padding, big fonts, and apply it to 3 text boxes.

S1*20r20-!00F#FF0p15h3,FFF,5;/Ts1:1;Ts1:2;Ts1:3;

~ Global ID assignment Spot This styler assigns a decimal number, called Global ID, to objects or containers. The global ID permits to identify a panel element (object/container) during the run time.

The syntax is: ~n where n is the global ID number, which can be any decimal value (integer).

Example

Define a container with size 50% x 50%, background color white and assign to it the Global ID number 31

{~31%50,50!FFF}

Events

Events

Gli events sono sequenze di caratteri minuscoli che specificano come il sistema deve reagire quando l’utente interagisce con il contenitore o un oggetto. Alcuni oggetti, come pulsanti e interruttori, hanno i loro eventi di default già definiti. L’utente, tuttavia, può aggiungere evennt ad altri elementi del pannello. Come esempio, il progettista può aggiungere un evento clic su un LED, un’immagine o un contenitore e così via. Quando l’utente genera un tocco (click), il μPanel invierà l’evento corrispondente al modulo Wi-Fi per essere poi consegnato al controller. La sintassi degli events è simile a quella degli stylers.

Quando un events viene attivato, un messaggio verrà inviato dal modulo WiFi al controller. Il messaggio ha il seguente formato:

#.EVT:N:C

Dove N è il numero di evento specificato dal progettista nel codice HTML e C è il codice di evento specifico.

Event Mnemonic Type Description
. Click / Touch Spot Enable the click event on the container or object. The event fires when the user click or touch the element.

The syntax is .xN where x is one or more option characters and N is the event number to be used. The event number will be sent to the controller when the event triggers.

The available options are: . (dot)

The option . (dot) enables the touch-down and touch-up events instead of click/touch

Event Codes

Click / Touch: 1
Mouse down / Touch down: 2
Mouse up / Touch up: 3

Example

Create a container with size 50% x 50%, blue color with click event (number 1)

{%50,50!00F.1}

Example 2

Create a container with size 50% x 50%, blue color with touch-down and touch-up events (number 1)

{%50,50!00F..1}

Objects

Objects

Gli oggetti rappresentano il contenuto effettivo del pannello. Ci sono due tipi di oggetti:

1) oggetti standard, che sono gli elementi che l’utente vede sul pannello e con cui interagisce;
2) oggetti virtuali, che sono elementi invisibili utilizzati per implementare alcune funzioni speciali.

Sia oggetti standard e virtuali necessitano della seguente sintassi generale, in cui ogni definizione dell’oggetto inizia con il suo identificatore maiuscolo e termina con un punto e virgola (;)

K [ID] [type] [stylers] [events] [: param 1 : param 2 …];

Dove:

  • K: è un carattere maiuscolo che identifica il tipo oggetto
  • ID: è un carattere nell’intervallo 0-9 o A-Z (maiuscolo) che rappresenta l’istanza di oggetto
  • type: è una sequenza di 1 o più caratteri alfanumerici maiuscoli che specificano un sottotipo dell’oggetto K
  • stylers: è una sequenza di 1 o più caratteri alfanumerici minuscoli che rappresenta lo stile da applicare all’oggetto
  • events: è una sequenza di 1 o più caratteri alfanumerici minuscoli che rappresentano gli eventi da assegnare all’oggetto
  • param: è una sequenza di parametri alfanumerici (sia minuscole e maiuscole) richiesti dall’oggetto. Ogni parametro è preceduto da un simbolo di due punti (:)
  • ; è terminatore dell’oggetto (obbligatorio) n (;)

Si prega di notare che, i campi contenuti in [] potrebbero essere opzionali o non richiesti per alcuni tipi di oggetti.

Gli oggetti standard disponibili sono:

Gli oggetti virtuali disponibili sono:

  • STYLER CLASSESS

Le classi Styler sono oggetti virtuali che possono essere utilizzati per salvare una serie di styler per essere utilizzati con altri oggetti o contenitori. Tutti gli styler definiti in questo oggetto sono memorizzati e possono essere richiamati con la s styler. La sintassi è:

S ID stylers ;

 

Esempio:
definire una classe styler (ID = 1) con bordo, sfondo bianco, colore rosso, doppia dimensione font, e utilizzarlo con un oggetto di testo
Definizione Classe Styler: S1*20#F00!FFF;
Utilizzo Classe Styler (con oggetto testo): Ts1: Ciao;
Esempio completo da testare al simulatore:  S1*20#F00!FFF;Ts1:Hello World;

Macros

Macros

Le Macro sono elementi HCTML il cui codice può essere definito dall’utente. Le macro lavorano in due fasi:
1) definizione
2) utilizzo
Le macro sono utili per rendere il codice compatto quando alcuni elementi complessi sono richiesti molte volte nella creazione del pannello.

Definizione Macro

Macro può essere definita utilizzando la seguente sintassi:

K ID HCTML_CODE $
  • K: carattere maiuscolo fisso che rappresenta l’inizio della definizione di macro
  • ID: un carattere alfanumerico maiuscolo nel range 0-9 o A-Z che identifica la macro
  • HCTML_CODE: any HCTML qualsiasi codice HCTML per essere sostituito l’utilizzo di macro. Ogni carattere può essere utilizzato con eccezione del simbolo del dollaro ($) che identifica la fine della macro.
  • $: Simbolo che termina la definizione della macro

Il codice HCTML della macro può contenere anche i parametri che possono essere specificati in modo dinamico durante l’utilizzo della stessa. Per includere i parametri in un punto specifico del codice, è sufficiente inserire un punto interrogativo (?)

Esempio
Creare una macro (ID = 1) di un tasto definito dall’utente (blu gradiente di sfondo in stile, bordi arrotondati, di colore bianco, larghezza 30%) con ID pulsante e il testo come parametri di macro.
Definizione Macro: K1: B 00F, 88Fr20 # FFF% 30:;?!? $

Il parser HCTML può anche assegnare automaticamente gli ID progressivi per gli oggetti all’interno del Macro. Per utilizzare l’ID automatico è sufficiente inserire un punto interrogativo doppia (??) subito dopo ID dell’oggetto. Tuttavia, si ricorda che, l’assegnazione partirà da 0 e aumenta di 1 ad ogni utilizzo di macro. Non sono stati sviluppati meccanismi per prevenire che gli ID assegnati automaticmente coincidano con eventuali ID assegnati manualmente ad oggetti dal progettista!

Esempio
Creare una macro (ID = 2) di un tasto definito dall’utente (blu gradiente di sfondo in stile, bordi arrotondati, di colore bianco, larghezza 30%) con l’identificazione pulsante assegnato automaticamente e il testo come parametri macro.
Definizione Macro: K2:B??!00F,88Fr20#FFF%30:?;$

Le Macro possono essere nidificate (es. la definizione di una macro può contenere una macro)

Uso delle Macro

Macro può essere utilizzato come segue:

J ID (Param 1,Param 2,Param 3)

J: fisso carattere maiuscolo che rappresenta l’utilizzo di macro
ID: un carattere alfanumerico maiuscolo nel range 0-9 o A-Z che identifica la macro da utilizzare
Param: uno o più parametri separati da virgole richiesti dalla macro. I parametri devono essere racchiusi tra parentesi (). Se la macro non richiede parametri, le staffe possono essere evitati.

  • J: Carattere fisso Maiuscolo che rappresenta l’utilizzo della macro
  • ID: un carattere alfanumerico maiuscolo nel range 0-9 o A-Z che identifica la macro da utilizzare
  • Param: uno o più parametri separati da virgole richiesti dalla macro. I parametri devono essere racchiusi tra parentesi (). Se la macro non richiede parametri, le staffe possono essere evitati.

Esempio
Creare una macro (ID = 3) di un tasto definito dall’utente con ID pulsante assegnato e testo fisso automaticamente (gradiente di sfondo blu stile, bordi, colore bianco, larghezza 30% arrotondato). Utilizzare la macro per creare due pulsanti faccia a faccia
Definizione Macro : K3:B??00F,88Fr20#FFF% 30:Press;$
Utilizzo Macro: {J3 | J3}

Esempio
Creare una macro (ID = 4) di una definizione pulsante parziale con ID pulsante (blu gradiente di sfondo in stile, bordi, colore bianco, larghezza 30% arrotondato) assegnato automaticamente e senza la definizione del testo. Utilizzare la macro per creare due pulsanti faccia a faccia con testi diversi.
Macro Definizione: K4:!B??00F,88Fr20#FFF%30$
utilizzo Macro: {J4: Testo1; | J4: Text2;}

Esempio
Creare una macro (ID = 1) di un LED con ID assegnato automaticamente e stato iniziale come parametro verde. Utilizzare la macro per creare una matrice 4×4 di LED, girando su quelli dell’ultima colonna.

soluzione più semplice (115 caratteri):
definizione Macro: K1:L??G:;?$
utilizzo macro: /{|J1(0)|J1(0)|J1(0)|J1(1)_|J1(0)|J1(0)|J1(0)|J1(1)_|J1(0)|J1(0)|J1(0)|J1(1)_|J1(0)|J1(0)|J1(0)|J1(1)}

utilizzando macro nidificate (51 caratteri):
definizioni Macro: K1:L??G:?;$K2:_|J1(0)|J1(0)|J1(0)|J1(1)$
utilizzo macro: /{J2J2J2J2}

soluzione più breve (43 caratteri):
definizioni Macro: K1:|L??G:$K2:_J10;J10;J10;J11;$
utilizzo macro: /{J2J2J2J2}

 

Tags

Tags

I tag sono simboli che rappresentano semplici elementi HTML. I tag vengono utilizzati per modificare leggermente il layout del pannello. La tabella che segue riporta i tag disponibili e ne descrive il loro utilizzo.

Tag Mnemonic Description
/ New Line
<BR>
Introduce una nuova linea nel layout. L’altezza della nuova linea corrisponde all’attuale line-height. Una diversa altezza può essere specificata.

La sintassi del tag è: / N, dove N è un numero opzionale che specifica l’altezza della nuova linea. N = 10 significa una linea altezza piena, N = 20 indica una linea doppia altezza, ecc …

Esempio
Creare due messaggi di testo, uno sotto l’altro lasciando una doppia altezza linea tra di loro
{^T:First Line;_|/20T:Second Line;}

= Horizontal Line
<HR>
Introduce una linea orizzontale nel layout.

La sintassi del tag è: =

Example
Creare una lista di testo separata da una linee orizzontali
{^T:First;=T:Second;=T:Third;}

& Space
&nbsp;
Introduce un piccolo spazio nel layout.

La sintassi del tag è: &

Example
Create two LEDs with a little space between them
{L1G0:0;&L2G0:0;}