Microterminais T E D - COLLETER



Documentos relacionados
Manual de Programação TED1000 versão TC100 Ethernet

Manual de Programação TED1000 versão TC100 V.Intranet

- Microterminais Série TC _ rede IP via cabo - - Microterminais Série TW _ rede IP wi-fi _ TED série: série:

Busca Preço G2 Manual de Usuário

Passos para a instalação

C.P.M. PROGRAMA DE CONTROLE PARA MICRO TERMINAL

IBRX Sistemas Eletrônicos. Manual técnico. Configuração: IBRX Módulo portão Rev O IBRX Portão funciona em 4 tipos de conexão:

SOFTWARE VIAWEB. Como instalar o Software VIAWEB

MANUAL DE INSTALAÇÃO SAT DIMEP PDV CAKE

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

CONFIGURAÇÃO DO MICROTERMINAL BEMATECH FIT LIGHT

Manual do Usuário -TED1000 versão TC100 Ethernet

Configuração para Uso do Tablet no GigaChef e Outros Dispositivos

Data Logger Shellby. Gradual Tecnologia Ltda. Manual Terminal Shellby Gradual Junho/2012 1

Terminal Portátil HI_PAT Wi-Fi

1.0 Informações de hardware

Terminal de Consulta Gertec TC 506

MARINHA DO BRASIL COMANDO DO CONTROLE NAVAL DO TRÁFEGO MARÍTIMO GUIA RÁPIDO PARA MANUSEIO DO SISTEMA CRIPTOGRÁFICO ÁTRIA

GUIA RÁPIDO DE UTILIZAÇÃO KIT MERCURIOIV OSCILOSCÓPIO E GERADOR DE SINAIS

Guia Rápido. Elgin L42-DT Impressora de etiquetas.

Gerenciamento da impressora

Guia de utilização SAFRAPAY MOBILE. maio/19

( d02938a95683&displaylang=pt-br)

Manual de Instalação do pacote SICWEB

DUE NXT. Guia rápido de instalação

TED - CPM PROGRAMA DE CONTROLE PARA MICROTERMINAIS TED COLLETER

Cerne Tecnologia e Treinamento

Sumário. CEAD - FACEL Manual do Aluno, 02

Manual de Instalação e Configuração EAMICROTERMINAL

Manual de Instruções. Verificador de preço VP-240 e VP-240W Tanca

Descobrindo endereço de IP da sua impressora térmica epson

Cerne Tecnologia e Treinamento

Instalar Kubuntu IMPORTANTE. Pré-Requisito. Preparando o CD. Instalando. Tabela de conteúdo. De Wiki

TUTORIAL PROCESSOS DE INSTALAÇÃO DO MYMIX MOBILE

Master 2017 Profissional PAF Edition

OI CLOUD SEJA BEM-VINDO!

Cerne Tecnologia e Treinamento

Manual de operação. Fonte de tensão e corrente digital FTC-111

MANUAL DE UTILIZAÇÃO DO SERVIDOR DE MICROTERMINAIS SISTEMA GERENCIAL G4


Cheque Recebimentos com múltiplos cheques

Introdução...3. Pré-Requisito...3. Instalação...3. Desinstalação / Limpeza de Cache e Dados...4 FUNCIONALIDADES...4. Resumo Funcionalidades...

Manual SISTEMA GERENCIADOR DE SENHAS PAINEL MONOCOR - Ethernet

Conceitos Básicos de Scripts

Guia de Instalação de Software

COLOCANDO A REDE PARA FUNCIONAR

APOSTILA DE INFORMÁTICA INTERNET E

Manual de Operação e Instalação. Balança Contadora/Pesadora/Verificadora. Modelo: 520

ATUALIZANDO O MIKROTIK VIA CABO SERIAL

Procedimento Instalação Impressora Servidor de impressão/quota

MANUAL DO USUÁRIO SISTEMA GERENCIADOR DE SENHAS VERSÃO SERVIDOR

Solucionando problemas de impressão

Gps Datalogger. Guia do usuário

Aula 5 e 6: Introdução ao shell

Projeto de Algoritmos

Manual SOFIA (Software Inteligente ARPEN-SP) versão 0.1

Universidade Federal do Oeste da Bahia Pró-Reitoria de Tecnologia da Informação e Comunicação. Iracema Santos Veloso Reitora Pro Tempore

Manual de Instalação e Configuração

Gerenciamento de Redes: Protocolo SNMP

Diego Alvarenga Parreira

Cerne Tecnologia e Treinamento

Perguntas frequentes sobre o uso seguro do Remote Support Platform para SAP Business One (RSP)

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

GUIA RAPIDO DE INSTALAÇÃO D-SAT VINCULAÇÃO D-SAT AO CNPJ DO CONTRIBUINTE

1. Capturando uma transferência TCP em massa de seu computador para um computador servidor remoto

Packet Capture Guia de consulta rápida

INSTALAÇÃO E CONFIGURAÇÃO DO MODEM ZTE W 300

Prefeitura de Araxá sábado, 11 de setembro de 2015

Tutorial de instalação Quick 3.95

Manual de operação PDV. Índice. Página 1 de 26

GERTEC Manual de Operação e Instalação MTi-760 Versão 1.0

Programação de Microcontroladores II

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ

JAVA. Professor: Bruno Toledo

Código PD0017. Este documento ter por objetivo auxiliar o usuário no entendimento e utilização do Nexus.

Aula Prática de Redes Industriais Wireshark

Basic, Everest e Braille Box. Guia de Instalação

MANUAL DO USUÁRIO MP4 PLAYER

Aula 9: Shell Script

Combo Wind Super. Manual do Usuário

Manual do aplicativo Servidor ECD

INSTALAÇÃO PRINTERTUX. Tutorial

LISTA DE ILUSTRAÇÕES

SW Ativação Linker SAT II

MS1122 v3.0 Instalação e Considerações Importantes

Manual de Operação e Instalação. Microterminal TCP/IP MT740. versão 1.0

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Manual de utilização NSE Módulo TCP/IP MTCP-1E1S

Programação de Scripts Considerações Gerais. Adaptado do material do Prof. Mário Fiocco Júnior

TC 506 Mídia. Manual do Usuário - versão 1.0

Manual SISTEMA GERENCIADOR DE SENHAS Versão SERVIDOR

Configurando a geração do arquivo RFD

STK - Setup da DR800 ETH na rede do cliente

Roteador de Banda Larga Guia de Instalação rápida

Guia de início rápido do Bomgar B200

PROCEDIMENTO PARA ALTERAÇÃO HORÁRIO DE VERÃO MD COM LITE

Network Camera. Guia do SNC easy IP setup Versão de software 1.0 Antes de operar o aparelho, leia todo este manual e guarde-o para referência futura.

Transcrição:

Microterminais T E D - COLLETER 1 - Apresentação _ Os Microterminais COLLETER fixos e portáteis, interface IP cabeada ( Ethernet ) e wireless ( Wi-Fi ), destinam-se à operações ( servidor / cliente ) de apontamento, supervisão e consulta de dados em rede online e tempo real, distribuídos no chão de fábrica e em pontos de controle de fluxo de materiais ( expedição, estoque, transporte ). São extremamente robustos e compactos para utilização em locais e ambientes não apropriados aos microcomputadores, tablets, smarts usuais e para serem manuseados por operadores de qualquer nível de especialidade. Realizam: Captura de dados _ através de seu teclado numérico ou alfanumérico ( relegendáveis ), através da leitura de código de barras via leitores externos tipo pistola ( Laser / CCD ) conectados à sua interface específica, ou leitor interno ( embutido ao seu gabinete ) e através de leitura de balanças. Consulta de dados _ através de mensagens em seu display LCD ( 2 a 8 linhas ) e impressão em impressoras de cupom conectadas à interface serial específica. Os novos modelos ( versões 2.015 ) homologados para operar com os sistemas ERP Parceiros ( SENIOR, TOTVS e outros ) possuem novo software / sistema operacional auxiliar multitarefas, denominado TED-CPM para a programação das tarefas dos Microterminais TED. O TED-CPM oferece ao usuário um ambiente de programação descomplicado, gerando conteúdo ( escrita em display / impressora, leitura de teclado / leitor cód. barras / balança ) de forma simples e rápida, através de arquivos Script formato texto, de comandos XML, permitindo a transmissão dos dados para os sistema ERP Parceiros Servidor via "requisições http". As versões IP - Ethernet e Wi-Fi possuem configuração extremamente simples, podendo ser realizadas em seu próprio teclado. O terminal pode ser utilizado com dhcp e IP dinâmico ou então com IP fixo. De ambas as formas, o terminal consegue localizar o IP do microcomputador servidor automaticamente, o que já elimina a necessidade de uma configuração adicional e local específica para isto. Os modelos padrão TED versões atuais também podem ser utilizados e programados pelos recursos abaixo: _ Bibliotecas de Vínculo Dinâmico (DLL) - com completa lista de funções prontas, comportamentais e de comunicação, à qualquer aplicação VB, Delphi, C#, Dataflex,.NET e demais linguagens do mercado. _ Funções HTTP para operação em rede local - INTRANET; _ Protocólo TELNET - padrão terminal VT-100; _ Driver Java disponível para Windows, Linux, Solaris e OSx. Caso seja de sua preferência, para baixar os folders, programas, manuais, exemplos, emuladores, vídeos de apresentação dos recursos acima, favor visitar www.loja.colleter.com.br que lá encontrará material específico para cada modelo de Microterminal. Vamos agora entrar na descrição do produto. Agradecemos sua escolha por nossos produtos e esperamos poder fornecer todo o suporte necessário no apoio desta parceira de desenvolvimento. 1

2 - Ligando o terminal _ Mova para a direita a chavinha liga/desliga localizada no painel traseiro / inferior do equipamento. Importante: Quando adquirido, o terminal é enviado com uma fonte chaveada 5V / 1A automática 110/200V original. Nunca utilize fontes não autorizadas. 3 - Configurações iniciais _ - Configuração de IP _ Primeiramente você deve configurar o endereço IP do Microterminal colocando um valor que esteja dentro da faixa de IPs de sua rede local. Para gravar o IP do TED1000 através do teclado, ligue o microterminal mantendo a tecla 1 pressionada. Fazendo isto, vai aparecer no display uma mensagem do tipo : Digite o IP: Você deve então digitar o novo endereço IP a ser gravado no terminal, separando os grupos por pontos e sempre digitando 3 dígitos. Por exemplo, para gravar o IP 192.168.0.51 você deverá digitar o seguinte: 192.168.000.051 e pressionar <E>. Feita a gravação do IP, você já pode testar a comunicação do microterminal em sua rede com o programa de testes da Colleter. Para fazer isto, execute o programa Tstetcol.exe, forneça o IP do TED no campo de texto e clique em Abre endereço IP. Depois, se você digitar um número qualquer e pressionar <E> no microterminal, o dado digitado vai aparecer no formulário do programa e será retornada a mensagem Recebido-Canal0 no display do TED. Não é necessária mais nenhuma configuração de rede adicional. Uma vez configurado o IP, o sistema irá localizar o microterminal e se conectar com ele automaticamente. - Teclas especiais _ O teclado possui 3 teclas de função (F1, F2 e F3) que podem ser configuradas via software. Além das teclas de função, a tecla C tem a função de backspace // delete, e serve para deletar teclas digitadas, com a finalidade de corrigir erros de digitação antes da transmissão. A tecla Enter tem a função de transmitir os dados digitados para o computador. - Ligação do cabo de rede _ Conecte seu microterminal a um Hub ou Switch de rede ethernet utilizando um cabo padrão de rede (azul Cat5) ou então com um cabo cross over. O conector de rede RJ45 deve estar crimpado com todas as vias e deve ser encaixado onde está marcado comunicação, no painel traseiro do equipamento. - Ligação do leitor de código de barras externo _ Você pode ligar um leitor de código de barras externo modelo PS2 no microterminal Colleter. Para isso, encaixe o leitor no conector do painel traseiro, onde está escrito PS2. 2

4 TED-CPM Apresentação e configurações iniciais _ TED-CPM é um software / S.O. auxiliar que permite que a programação dos terminais TED seja toda feita através de arquivos texto xml. Um manual completo de programação com descrição detalhada de todos os comandos (tags) doted-cpm pode ser baixado no seguinte link: http://www.colleter.com.br/sistemas/downloads/download.asp?arquivo=manual_ted-cpm_v.2.0.pdf O presente manual é apenas um guia prático e sequencial dos passos necessários para o desenvolvimento, detalhando e ilustrando estes passos com exemplos de arquivos XML, com o objetivo de facilitar o início de seu desenvolvimento. TED-CPM - Planejando e programando os terminais da rede: O Número máximo de microterminais controlados peloted-cpm é limitado apenas pela máscara de rede Ethernet. Sendo a máscara padrão 255.255.255.0, o número máximo de terminais que podem ser colocados em rede é, em teoria, 255. No entanto, para não haver degradação de performance durante a coleta de dados, recomendamos um número máximo de 128 microterminais na mesma rede. Todos os microterminais devem estar previamente configurados com um IP estático que esteja na faixa da sua rede. Para verificar como configurar o IP do terminal, consulte o tópico configuração de IP, na página 2 deste manual. Executando um script com o TED-CPM: Para executar um script com oted-cpm, você deve executar o script com uma linha de comando semelhante a linha abaixo: java -Xmx1024m -XX:MaxPermSize=256m -jar cpm-1.0.5.jar exemplo.xml A linha acima executa oted-cpm e chama o arquivo script de nome exemplo.xml. OBS: Para facilitar a chamada, você pode colocar a linha num arquivo.bat do DOS e chamar o arquivo bat, em vez de digitar o comando java completo toda vez que for usar um script. Iniciando o desenvolvimento do script xml para o TED-CPM: Você pode desenvolver o arquivo XML em um editor de textos qualquer de sua preferência. Neste manual, vamos utilizar e sugerir o bloco de notas do Windows. Todo script XML deverá sempre começar com a seguinte linha: (linha obrigatória) Depois da linha obrigatória, você precisa definir um nome para o projeto, para o programa e para a sessão, bem como definir o datasource e o host. Um projeto pode conter um ou mais programas e sessões. Projeto: é um nome para o script inteiro (nome do projeto). Programa: Os programas são como se fossem os executáveis que os terminais vão rodar. É possível rodar programas diferentes, um para cada terminal, ou então rodar o mesmo programa em todos os terminais. Sessões: As sessões são como rotinas menores dentro dos programas que são executadas pelos terminais durante a execução doted-cpm. É possível, também, fazer com que cada terminal desvie a lógica para uma sessão específica, ou então que todos os terminais executem sempre a mesma sessão. Datasource: É apenas um nome de batismo para uma fonte de dados externa para a qual serão transmitidos os dados coletados. Todas as informações coletadas deverão ser transmitidas para um computador servidor através de uma requisição http. O datasource é apenas um nome de referência para este computador servidor. Host: É o endereço url que aponta para o datasource. O url do host pode ser formado por um IP ou por uma url www tipo dns (por exemplo: http://192.168.0.82:80 ou então http://www.meudominio.com:80 ) Definidos os nomes do projeto, programa, sessão, datasource e o endereço do host, o início de seu arquivo XML deverá ficar como no exemplo abaixo: (linha obrigatória) (define o nome do projeto como projeto ) (batiza de server a fonte de dados http externa) (define o endereço do datasource) <program name="programa1" datasource="server"> (batiza o programa de programa1 ) (batiza a sessão inicial com o nome de menu ) 3

Iniciando a colocação de comandos ( tags ) na primeira sessão: Em todo programa script XML, você irá utilizar comandos, que também chamamos de tags.o detalhamento de todas as tags de comando pode ser encontrado no manual de programação doted-cpm. Num primeiro exemplo, vamos mostrar uma sessão de script contendo as tags say e store. A tag say serve para mostrar uma frase no display do terminal. A tag store serve para armazenar o conteúdo de uma digitação em uma variável. Todo script doted-cpm deve conter pelo menos uma sessão. Ao adicionarmos outras sessões, é possível fazer com que a lógica da execução desvie para elas pressionando F1, F2 ou F3, mas a sessão inicial precisa sempre existir. O local de desvio da execução pelo pressionamento das funções é apontado no script pelo parâmetro hotkey, conforme o exemplo abaixo. <program name="programa1" datasource="server"> (início da sessão de menu) (aguarda o pressionamento do F1) (se o F1 for pressionado, o programa pula para esta linha) OBS: O atributo K_F1 do hotkey pode variar até K_F12, prevendo 12 teclas de função. No entanto, lembre-se que o microterminal TED com teclado numérico tem apenas 3 teclas de função: F1, F2 e F3. Coletando dados em uma sessão : Como vimos no xml anterior, as tags say e store tem a serguinte função: Say: faz com que uma mensagem de texto apareça no display Store: Aguarda uma digitação e armazena o valor digitado numa variável específica. Os dados coletados ficam armazenados temporariamente em memória numa região denominada datalist. Você pode criar uma variável no próprio comando store e armazenar nela o valor digitado no tecladinho do terminal. Por exemplo, para fazer com que o TED peça para ser digitado um Código, acrescente em nosso programa exemplo a seguinte linha (abaixo, em azul): <program name="programa1" datasource="server"> <say store="c">codigo:</say> ( esta linha coloca a palavra Código no display do TED e aguarda a digitação. Depois de digitar um número e pressionar o enter, o dado será armazenado na variável c ) Se você quiser acrescentar mais um passo na coleta (por exemplo, fazer com que o TED peça Quantidade depois de pedir o Código ), basta acrescentar mais uma linha say store, como a linha abaixo: <say store="q">quantidade:</say> (Esta linha faz o TED pedir Quantidade, armazenando a digitação em q ) 4

Acrescentando mais um passo: solicitando valor : Para fazer com que o TED peça valor depois da quantidade, basta acrescentar a linha: <say store="v">valor:</say> (Esta linha faz o TED pedir Quantidade, armazenando a digitação em q ) O exemplo com 3 passos ficaria assim: <program name="programa1" datasource="server"> <say store="c">codigo:</say> ( Exibe Código e armazena em c ) <say store="q">quantidade:</say> ( Exibe Quantidade e armazena em c ) <say store="v">valor:</say> ( Exibe Valor e armazena em v ) No manual completo doted-cpm você encontrará detalhes sobre a função de todas as Tags doted-cpm. Veja aqui alguns exemplos de TAGs que podem ser usadas dentro do arquivo XML doted-cpm: <datasource> - define um nome para a base de dados externas que receberá dados via http <say> - mostra dados no display do terminal <store> - lê o teclado do terminal e armazena a digitação numa variável <jump> - faz desvios condicionais na lógica doted-cpm <host> - define o endereço IP do computador servidor <terminal> - define um IP, um nome de batismo para um terminal e um programa que ele irá executar <session> - define uma sessão a ser executada em loop dentro do arquivo xml <clear> - apaga o display do terminal Transmitindo os dados coletados via http e recebendo o retorno: Para transmitir as variáveis coletadas numa requisição http e receber o retorno, você deve chamar o comando get passando como parâmentro o complemento necessário para formar o caminho do http da chamada. O comando get serve para enviar variáveis para o computador servidor via chamada http, recebendo o retorno numa variável qualquer. Vamos exemplificar este envio de variáveis, colocando o retorno dentro de uma variável que, em nosso exemplo, chamaremos de ret (retorno): - Suponha que o servidor esteja no endereço http://192.168.0.82:80 e você queira transmitir as variáveis formando a seguinte URL: http://192.168.0.82:80/variaveis/c/1234 > Neste exemplo, 1234 corresponde à digitação feita no TED quando ele pediu o prompt Código:. A digitação foi armazenada em c, por isso, ao transmitir, o final da URL indica c/1234. Para fazer a transmissão, basta acrescentar a linha do comando get abaixo: <program name="programa" datasource="server"> <say store="opcao">[f1] - [F2]</say> <say store="a">codigo:</say> Transmite http://192.168.0.82:80/variaveis/c/1234 <say wait="1" get="db.ret"/> Faz pausa de 1 segundo mostra no display o retorno ret vindo do servidor. 5

O exemplo em Delphi abaixo ilustra um servidor http feito com o componente Indy retornando uma mensagem para oted-cpm. Note que o retorno precisa estar no formato JSON, ou seja: {variável:conteúdo, variável2:conteúdo2,... } Exemplo válido de retorno feito com o componente Indy no Delphi:: if (pos ('13579',stringrecebida)<>0) then resposta:='{"ret":"chocolate"}'; if (pos ('24680',stringrecebida)<>0) then resposta:='{"ret":"biscoito"}'; aresponseinfo.contenttext:=resposta; // com este exemplo Delphi, o PC servidor irá retornar para oted-cpm ret=chocolate ou ret=biscoito, // dependendo se foi digitado 13579 ou 24680 no tecladinho do TED Obs: Você também pode transmitir os parâmetros na chamada http no formato query. O formato query é só um jeito diferente de você transmitir as variáveis. Por exemplo: Formato http padrão: http://localhost:9090/sapiensweb/conector?sis/co/login/sid/acao/exesenha Formato query http://localhost:9090/sapiensweb/conector?sis=co&login=sid&acao=exesenha& Na linha acima, a entidade &amp é apenas um substituto para o caracter & que não pode ser utilizado por ser caracter reservado no TED-CPM. O &amp substitui o caracter &. Para transmitir os dados no formato query, utilize um datasource tipo http e acrescente o atributo <host params="query">, conforme mostrado no exemplo abaixo: <project name="integracao-sapiens"> <datasource name="datasource-sapiens" type="http"> <host params="query"> Define o formato de transmissão query http://localhost:9090/sapiensweb/conector?sis=co&login=sid&acao=exesenha&nomusu=supo rte&senusu=suporte& </host> <program name="programa-exemplo datasource="datasource-sapiens"> <session name="session_responder" hotkey="k_f1"> <say beep="1" store="val1">valor:</say> Toca um bip, pede valor e armazena em val1 <get ns="ds" url="proxacao=sid.srv.regra&numreg=1" /> <say wait="1" get="ds.retorno" /> Transmite para o servidor no formato query <terminal ip="192.168.1.151" name="terminal1" program="test-program" model="colleter_tc100"/> Fazendo desvios condicionais na lógica do xml: Você pode fazer desvios condicionais na lógica do arquivo xml utilizando a tag jump e os operadores lógicos de comparação, conforme o exemplo abaixo:... <session name="sessao2" hotkey="k_f2"> <say store="d">cod Tarefa:</say> <say store="e">finalizada?</say> 6

<jump to="d">e eq 0</jump> Salta para a linha do store d se e for igual a zero <jump to="e">e ne 1</jump> Salta para a linha do e se e for diferente de 1 <say store="f">cod Motivo:</say>... Os operadores lógicos de comparação implementados são os seguintes: ne Diferente (not equal) eq Igual (equal) lt Menor que (less than) gt Maior que (great than) le Menor ou igual (less or equal) ge Maior ou igual (great or equal) Carregando programas completos xml para serem executados por terminais: Agora que vimos como solicitar digitações, como comparar e transmitir variáveis recebendo de volta o retorno do http, estamos em condições de mostrar como carregar scripts completos nos terminais. É possível carregar um único programa para todos os terminais ou então fazer com que os terminais executem programas diferentes. No exemplo abaixo (já completo), mostramos como carregar o programa1 num terminal de IP 192.168.0.50 e como carregar o programa2 num terminal de IP 192.168.0.51: <program name="programa1" datasource="server"> <say store="c">codigo:</say> <say store="q">quantidade:</say> <program name="programa2" datasource="server"> <say store="t">tamanho:</say> <say store="r">cor:</say> <terminal ip="192.168.0.51" name="term2" program="programa2" model="colleter_tc100" /> O script xml que acabamos de ver irá carregar o programa1 (em azul) no terminal 192.168.0.51 e o programa2 (em verde) no terminal 192.168.0.50 Se você quisesse que os dois terminais executassem o programa1, então bastaria mudar a linha verde final, que ficaria assim: <terminal ip="192.168.0.51" name="term2" program="programa1" model="colleter_tc100" /> Desta forma, os dois terminais iriam executar o programa1. Para acrescentar mais terminais na rede, bastaria acrescentar mais linhas no final, como por exemplo: <terminal ip="192.168.0.51" name="term2" program="programa2" model="colleter_tc100" /> <terminal ip="192.168.0.52" name="term3" program="programa1" model="colleter_tc100" /> <terminal ip="192.168.0.53" name="term4" program="programa2" model="colleter_tc100" /> 7

Note que os terminais deverão já estar com os IPs previamente gravados, conforme indicado na seção configuração de IP, na página 2 deste manual. Vamos ver agora alguns exemplos completos de scritps XML para oted-cpm: Exemplo1: Dois terminais efetuando a mesma tarefa e coletando 3 variáveis: Define o nome do projeto Define um nome para o datasource Define o endereço url do micro servidor <program name="programa" datasource="server"> Define o nome do programa <say store="opcao">tecle F1</say> Pede para teclar F1 Ao teclar F1, entra no loop <say store="c">codigo:</say> pedindo código, quantidade e tipo, <say store="q">quantidade:</say> armazenando em c, q e t. <say store="t">tipo:</say> <say wait="1" get="db.ret"/> Transmite as variáveis coletadas para o servidor e pega o retorno que voltar, armazenando na variável ret <terminal ip="192.168.0.51" name="term1" program="programa" model="colleter_tc100" /> <terminal ip="192.168.0.52" name="term2" program="programa" model="colleter_tc100" /> Faz com que 2 terminais executem o mesmo programa Exemplo2: Três terminais, sendo que os dois primeiros executam a mesma tarefa coletando 2 variáveis e o terceiro terminal executa outra tarefa, coletando 3 variáveis. Define o nome do projeto Define um nome para o datasource Define o endereço URL do servidor <program name="programa1" datasource="server"> Define o nome do programa1 Pede para teclar F1 Ao teclar F1, a lógica pula para este loop <say store="p">peso:</say> que solicita Peso e Tipo <say store="t">tipo:</say> armazenando o resultado em p e t <say wait="1" get="db.ret"/> Transmite as variáveis coletadas e recebe o retorno que vier do servidor, armazenando em ret <program name="programa2" datasource="server"> Define o nome do programa2 <session name="menu2"> Pede para teclar F1 <session name="sessao2" hotkey="k_f1"> <say store="m">material:</say> <say store="a">aspecto:</say> <say store="f">formato:</say> Ao teclar F1, a lógica pula para este loop que solicita a digitação de 3 dados: Material, Aspecto e Formato, armazenando o resultado em m, a e f. 8

<say wait="1" get="db.ret2"/> Transmite os dados coletados para o PC servidor e pega o retorno vindo do servidor armazenando-o em ret2 <terminal ip="192.168.0.51" name="term2" program="programa1" model="colleter_tc100" /> <terminal ip="192.168.0.52" name="term3" program="programa2" model="colleter_tc100" /> Faz os 2 primeiros terminais executarem o programa1 e o terceiro terminal executar o programa 2 Exemplo3: Quatro terminais, onde dois executam o programa 1 e os outros 2 executem, respectivamente, os programas 2 e 3. As variáveis são diferentes em cada programa. Define o nome do projeto Define o endereço URL do computador servidor <program name="programa1" datasource="server"> Define o nome do primeiro programa <say store="m">material:</say> <say store="p">peso:</say> <say wait="1" get="db.ret"/> <jump to="m"> p lt 100 </jump> <say>peso Excessivo</say> Se for pressionado F1, entra neste loop pedindo material e peso Se o peso for maior do que 100, exibe uma mensagem de Peso Excessivo no display e volta para o loop <program name="programa2" datasource="server"> <session name="menu2"> Define o nome do segundo programa Se for pressionado F1, entra nesse loop <say store="c">cor:</say> pedindo p/ digitar Código, Aspecto e Formato <say store="a">aspecto:</say> <say store="f">formato:</say> Transmite os dados coletados p/ o servidor, <say wait="1" get="db.ret2"/> colocando o retorno que voltar na variável ret2 <program name="programa3" datasource="server"> <session name="menu3"> Define o nome do terceiro programa <session name="sessao3" hotkey="k_f1"> <say store="c">tipo:</say> <say store="a">validade:</say> <say wait="1" get="db.ret3"/> Se pressionado F1, pula para este loop que solicita a digitação do Tipo e da Validade Transmite os dados coletados p/ o servidor, colocando o retorno que voltar na variável ret3 <terminal ip="192.168.0.51" name="term2" program="programa1" model="colleter_tc100" /> 9

<terminal ip="192.168.0.52" name="term3" program="programa2" model="colleter_tc100" /> <terminal ip="192.168.0.52" name="term4" program="programa3" model="colleter_tc100" /> Faz com que os terminais 1 e 2 executem o programa 1 e os terminais 3 e 4 executem o programa 2 e 3, respectivamente. Exemplo4: Quatro terminais, cada um executando uma tarefa diferente, com váriáveis diferentes. Define o nome do datasource Define o endereço URL do servidor <program name="programa1" datasource="server"> Define o nome do programa1 <session name="sessao1"> <say store="m">comanda:</say> Pede para digitar Comanda e, em seguida armazena o resultado em m. <say wait="1" get="db.ret"/> Transmite o dado coletado para o servidor e armazena o retorno na variável ret <program name="programa2" datasource="server"> Define o nome do programa 2 <session name="sessao2"> <say store="c">codigo:</say> Pede para digitar Código e Sabor, armazenando <say store="s">sabor:</say> as digitações em c e s, respectivamente. <say wait="1" get="db.ret2"/> Transmite os dados para o servidor e armazena o retorno na variável ret2 <program name="programa3" datasource="server"> Define o nome do programa3 <session name="sessao3"> <say store="p">peso:</say> Pede para digitar Peso e armazena em c. <say wait="1" get="db.ret3"/> Transmite o peso para o servidor e armazena o retorno na variável ret3 <program name="programa4" datasource="server"> Define o nome do programa4 <session name="sessao4"> <say>nota</say> <say store="np">paulista CPF:</say> Solicita Nota Paulista e aguarda digitação do CPF Transmite para o servidor e armazena <say wait="1" get="db.ret4"/> o retorno na variável ret4 <terminal ip="192.168.0.51" name="term2" program="programa2" model="colleter_tc100" /> <terminal ip="192.168.0.52" name="term3" program="programa3" model="colleter_tc100" /> <terminal ip="192.168.0.52" name="term4" program="programa4" model="colleter_tc100" /> Faz com que cada um dos 4 terminais execute um programa diferente (1, 2, 3 ou 4). Operadores aritméticos no script xml: Você pode utilizar com as variáveis do script os seguintes operadores aritméticos: + Soma - Subtração * Multiplicação / Divisão 10

Exemplo de utilização: <?xml version="1.0" encoding="utf-8"?> <project name="calc_project"> <terminal name="terminal1" ip="192.168.0.51" model="colleter_tc100" program="calc_program"/> <program name="calc_program"> (carrega o programa calc_program xml no TED de ip 192.168.0.51) <session name="main"> <say store="a">a:</say> (pede para digitar um valor no TED e armazena em a ) <store name="b">10</store> (cria uma variável b e atribui para ela o valor 10) <calc store="c">a*b</calc> (multiplica a x b, colocando o valor na variável c ) <say get="c">a*10=</say> (mostra no display do TED o resultado da multiplicação) Apêndice: Exemplos completos comentados: Agora que temos todo o conhecimento sequencial necessário para desenvolver um arquivo XML para oted-cpm, vamos mostrar alguns programas XML completos, comentados linha a linha. Os comentários estão em azul: Programa 2tarefas.xml: Carrega 2 tarefas diferentes para 2 TEDs, utilizando um único programa: (linha obrigatória) (define o nome do projeto) (batiza de server o datasource para transmissão http) (define o endereço url do datasource externo) <program name="programa" datasource="server"> (batiza o programa com o nome programa ) (cria uma sessão inicial chamada de menu ) <say store="opcao">[f1] [F2]</say> (pede para digitar F1 ou F2 no TED) <say store="c">codigo:</say> <say store="q">quantidade:</say> <session name="sessao2" hotkey="k_f2"> <say store="d">cod Tarefa:</say> <say store="e">finalizada?</say> <jump to="d">e eq 0</jump> <jump to="e">e ne 1</jump> <say store="f">cod Motivo:</say> (se pressionado F1, o TED pula para esta sessão1) (pede código e armazena a digitação em c ) (pede Quantidade e armazena em q ) (se pressionado F2, o TED pula para esta sessão2) (pede Cod Tarefa e armazena em d ) (pergunta se foi finalizada e armazena 0 ou 1 em e ) (se e=0, então pula para d e pede novo Cod Tarefa) (se e<>1, volta para e Finalizada?, forçando 0 ou 1 para e ) (chega aqui se e=1 [não finalizada]. Pergunta o motivo e armazena o motivo em f ) <terminal ip="192.168.0.50" name="term1" program="programa" model="colleter_tc100" /> <terminal ip="192.168.0.51" name="term2" program="programa" model="colleter_tc100" /> (as duas linhas de cima executam o mesmo programa para os dois TEDs de IP 192.168.0.50 e 192.168.0.51) (fim do projeto) Programa 2programas.xml: Carrega 2 tarefas diferentes para 2 TEDs, utilizando um único programa: (linha obrigatória) (batiza o projeto de projeto ) (batiza o datasource destino para o http de server ) (define o url do datasource como sendo 192.168.0.82, port80) 11

<program name="programa1" datasource="server"> (batiza o 1o programa de programa1) (faz um menu no programa1 e pede para pressionar F1) (pula para cá quando pressionado F1 no programa1) <say store="c">codigo:</say> (pede Código e armazena em c ) <say store="q">quantidade:</say> (pede Quantidade e armazena em q ) (fim da sessão volta em loop para pedir o Código ) <program name="programa2" datasource="server"> (batiza o 2o programa de progama2) (faz um menu no programa2 e pede para pressionar F1) (pula para cá quando pressionado F1 no programa2) <say store="t">tamanho:</say> (pergunta Tamanho e armazena em T ) <say store="r">cor:</say> (pergunta Cor e armazena em R ) (fim da sessão volta em loop para pedir Tamanho <terminal ip="192.168.0.51" name="term2" program="programa2" model="colleter_tc100" /> (As 2 linhas de cima executam o programa1 no TED 192.168.0.50 e o programa2 no TED 192.168.0.51) (fim do projeto) Programa testaretorno.xml: transmite variáveis via requisição http para o computador servidor (datasource) e recebe o retorno. (linha obrigatória) (batiza o projeto de projeto ) (batiza o servidor de destino http de datasource= server ) (define o url do datasource servidor, destino das chamadas http) <program name="programa" datasource="server"> (batiza o programa de programa ) <say store="opcao">digite [F1] </say> (faz um menu no display do TED pedindo para teclar F1) (se pressionado F1, cai nessa sessão = sessão1) <say store="a">codigo:</say> (pede digitação de Codigo e armazena em a ) ( transmite a para o servidor http do datasource, com a requisição http://www.192.168.0.82/variaveis/a/ conteuúdo do valor digitado e recebe um retorno no formato json.por ex.: {"ret":"leite Ninho"} ) <say wait="1" get="db.ret"/> (Faz pausa de 1 segundo e mostra no display a variável ret retornada cujo conteúdo é - por exemplo - Leite Ninho ) (fim da sessão volta em loop para pedir novamente o Código ) (fim de programa) <terminal ip="192.168.0.51" name="term1" program="programa" model="colleter_tc100" /> (a linha acima executa o programa 1 no terminal de IP 192.168.0.51) (fim de projeto) 12

Programa condicional.xml: faz um desvio condicional, dependendo do valor de uma variável (linha obrigatória) (batiza o projeto de projeto ) (batiza o datasource destino para o http de server ) (define a url do servidor como sendo 192.168.0.82 port 80) <program name="programa" datasource="server"> (batiza o programa de programa ) (inicia uma sessão 1, pedindo para digitarmos F1) <say store="opcao">digite F1</say> (se pressionado F1, pula para a sessão 1) <say store="r">rg:</say> (Pede o RG e armazena o resultado em r ) <say store="i">idade:</say> (Pergunta Idade e armazena em i ) <jump to="r"> i gt 17 </jump> (Se i for maior que 17, volta para coletar mais um RG) <say>menor de Idade!</say> (se i for menor ou igual a 17, mostra alerta Menor de Idade ) <say store="s">rg do resp:</say> (pede para digitar o RG do responsável) (fim da sessão volta em loop para pedir um novo RG) <terminal ip="192.168.0.50" name="term1" program="programa" model="colleter_tc100" /> <terminal ip="192.168.0.51" name="term2" program="programa" model="colleter_tc100" /> (as 2 linhas acima carregam o mesmo programa nos TEDs 192.168.0.50 e 192.168.0.51) (fim de projeto) 13