Variáveis e Memória
Variáveis e Memória
O Framework WALK é responsável por executar o aplicativo POSXML compilado, e ao ser instalado no terminal POS, assume toda a responsabilidade de gerenciamento de memória e dispositivos do mesmo. Sendo assim, para executar uma aplicação em um terminal POS, basta escrever um arquivo no formato POSXML, compilá-lo e enviá-lo ao terminal.
O conceito de tipos de variáveis é também presente na linguagem POSXML, onde as mesmas podem ser do tipo string ou inteiro. Cada comando da linguagem POSXML exige um tipo de variável, que está descrito na explicação do funcionamento das mesmas.
É possível converter variáveis do tipo inteiro para string e vice-versa, bastando para isso utilizar os comandos inttostring e stringtoint.
Variáveis do tipo double (ponto flutuante, decimal) também podem ser utilizadas. Para tal, utiliza-se variáveis do tipo string com a casa decimal separada por . (ponto), e não por , (virgula).
Existe uma limitação de 511 variáveis por aplicação POSXML, sendo 256 do tipo string com tamanho máximo de 1K (1023 caracteres, sendo que um é utilizado automaticamente pela plataforma para alocar o ‘\0’), e 255 do tipo inteiro.
Ao declararmos uma variável com os comandos variavelint ou variavelstr, esta ficará na memória da aplicação até que o terminal seja desligado. Por este motivo, devemos ter o cuidado de definir no começo de nossa aplicação todas as variáveis utilizadas e limpa-las para não ocorrer erros no decorrer de nosso aplicativo.
As variáveis são compartilhadas entre as páginas, portanto é possível utilizar variáveis declaradas na página principal nas páginas subsequentes, como páginas de tickets de impressão e outras lógicas.
Ao desligar o terminal ou ocorrer uma atualização da página principal do aplicativo, todas as variáveis são desalocadas e a memória da aplicação POSXML é totalmente limpa.
Atualmente existe um limite de memória de 32K para carregamento de páginas POSXML compiladas.
É possível ter em um mesmo aplicativo várias páginas, sendo que o único impedimento da plataforma é que esta não ultrapasse 32K após ser compilada.
Todo comando POSXML que possuir um parâmetro cujo o nome contenha a palavra variavel (ex: variavelretorno), é obrigatório passar uma variável para aquele parâmetro. A passagem de variáveis é feita com a nomenclatura $(nomeDaVariavel), conforme pode ser observado abaixo:
<variavelstr valor="" variavel="strBuffer" /> <display linha="0" coluna="0" mensagem="$(strBuffer)" />
Quando no nome do parâmetro não tiver a palavra variavel, é possível passar tanto uma constante quanto uma variável. A passagem de constantes é feita como em toda linguagem de programação:
<display linha="0" coluna="0" mensagem="Hello World" />
Em variáveis string, ainda é possível passar para o comando apenas um trecho indexado da variável, assim como em outras linguagens de programação, utilizando ponteiros de variáveis.
No exemplo abaixo, a seguinte string seria exibida: H
<variavelstr valor="Hello World" variavel="strBuffer" /> <variavelint valor="0" variavel="intIndex" /> <display linha="0" coluna="0" mensagem="$(strBuffer[$(intIndex)])" />
No exemplo abaixo, a seguinte string seria exibida: e
<variavelstr valor="Hello World" variavel="strBuffer" /> <variavelint valor="1" variavel="intIndex" /> <display linha="0" coluna="0" mensagem="$(strBuffer[$(intIndex)])" />
No exemplo abaixo, a seguinte string seria exibida: ello World
<variavelstr valor="Hello World" variavel="strBuffer" /> <variavelint valor="1" variavel="intIndex" /> <display linha="0" coluna="0" mensagem="$(!strBuffer[$(intIndex)])" />
Neste último exemplo foi especificado o símbolo ! para que seja exibido os caracteres da posição definida em intIndex até o final da string. Quando o símbolo ! é omitido, somente o caracter definido na posição de intIndex é exibido no display do terminal POS.
