• Nenhum resultado encontrado

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

N/A
N/A
Protected

Academic year: 2021

Share "ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO"

Copied!
10
0
0

Texto

(1)

ECD1200

Equipamento de Consulta de Dados

Versão do documento: 1.1

KIT DE DESENVOLVIMENTO

(2)

1. Introdução ... 3

2. Documentação... 3

2.1.

D

OCUMENTAÇÃO DE

R

EFERÊNCIA

... 3

2.2.

D

ESCRIÇÃO

F

UNCIONAL

... 4

2.2.1.

I

NTERFACE

... 4

2.2.2.

J

ANELA DE

C

ONEXÕES

... 5

3. Protocolo de Mensagens do ECD1200 ... 8

3.1.

M

ENSAGENS

... 8

3.2.

M

ENSAGENS DE

A

TIVIDADE

... 9

(3)

1. Introdução

Este manual descreve a DLL (Dynamic Link Library) responsável pela configuração e controle de acesso ao Equipamento de Consulta de Dados ECD1200. Esta DLL pode ser utilizada em qualquer linguagem de programação em 32 bits, compatível com Windows. Adicionalmente, o manual descreve o seu protocolo de mensagens via TCP/IP.

2.

Documentação

2.1.

Documentação de Referência

O Equipamento de Consulta de Dados (ECD) é um dispositivo com scanner a laser, por onde se reconhecem os códigos dos produtos. Conecta-se ao servidor da base de dados por uma conexão Ethernet (TCP/IP). O servidor responde ao ECD mandando a descrição e o preço do produto, previamente cadastrados em sua base de dados. Estas informações são apresentadas pelo display de cristal líquido. Para maiores referências às características do Equipamento de Consulta de Dados, consulte a respectiva documentação.

(4)

2.2. Descrição Funcional

A DLL funciona como uma ponte entre os protocolos dos ECDs e a base de dados onde os produtos encontram-se cadastrados. Deste modo, a aplicação do cliente ganha mais funcionalidade e flexibilidade, pois seu funcionamento independente do tipo da base de dados (Access, Paradox, etc.) e da linguagem de programação utilizada (Delphi, C++ Builder, Visual Basic, Visual C++, etc.).

2.2.1.

Interface

A seguir são listadas as funções que podem ser utilizadas pelo programador para acesso as funcionalidades do servidor dos ECDs. É importante observar que o programador deve seguir uma seqüência para que seu aplicativo tenha acesso completo à DLL e aos ECDs. Esta seqüência deve ser: chamar a função bInitialize() logo após carregar a DLL e chamar bTerminate() antes de sair da aplicação. A porta 6500 utilizada pelo servidor deve estar liberada para o uso.

Tabela 1 – Resumo das Funções da DLL Funções fornecida pela Sc50X.dll BOOL __stdcall bInitialize(HWND Handle)

BOOL __stdcall bTerminate(void) BOOL __stdcall bShowWindow(void);

void __stdcall vGetMsgWinReceiveDataTC(LPUINT MsgWinReg); BOOL __stdcall bReceiveBarcode(stAddress *ID,char * barcode); BOOL __stdcall bSendProdNotFound(stAddress* ID);

BOOL __stdcall bSendProdPricTC50X(stAddress* ID ,char * NameProd,char *PriceProd);

BOOL __stdcall bInitialize(HWND Handle)

Inicia o Servidor dos ECDs. Deve ser chamada no início do aplicativo e antes de qualquer outra função da DLL. O Handle é o manipulador da janela do aplicativo que responde as mensagens dos ECDs. Havendo sucesso, esta rotina retorna TRUE.

(5)

deve interceptar em seu loop de mensagens do Windows no handle da janela cadastrada em bInitialize, de forma a saber quando há dados para ler dos ECDs.

Tabela 2 – Estrutura de Dados stAddress

Campos Tipo Definição

Endereço IP (IP) DWORD Endereço IP do ECD Porta (Port) WORD Porta do Socket conectado no

ECD

Obs.: Esta DLL está preparada para trabalhar somente com o ECD1200, por isso ao identificar um ECD que não seja desta série, ela automaticamente desconecta.

BOOL __stdcall stReceiveBarcode(stAddress *ID,char * barcode)

Esta rotina verifica na lista de eventos se há alguma solicitação de código de barras (barcode) pendente. Caso possua retorna True, e coloca o endereço do ECD ID e o código de barras em barcode.

BOOL __stdcall stSendProdNotFound(stAddress* ID)

Esta rotina envia uma mensagem para o ECD ID indicando que o produto não está cadastrado atualmente na base de dados. Havendo sucesso, esta rotina retorna TRUE.

BOOL __stdcall stSendProdPriceTC50X(stAddress* ID ,char * NameProd,char

*PriceProd)

Esta rotina envia uma mensagem para o ECD ID indicando o nome e preço do produto, que serão exibidos respectivamente na primeira e segunda linhas. Havendo sucesso, esta rotina retorna TRUE.

2.2.2.

Janela de Conexões

A Janela de Conexão (Figura 2) é responsável pelo controle dos ECDs, é chamada pela rotina bShowWindow. Seu menu é apresentado em detalhes na figura 3:

(6)

Figura 3 – Menu e Barra de Ferramentas

O Menu Leitor é responsável pelo gerenciamento das listas dos ECDs, e possui as seguintes opções:

– “Conectados” que abre um submenu com as opções: “Desconectar”, “Desconectar Todos” e “Reconfigurar”.

– “Desconectados” relaciona-se com a lista dos desconectados, mostrando um submenu com duas opções

“Retirar” e “Retirar Todos”

– E “Ocultar” que oculta esta janela mantendo o servidor funcionando.

A manipulação das listas pelo operador também pode ser realizada pela barra de ferramentas executando as mesmas funções do menu. Esta barra de tarefas situa-se entre as duas listas (Figura 3), onde os três botões da parte superior são referentes a lista dos conectados, enquanto os dois botões da parte inferior estão vinculados a lista dos desconectados. A seguir, é descrita cada uma das funções executadas pela opções do menu e pelos botões da barra de ferramenta:

- “Desconectar” ( ) – desconecta o ECD ativo selecionado da lista dos conectados, passando automaticamente para lista dos desconectados;

- “Desconectar Todos” ( ) – desconecta todos os ECDs ativos da lista dos conectados passando para lista dos desconectados;

- “Reconfigurar” ( ) – solicita ao ECD selecionado sua configuração. Ao receber a configuração, o Servidor abre uma Janela de Configuração dependendo do tipo do ECD (Figura 4 ou Figura 5). Ao pressionar OK as novas configurações são enviadas para o

(7)

Figura 4 – Janela de Configuração para ECD1200

O ECD1200 pode funcionar tanto com endereço IP Fixo como Dinâmico. O endereço IP é identificador utilizado pelo protocolo TCP/IP para reconhecer e redirecionar os pacotes pela Ethernet. Na configuração de IP Fixo, o seu endereço deve ser configurado e armazenado previamente pelo ECD (por configuração manual ou online). Porém com IP Dinâmico, o ECD procura um servidor de DHCP (Dynamic Host

Configuration Protocol), que lhe fornece um endereço IP e sua máscara de rede

durante a sua inicialização.

Para configurar o ECD com IP Dinâmico, basta preencher seu endereço IP com valor 0 (zero), que automaticamente procura o DHCP, e posteriormente procura o IP do Servidor do ECDs no universo dos números IP dados pelo o número IP e da mascara de rede ambos fornecidos pelo DHCP. E para voltar para IP Fixo, basta trocar

o endereço IP de 0 (zero) para o valor desejado junto com sua mascara de rede. - “Retirar” ( ) – remove o ECD selecionado da lista dos desconectados. - “Retirar Todos” ( ) –esvazia a lista dos desconectados.

(8)

3.

Protocolo de Mensagens do ECD1200

O uso da DLL permite utilizar os ECDs sem necessidade de dominar o protocolo, porém conhecê-lo ajuda na compreensão das mensagens exibidas na janela de

acompanhamento (Figura 2).

3.1.

Mensagens

A mensagem é qualquer informação lida ou escrita pelo ECD no "Socket" aberto para o servidor. Na versão atual, todas as mensagens são ASCII iniciadas com caractere tralha ("#") enviadas ao Socket de comando (porta 6500). Os tipos de mensagens são:

- Mensagens de Atividade; - Mensagens de Configuração.

Tabela 4 – Mensagens do Produto

Mensagem Objetivo Origem

#999999999999 Enviar o código de barra ECD1200

#nfound Avisar que código de barra não foi cadastrado Servidor #Nome | Preço Enviar o nome e preço do produto Servidor

Na mensagem #999999999999, o valor 999999999999 representa o código de barra adquirido pelo scanner. Quando esta mensagem chega ao servidor, o caractere tralha é removido e feito uma busca na base de dados. Caso não encontre o produto, é emitida a mensagem #nfound. Quando o encontra, é enviada a mensagem composta pelo nome e preço do produto separados por um pipe ("|") cadastrados na base de dados, colocando o nome do produto na primeira linha do display do ECD e o preço na segunda.

(9)

3.2.

Mensagens de Atividade

Estas mensagens são mostradas na Tabela 5.

Tabela 5 - Mensagens de Atividade

Mensagem Objetivo Origem

#ok Resposta a uma conexão aberta Servidor

#tc501|versao Identifica o tipo de ECD e sua versão ECD1200 #tc502|versao Identifica o tipo de ECD e sua versão ECD1200 #ecd-1200|versao Identifica o tipo de ECD e sua versão ECD1200 #live? Perguntar ao ECD se está ativo Servidor

#live Avisar que encontra-se ativo ECD1200

Assim que a conexão entre o ECD e o Servidor é realizada, o Servidor manda uma mensagem “#ok”, para que confirme ao ECD que sua conexão foi aceita. Neste ponto, o ECD identifica-se pela mensagem #tc502. A mensagem “#live?” é enviada para cada ECD de 10 em 10 segundos, registrando sempre sua hora do envio. Em resposta a esta mensagem, o ECD responde com a mensagem #live. Ao receber esta última mensagem o servidor armazena a hora de resposta. Se este intervalo de tempo exceder os 50 segundos a conexão é fechada automaticamente pelo servidor.

3.3.

Mensagens de Configuração

Estas mensagens destinam-se a realizar a configuração on line dos ECDs conectados ao servidor. Eles são mostrados na Tabela 7.

Tabela 7 - Mensagens de Configuração ECD

Mensagem Objetivo Origem Destino

#config502? Solicita ao ECD a

configuração atual Servidor ECD #config502Tam_ipsX_ipsTam_ipcX_ipc

Tam_msnX_msnTam_linha1X_linha1 Tam_linha2X_linha2Tam_linha3X_linha4 Tam_linha4X_linha4TempExibicao

Envia sua configuração

atual ECD Servidor

#reconf502Tam_ipsX_ipsTam_ipcX_ipc Tam_msnX_msnTam_linha1X_linha1 Tam_linha2X_linha2Tam_linha3X_linha4

Envia a nova

(10)

Quando ECD recebe a mensagem “#config?”, ele envia uma mensagem de sua configuração, formada da seguinte maneira: possui um cabeçalho "#config" e a separação das strings dada por caractere representado o tamanho da próxima string. A seqüência das strings são: endereço IP do servidor, seu endereço IP, sua mascara da rede, texto da linha 1 e texto da linha2. Por último, vêm um caracter que representa o tempo de exibição do valor do preço em segundos. Para exemplificar isto, considere a seguinte configuração:

Tabela 8 –Exemplo de Configuração do ECD

Configuração Tamanho da String

Endereço IP do Servidor: 192.168.1.8 11 Endereço IP do ECD: 192.168.1.12 12 Mascara da Rede: 255.255.255.0 13

Linha1: Sweda 5

Linha2: Passe o produto... 18 Tempo de Exibição: 12 segundos -

Como o tamanho das string deve ser armazenando dentro de um caracter (byte), e longe da faixa dos caracteres especiais como "\r", "\n" ou "\0", é adicionado o código ASCII do caracter zero ("0"). Desse modo, os tamanhos das strings (11, 12, 13, 5 e 18) e tempo de exibição (12) passam a ser representados pelos respectivos caracteres: ";", "<","=", "5", "B" e "<", que são respectivamente "0"+11, "0"+12, "0"+13, "0"+5, "0"+18 e "0"+12.

Assim mensagem de configuração seria a seguinte:

"#config502;192.168.1.8<192.168.1.12=255.255.255.05SwedaBPasse o produto...<" Para reconfigurar o ECD, o servidor envia a mensagem com cabeçalho "#reconf" com dados escritos de maneira semelhante a mensagem "#config" mostrada anteriormente. Por exemplo:

"#reconf502;192.168.1.8<192.168.1.12=255.255.255.05SwedaBPasse o produto...<" reconfigura o ECD com os mesmos parâmetros dados anteriormente. Assim o ECD, atualiza seus arquivos de configuração, fechando a conexão atual e efetuando uma nova conexão ao seu servidor configurado com os novos parâmetros.

Referências

Documentos relacionados