ServerU - Utilitário LCM Paralelo
A maioria dos appliances ServerU vem com um display de LCM (Liquid Crystal Module) e um keypad com 4 teclas. Esse equipamento de entrada/saída é completamente programável e scriptável.
Disponibilizamos um utilitário de linha de comando (CLI) chamado serveru-pcm-util que tem a seguinta sintaxe:
./serveru-plcm-util [-stop|-On|-Off|-DispOff|-DispOn|-LCM1|-LCM2|-Keypad|-Read1|-Read2|-Clear]
Esse utilitário está disponível com acesso plenos ao código-fonte, que pode ser usado como referência caso queira desenvolver algo você mesmo. De qualquer forma o utilitário é feito de forma amigável para fazer script em qualquer linguagem, incluindo saídas facilmente parseáveis.
Antes de usar o utilitário, o suporte ao device deve estar carregado em kernel. Dessa forma o seguinte device estará disponível:
/dev/plcm_drv
- ./serveru-plcm-util
- O ./serveru-pcm-util é um utilitário que espera ao menos um argumento como <option>, onde <option> é um dos seguintes:
- -stop
- Descarrega completamente o suporte em kernel que controla o LCM e o Keypad
- -On|-Off
- Liga ou desliga o LCM sem descarrega-lo. Nenhuma informação poderá ser lida ou apresentada, mas o keypad continua funcionando
- -DispOn|-DispOff
- Liga ou desliga a luz de fundo do LCM; toda informação é mantida no display, mas só poderá ser vista em ambiente bem iluminado se a luz de fundo estiver desligada
- -LCM1|-LCM2
- Alterna entre a Linha LCM 1 e a Linha LCM 2. O LCM na verdade se constitui de duas linhas de display independentes, limitadas a 21 caracteres imprimíveis cada linha; portanto voê pode escolher quando quer ler ou escrever na Linha 1 ou Linha 2 separadamente; o comando ./serveru-plcm-util -LCM1 && echo -n "Ola" > /dev/pcm_drv &&
- ./serveru-plcm-util -LCM2 && echo -n "Mundo!" > /dev/pcm_drv vai escrever Olá na primeira linha e Mundo! na segunda linha do LCM
- -Read1|-Read2
- Vai ler e imprimir na saída padrão o conteúdo que estiver escrito na Linha 1 ou na Linha 2 do LCM. Esse recurso é útil em situações onde mais de uma aplicação escreve no LCM (por exemplo, um daemon e um shell script, uma aplicação e o sistema operacional, etc); dessa forma você consegue ler remotamente informações críticas que só estariam acessíveis se alguém estivesse fisicamente na frente do ServerU
- -Clear
- Limpa completamente a Linha 1 e Linha 2 do LCM
- -Keypad
- Apresentará um valor em hexa correspondendo a qual tecla foi pressionada por último, fazendo distinção entre teclas que ainda estão pressionadas e as que foram pressionadas e soltas, dando grande flexibilidade a comportamentos programáticos; valores de retorno são: a7 = tecla #1; 87 = tecla #2; 8f = tecla #3; af = tecla #4; e7 = tecla #1 pressionada; c7 = tecla #2 pressionada; cf = tecla #3 pressionada; ef = tecla #4 pressionada;
Considere esse shell script muito simples:
#!/bin/sh
#
# ServerU PLCM Utility
#
# ServerU - http://www.ServerU.com.br http://www.ServerU.us
# PLCM with 2 lines with 4 keys pad model Netmap L100 & Netmap L800
#
# Example useless shell script
#
# Remember LCM display 1 and 2 has 21 chars limit.
#
./serveru-plcm-util -LCM1
/bin/echo -n "Attention! Important!" > /dev/plcm_drv
./serveru-plcm-util -LCM2
/bin/echo -n "This is just a test. " > /dev/plcm_drv
count=20
while [ $count -gt 0 ] ; do
./serveru-plcm-util -Off
sleep 0.3
./serveru-plcm-util -On
sleep 0.3
count=$(( $count -1 ))
done
./serveru-plcm-util -On
Esse script vai escrever Attention! Important! na Linha 1 do LCM e This is just a test. na Linha 2 do LCM e piscará o display 20 vezes, ligando/desligando o display em ciclo.