Beruflich Dokumente
Kultur Dokumente
TC504
Manual do
Usurio
Verso: 2.10
Reviso: Agosto/2004
ndice
_________________________________________________________________________________ 3
_____________________________________________________________ 3
____________________________________________________________ 5
________________________________________________________________ 6
_____________________________________________________________ 8
__________________________________________________________ 12
!"# ______________________________________ 13
!"# _________________________ 15
!"# _______________________________________ 16
Mensagens de Configuraes Gerais ____________________________________________________________ 19
Mensagens do Display de LCD ________________________________________________________________ 22
Mensagens do Teclado________________________________________________________________________ 27
Mensagens do Leitor de Carto Magntico_______________________________________________________ 28
Mensagens da Porta Serial ____________________________________________________________________ 29
Mensagens de IO de Arquivos _________________________________________________________________ 32
Mensagens de Atualizao_____________________________________________________________________ 34
!"#
%
&
'
(
____________________________________________________ 37
!"# ___________________________________________________ 45
________________________________________________________________________ 47
_________________________________________________________________________________ 48
____________________________________________________________________ 48
Vista Frontal
Vista Lateral
Vista traseira
O terminal deve ser instalado em uma parede ou plataforma vertical atravs de seus furos de
fixao localizados no gabinete traseiro. Prximo ao local de instalao deve haver uma tomada AC e
um ponto de rede Ethernet.
1) Conecte o cabo de fora conforme a foto abaixo.
O scanner dever ligar e emitir um duplo bipe. O display ir acender e mostrar uma imagem
conforme a figura acima.
Ao ser ligado, o terminal pode ser configurado, em seu local, conectando um teclado de
computador no conector mini-din na sua lateral esquerda. Uma vez configurado, de forma que o
terminal funcione com as caractersticas da rede Ethernet onde estiver instalado, ele ir se comunicar
pela rede e poder ser re-configurado remotamente.
Veja o procedimento a seguir:
1) Conecte um teclado de computador no conector mini-din na lateral esquerda do terminal de
consulta TC504.
Enquanto essa barra de progresso desloca na tela, possvel chamar uma de trs aplicativos
especiais do terminal de consulta pressionando uma determinada tecla no teclado de computador. Se
nenhuma tecla for pressionada, o terminal comea o aplicativo principal, que a de terminal de
consultas de preo.
Enquanto a barra estiver deslocando, se for pressionada a tecla P, o terminal inicia o
aplicativo de Configurao do Terminal. Se for pressionada a tecla F, inicia-se o aplicativo
Servidor de FTP do TC504. Se for pressionada a tecla U, inicia-se o aplicativo Atualizao do
Terminal TC504. A seguir descrito o funcionamento do aplicativo de configurao. Os outros
aplicativos existentes no terminal sero descritos depois.
Aps pressionar a tecla P ao iniciar o terminal, dever aparecer no display a seguinte tela:
Utilizando as teclas seta para cima (ArrUp) e seta para baixo (ArrDn) possvel navegar
nos itens do menu de configurao. O crculo preenchido na cor verde indica o item selecionado. Os
itens so os seguintes:
9
IP Cliente: Pressione Enter nesse item para alterar o endereo IP. Esse o endereo
do terminal de consulta. O endereo IP formado por quatro nmeros que podem variar
de 0 a 255. Esses nmeros no podem ser aleatrios, pois eles obedecem a uma regra
determinada pelo protocolo TCP/IP. Via de regra, no pode haver mais de um dispositivo
de rede com o mesmo endereo IP na mesma rede local. Os quatro nmeros do endereo
IP identificam a rede e o terminal, dependendo do valor da mscara de rede. Por exemplo,
para uma mscara de rede de valor 255.255.255.0, os trs primeiros nmeros so 255 e
isso indica que os trs primeiros nmeros dos endereos IP de todos os dispositivos de
rede da rede local identificam a rede e por isso devem ser todos iguais para que os
dispositivos troquem pacotes entre si. No nosso exemplo, o ltimo nmero da mscara
de rede zero, isso significa que o ltimo nmero de todos os endereos IP dos
dispositivos de rede ligados na rede local ir identificar o dispositivo e no deve ser igual
a nenhum outro para no haver conflito de IP na rede. O nmero que identifica o
dispositivo na rede no pode ser zero nem 255, pois o endereo zero a prpria rede e o
endereo 255 um endereo de broadcast. Para o nosso exemplo: mscara de rede =
255.255.255.0. IP do cliente = 192.168.0.150. IP do servidor = 192.168.0.36. Faixa de
IPs vlidos para essa rede: de 192.168.0.1 at 192.168.0.254. Endereo de broadcast
192.168.0.255. Endereo da rede 192.168.0.0.
IP S ervidor: o endereo IP do dispositivo de rede (um computador por exemplo) onde
est rodando o aplicativo servidor do terminal de consulta. Na arquitetura cliente-servidor
do protocolo TCP/IP, vrios dispositivos clientes pedem servios ao um nico
dispositivo servidor. O servio pode ser, no caso, consultar no banco de dados o preo
do produto passado no scanner.
Mscara: Permite alterar a mscara de rede (ou sub-rede). Esse valor depende da rede
local onde o terminal est conectado. A mscara de rede define a classe do endereo IP
10
255.0.0.0
255.255.0.0
255.255.255.0
Faixa de Endereos IP
0.1.0.0 a 126.0.0.0
128.0.0.0 a 191.255.0.0
192.0.1.0 a 223.255.255.0
No Mximo No mximo de
de re de s
dispositivos
de re de
128
16384
2097152
16777214
65534
254
12
!"#
Conecte um teclado de computador no conector mini-din na lateral esquerda do TC504 e
ligue o terminal de consulta. Enquanto a barra de progresso estiver deslocando, pressione no tecla
U no teclado de computador para executar o aplicativo Atualizao do Terminal TC504. Ir
aparecer no display do TC504 a seguinte mensagem:
TC504 Remote Update Program. This program will update the software installed in this
terminal. The updated version will be downloaded by FTP or HTTP from a remote server. Older
files can be erased. You must be aware about this procedure. Do you want to continue? (Y/N)
TC504 Programa de atualizao remota. Este programa ir atualizar o software instalado neste
terminal. A verso atualizada ser baixada por FTP ou http de um servidor remoto. Arquivos antigos
podero ser apagados. Voc deve ter certeza sobre esse procedimento. Voc quer continua?... (Y/N)
13
lcd ..
lcd apps
pwd
get TC504.EXE
bye
!"#
!"#
Quando o terminal se conecta ao servidor, comea a mostrar no display a seqncia de
imagens programada. Nesse momento o terminal est pronto para enviar e receber mensagens com o
servidor. Essas mensagens obedecem uma regra chamada de Protocolo do TC504. Algumas
mensagens tm origem no terminal de consulta, como um cdigo de barras lido no scanner ou dados
de um carto magntico. Outras mensagens tm origem no servidor, como uma tela que deve ser
mostrada no display ou um comando de configurao do terminal.
Esse protocolo executado na camada aplicao do TCP/IP, utilizando para isso um socket
binrio TCP na porta 16510. Essa porta pode ser re-configurada.
Basicamente as mensagens trocadas pelo TC504 e servidor so uma seqncia de bytes e
possuem a seguinte estrutura:
O primeiro byte sempre STX (0x02), e serve para sincronizar a comunicao. A seguir dois
bytes que representam uma Word que identifica a mensagem. Para cada mensagem um ID diferente.
Depois vem uma DWord (4 bytes) que representa o tamanho do argumento. Esses trs primeiros
campos sempre existem em qualquer mensagem trocada entre TC504 e servidor e chama-se header
(cabealho) da mensagem. Uma mensagem ento composta de header e argumento, sendo que o
argumento pode existir ou no, dependendo do tipo de mensagem.
O header sempre obrigatrio e deve ser transmitido num mesmo pacote TCP. Se o
Argumento no existir, o contedo do campo Tam Arg deve ser zero. O argumento pode ser
enviado e um ou mais pacotes TCP diferentes.
16
// Configuraes gerais
#define IDvLive
#define IDwGetIdentify
#define IDContinue
#define IDvSetSetupTCP
#define IDvGetSetupTCP
#define IDvGetUID
#define IDvAlwaysLive
// Display de LCD
#define IDvDispClear
#define IDvShowText
#define IDvShowIMG
#define IDbSetTimeExhib
#define IDvGetTimeExhib
#define IDGoAdv
#define IDStopAdv
// Teclado
#define IDvSetEnableKey
#define IDbGetEnableKey
#define IDcGetCharTerm
// LEC
#define IDvSetLEC
#define IDbGetLEC
#define IDbReadBuffLEC
// Porta Serial
#define IDvConfigSerialA
#define IDvReadSerialA
#define IDvWriteSerialA
#define IDvConfigSerialB
#define IDvReadSerialB
#define IDvWriteSerialB
// IO de Arquivos
#define IDvRecvFile
#define IDvSendFile
#define IDvDeleteAdv
#define IDvDeletePreImg
// Comandos de Atualizaco
#define IDUpdateSoft
#define IDUpdateAdv
#define IDReloadAdv
#define IDReloadPreImg
#define IDRestart
#define IDSecretCode
// Display de LCD
#define IDShowFrame
#define IDvShowImageBlock
#define IDvSendPalette
//none
//none
//DWORD
//ARG_SETUP_TCP
//none
//none
//DWORD
none
DWORD
none
DWORD
ARG_SETUP_TCP
ARG_UID
none
Server
Server
Server
Server
Server
Server (V2.0)
Server
0x21
0x23
0x25
0x27
0x29
0x2B
0x2D
//WORD
//ARG_DISPALY_TEXT
//stream
//WORD
//none
//none
//none
DWORD
DWORD
DWORD
DWORD
WORD
DWORD
DWORD
Server
Server
Server
Server
Server
Server
Server
0x31
0x33
0x35
//DWORD
//none
//BYTE
DWORD
DWORD
none
Server
Server
Client
0x41
0x43
0x45
//DWORD
//none
//none
DWORD
DWORD
ARG_CARD_LEC
Server
Server
Client
0x51
0x53
0x55
0x57
0x59
0x5B
//ARG_SERIAL_CFG
//none
//ARG_SERIAL_DATA
//ARG_SERIAL_CFG
//none
//ARG_SERIAL_DATA
DWORD
ARG_SERIAL_DATA
DWORD
DWORD
ARG_SERIAL_DATA
DWORD
Server
Client
Server
Server
Client
Server
0x61
0x63
0x65
0x67
//ARG_FILENAME
//stream
//none
//none
stream
DWORD
DWORD
DWORD
Server (V2.0)
Server
Server
Server (V2.0)
0x71
0x73
0x75
0x77
0x79
0x7B
//DWORD
//ARG_UPDATE
//DWORD
//DWORD
//DWORD
//none
DWORD
DWORD
DWORD
DWORD
DWORD
ARG_SECRETCODE
Server
Server
Server
Server (V2.0)
Server (V2.0)
Server (V2.0)
0x7B
0x7B
0x7B
//DWORD
//stream
//stream
none
DWORD
DWORD
Server (V2.0)
Server (V2.0)
Server (V2.0)
17
//ARG_IMGUPD
//none
//none
//BYTE
//ARG_SERIAL_STS
DWORD
ARG_IMGUPD
none
Server (V2.0)
Server (V2.0)
Server (V2.0)
Tipos de Argumentos:
typedef struct {
char FileName[128];
}ARG_FILENAME;
typedef struct {
unsigned char aserial;
unsigned char status;
}ARG_GETFILENAME;
typedef struct {
char FileName[128] ;
unsigned long dwStatus;
}ARG_GETFILENAME;
typedef struct {
DWORD dwMY_IP_ADD;
DWORD dwServer_IP;
DWORD dwNetMask;
DWORD dwGateway;
DWORD dwNameServer;
char TCName[32];
WORD wPortsv;
char FTPs[100];
char FTPu[30];
char FTPp[30];
DWORD dwDHCP;
DWORD dwSearchServer;
}ARG_SETUP_TCP;
typedef struct {
BYTE sMacADD[6];
char sMyName[32];
}ARG_UID;
typedef struct {
WORD wPosX;
WORD wPosY;
char sText[128];
char sFont[32];
WORD wSize;
WORD wColor;
WORD wBGColor;
}ARG_DISPLAY_TEXT;
typedef struct {
char sTrack1[128];
18
wPosX;
wPosY;
wWidth;
wHeight;
typedef struct {
char sc[8];
}ARG_SECRETCODE;
typedef struct
{
long imgupdenable;
char imgupdserver[100];
long imgupddeftime;
long imgupdcurtime;
} ARG_IMGUPD;
//
//
//
//
0 = desabilita, 1 = habilita
endereo do servidor de atualizao de imagens
tempo padro de atualizao
tempo atual de atualiao
ID (Hex)
0x11
ID (dec)
17
0x12
18
nenhum
Tamanho do
Argumento
0
0
Mensagem Original
Idv Alw aysLiv e
Mensagem de Resposta
RIDv Alw aysLiv e
ID (Hex)
0x1D
ID (dec)
29
0x1E
30
nenhum
Tamanho do
Argumento
4
0
Mensagem Original
IDw GetIdentify
Mensagem de Resposta
RIDw GetIdentify
ID (Hex)
0x13
ID (dec)
19
0x14
20
DWORD
Tamanho do
Argumento
0
4
Quando um terminal se conecta no servidor, a primeira mensagem que o servidor envia para o
terminal IDwGetIdentify, ou seja, o servidor pede que o terminal envie a sua identificao para
saber se o cliente mesmo um terminal de consultas TC504, e se o servidor poder responder ao
terminal com esse protocolo. O terminal responde com o seguinte argumento (Dword) 0x3101F821,
em que 31 representa o tipo de identificador (1 em ASCII), 01F8 representa 504 em decimal e 21
representa a verso 2.1.
Mensagem Original
IDContinue
Mensagem de Resposta
RIDContinue
ID (Hex)
0x15
ID (dec)
21
0x16
22
nenhum
Tamanho do
Argumento
4
0
Mensagem Original
IDv SetSetupTCP
Mensagem de Resposta
ID (Hex)
0x17
ID (dec)
23
20
Tamanho do
Argumento
222
RIDv SetSetupTCP
24
Cliente
DWORD
// Endereo IP do terminal
// Endereo IP do servidor
// Mscara de rede
// Endereo do Gateway
// Endereo do servidor de nomes
// Nome do terminal (string terminada em caracter nulo usada na
// linguagem C)
WORD wPortsv;
// Porta de comunicao com o servidor
char FTPs[100];
// String com o endereo do servidor de atualizao
// ("http://..." ou "ftp://....")
char FTPu[30];
// Nome do usurio para o servidor de FTP (atualizao)
char FTPp[30];
// Senha do usurio para o servidor de FTP
DWORD dwDHCP;
// Se o terminal usar IP Dinmico, esse valor ser 1. Se no 0.
DWORD dwSearchServer; // Se a busco do servidor for automtica, esse valor ser 1.
}ARG_SETUP_TCP;
4 by tes
Server_I
P
4 by tes
NetMask
Mensagem Original
IDv GetSetupTCP
Mensagem de Resposta
RIDv GetSetupTCP
4 by tes
Gateway
4 by tes
32 by tes
NameServe TCName[32
r
]
ID (Hex)
0x19
ID (dec)
25
0x1A
26
2 by tes
Portsv
100 by tes
FTPs
30 by tes 30 by tes
FTPu
FTPp
ARG_SETUP_TCP
4 by tes
DHCP
4 by tes
SearchServe
r
Tamanho do
Argumento
0
222
O servidor pede que o terminal de consulta retorne a sua configurao de rede. O terminal
responde com o argumento ARG_SETUP_TCP, composto por 222 bytes.
typedef struct {
DWORD dwMY_IP_ADD;
DWORD dwServer_IP;
DWORD dwNetMask;
DWORD dwGateway;
DWORD dwNameServer;
char TCName[32];
WORD wPortsv;
char FTPs[100];
char FTPu[30];
// Endereo IP do terminal
// Endereo IP do servidor
// Mscara de rede
// Endereo do Gateway
// Endereo do servidor de nomes
// Nome do terminal (string terminada em caracter nulo usada na
// linguagem C)
// Porta de comunicao com o servidor
// String com o endereo do servidor de atualizao
// ("http://..." ou "ftp://....")
// Nome do usurio para o servidor de FTP (atualizao)
21
Mensagem Original
Idv GetUID
Mensagem de Resposta
RIDv GetUID
ID (Hex)
0x1B
ID (dec)
27
0x1C
28
Tamanho do
Argumento
0
ARG_UID
38
O servidor pede que o terminal retorne o seu Universal IDentifier, que corresponde ao
endereo Ethernet (M AC address) que nico para cada dispositivo de rede no mundo. O terminal
responde com o argumento ARG_UID (verso 2.0 em diante).
typedef struct {
BYTE sMacADD[6]; // Endereo Ethernet do terminal de consulta (MAC Address)
char sMyName[32]; // Nome do terminal (string terminada em caracter nulo usada na
// linguagem C)
}ARG_UID;
ID (Hex)
0x21
ID (dec)
33
0x22
34
DWORD
Tamanho do
Argumento
2
4
Apaga o display. O terminal, ao receber esse comando apaga o display preenchendo a cor de
fundo com o valor do argumento WORD. O terminal responde com o argumento DWORD com
valor igual a um se reconheceu o comando e zero se no.
Mensagem Original
Idv Show Text
Mensagem de Resposta
RIDv Show Text
ID (Hex)
0x23
ID (dec)
35
0x24
36
DWORD
Tamanho do
Argumento
170
4
M ostra no display o texto sText na posio wPosX e wPosY com a fonte sFont, tamanho
wSize, cor wColor e cor de fundo wBGColor. A posio X e Y se referem ao canto superior
esquerdo do display (posio 0,0). X pode variar de 0 a 320 e Y variar de 0 a 240 e a posio
320,240 o canto inferior direito do display. A estrutura do tipo ARG_DISPLAY_TEXT pode ser
vista abaixo:
22
O tipo da fonte sFont e corresponde ao nome do arquivo bitmap que contm todos os
caracteres da fonte. Esse arquivo fica no diretrio "c:\fonts\" do TC504. Se sFont for igual a um
caractere vazio, ento o terminal usa a ltima fonte aberta. Veja abaixo alguns tipos de fontes do
TC504.
CAR8X8.BM P
COURN8.BM P
23
COURNB12.BM P
LUCIDA12.BM P
LUCIDA16.BM P
SM ALL.BM P
CAR6x8.BM P
wSize um multiplicador do tamanho do caractere, sendo que 1 o tamanho normal.
wColor a cor do texto e wBGColor a cor de fundo. Esse valor representa uma das cores
da paleta quando o seu valor est entre 0 e 255. Entretanto, o TC504 procura na paleta as cores mais
prximas de determinadas cores padro. Essas cores padro recebem os seguintes valores:
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
clBlack
clMaroon
clGreen
clOlive
clNavy
clPurple
clTeal
clGray
clSilver
clRed
clLime
clYellow
clBlue
0x100
0x101
0x102
0x103
0x104
0x105
0x106
0x107
0x108
0x109
0x10A
0x10B
0x10C
//
//
//
//
//
//
//
//
//
//
//
//
//
Preto
Marrom
Verde Escuro
Verde Oliva
Azul Marinho
Prpura
verde fosco
Cinza escuro
Cinza claro
Vermelho
Verde Claro
Amarelo
Azul
24
clFuchsia
clAqua
clWhite
clTransp
0x10D
0x10E
0x10F
0xFFFF
//
//
//
//
Mensagem Original
IDv Show IMG
Mensagem de Resposta
RIDv Show IMG
Magenta
Ciano
Branco
Transparente (a partir da verso 2.0)
ID (Hex)
0x25
ID (dec)
37
0x26
38
Tamanho do
Argumento
Varivel
DWORD
O servidor envia essa mensagem para o terminal para que esse mostre no display,
imediatamente, uma imagem que enviada como argumento. O terminal recebe a mensagem e
responde com um argumento tipo DWord que equivale a 0x00000001 se o terminal conseguiu
receber e mostrar a imagem no display e 0x00000000 se houver alguma falha.
O argumento de IDvShowIM G tem tamanho varivel, porm o seu tamanho deve ser enviado
no campo "TamArg" do Header. O argumento uma imagem formada por sua paleta de cores e os
pixels.
A paleta enviada primeiro e correspondem a 768 bytes. Cada cor da paleta possui 3 bytes
que correspondem aos componentes Vermelho, Verde e Azul da cor. Como so 256 cores, temos
portanto 768 bytes. O primeiro byte o componente vermelho (R) da primeira cor da paleta. O
segundo byte o componente verde (G) da primeira cor da paleta. O terceiro byte o componente
azul (B) da primeira cor da paleta. O quarto byte o componente vermelho da segunda cor da paleta,
e assim segue at o componente azul da ltima cor da paleta.
R1, G1, B1, R2, G2, B2, R3, . . . B255, R256, G256, B256
Depois so transmitidos os pixels que compem a imagem. Cada byte corresponde a um
pixel e seu valor um ndice de cor da paleta. Se o byte valer 0x00, corresponde a primeira cor da
paleta, se valer 0xFF a ltima cor da paleta.
A imagem possui 320 pixel na horizontal e at 240 pixel na vertical totalizando no mximo
76800 pixels ou bytes. Cada byte que chega representado no display como um pixel. Os bytes vo
preenchendo a tela da esquerda para a direita e de cima para baixo conforme a tabela abaixo:
Y\X
0
1
2
237
238
239
317
318
319
Px1
Px2
Px3
...
Px318
Px319
Px320
Px321
Px322
Px323
...
Px638
Px639
Px640
Px641
Px642
Px643
...
Px958
Px959
Px960
...
...
...
...
...
...
...
Px75841
Px75842
Px75843
...
Px76158
Px76159
Px76160
Px76161
Px76162
Px76163
...
Px76478
Px76479
Px76480
Px76481
Px76481
Px76481
...
Px76798
Px76799
Px76800
25
Mensagem Original
IDbSetTimeExhib
Mensagem de Resposta
RIDbSetTimeExhib
ID (Hex)
0x27
ID (dec)
39
0x28
40
DWORD
Tamanho do
Argumento
2
4
O servidor envia o comando IDbSetTimeExhib para informar quanto tempo uma imagem
enviada pelo comando IDvShowIM G deve ficar exposta no display. O argumento uma WORD que
corresponde ao tempo em segundos. Toda imagem que for enviada pelo comando IDvShowIM G
ficar exposta no display pelo tempo definido por esse comando ou at que outra imagem seja
recebida por outro comando IDvShowIM G, o que vier primeiro.
O terminal responde 1 se executou o comando e zero se no.
Mensagem Original
IDv GetTimeExhib
Mensagem de Resposta
RIDv GetTimeExhib
ID (Hex)
0x29
ID (dec)
41
0x2A
42
WORD
Tamanho do
Argumento
0
2
Esse comando serve para requisitar ao terminal que envie o valor de tempo de exibio que
est ajustado no terminal. A resposta volta no argumento WORD do cliente e corresponde ao tempo
em segundos.
Mensagem Original
IDGoAdv
Mensagem de Resposta
RIDGoAdv
ID (Hex)
0x2B
ID (dec)
43
0x2C
44
DWORD
Tamanho do
Argumento
0
4
Esse comando faz que o terminal volte ao modo loop de imagens (slide show). Alguns
comandos (ou eventos) como IDStopAdv, IDReloadAdv, fazem com que o terminal pare de exibir o
loop de imagens. A resposta do terminal a confirmao da mensagem recebida.
Mensagem Original
IDStopAdv
Mensagem de Resposta
RIDStopAdv
ID (Hex)
0x2D
ID (dec)
45
0x2E
46
DWORD
Tamanho do
Argumento
0
4
Esse comando faz que o terminal pare de exibir o loop de imagens (slide show). A resposta
do terminal a confirmao da mensagem recebida.
Mensagem Original
ID (Hex)
ID (dec)
Origem
26
Tipo do Argumento
Tamanho do
Argumento
0x81
129
Servidor
DWORD
0x82
130
Cliente
Nenhum
Este comando utilizado para mostrar um frame armazenado no terminal, em seu display.
Uma boa idia enviar as imagens de pre-armazenamento (verso 2.0 em diante).
Mensagem Original
IDv Show ImageBlock
Mensagem de Resposta
RIDv Show ImageBlock
ID (Hex)
0x83
ID (dec)
131
0x84
132
DWORD
Tamanho do
Argumento
Varivel
4
Este comando utilizado para uma regio de imagem para o terminal. Deve-se enviar o
ARG_IM GBLOCK e em seguida o numero de bytes correspondestes aos pixels do bloco de
imagem (largura x altura), portanto para enviar uma imagem de 20 de largura por 10 de altura, 200
bytes devem ser enviados aps o ARG_IM GBLOCK (verso 2.0 em diante).
typedef struct {
unsigned short
unsigned short
unsigned short
unsigned short
}ARG_IMGBLOCK;
wPosX;
wPosY;
wWidth;
wHeight;
Mensagem Original
IDv SendPalette
Mensagem de Resposta
RIDv SendPalette
//
//
//
//
Posio inicial x
Posio inicial y
Largura
Altura
ID (Hex)
0x85
ID (dec)
133
0x86
134
DWORD
Tamanho do
Argumento
768
4
Este comando serve para enviar uma paleta de cores para o terminal. Cada cor da paleta
formada por 3 bytes, 1 byte para o vermelho, 1 byte para o verde e 1 byte para o azul. Como o
terminal utiliza 256 combinaes diferentes de cores, so necessrios 768 bytes (256 x 3) para
formar a paleta (verso 2.0 em diante).
Se o comando for aceito, o terminal responde com o argumento igual a um.
Mensagens do Teclado
Mensagem Original
IDv SetEnableKey
Mensagem de Resposta
RIDv SetEnableKey
ID (Hex)
0x31
ID (dec)
49
0x32
50
DWORD
Tamanho do
Argumento
4
4
Mensagem Original
IDbGetEnableKey
Mensagem de Resposta
RIDbGetEnableKey
ID (Hex)
0x33
ID (dec)
51
0x34
52
DWORD
Tamanho do
Argumento
0
4
Esse comando serve para requisitar ao terminal que informe ao servidor se est habilitado ou
no a enviar as teclas pressionadas ao servidor. O terminal retorna 1 se o teclado estiver habilitado e
zero se no.
Mensagem Original
IdcGetCharTerm
Mensagem de Resposta
RIDcGetCharTerm
ID (Hex)
0x35
ID (dec)
53
Origem
Cliente
Tipo do Argumento
BYTE
Tamanho do
Argumento
1
0x36
54
Servidor
nenhum
Se alguma tecla do teclado de funo for pressionada, o terminal de consulta envia o valor da
tecla pressionada atravs desse comando IDcGetCharTerm. O argumento a tecla pressionada com
valor em ASCII. As quatro teclas de funo do TC504 equivalem, da esquerda para direita aos
caracteres "a", "b", "c", "d".
ID (Hex)
0x41
ID (dec)
65
0x42
66
DWORD
Tamanho do
Argumento
4
4
Esse comando serve para habilitar e desabilitar o leitor de carto magntico. Se o argumento
(DWord) for 1, o leitor de carto magntico ser habilitado. Se for zero, o leitor ser desabilitado.
O terminal confirma o comando do servidor enviando a resposta RIDvSetLEC com o
argumento DWord igual a 1 se foi possvel obedecer ao comando e zero se no.
Mensagem Original
IDbGetLEC
Mensagem de Resposta
RIDbGetLEC
ID (Hex)
0x43
ID (dec)
67
0x44
68
28
DWORD
Tamanho do
Argumento
0
4
Mensagem Original
IDbReadBuffLEC
Mensagem de Resposta
RIDbReadBuffLEC
ID (Hex)
0x45
ID (dec)
69
Origem
Cliente
Tipo do Argumento
ARG_CARD_LEC
Tamanho do
Argumento
388
0x46
70
Servidor
DWORD
Se o leitor de carto magntico est habilitado e um carto passado no leitor, o contedo das
trilhas do carto transmitido do terminal de consulta para o servidor pelo comando
IDbReadBuffLEC. O argumento do tipo ARG_CARD_LEC. Os dados das trilhas so
transmitidos em formato ASCII em uma string terminada com caractere nulo. O campo dwStatus
vale:
0 = Nenhuma trilha lida
1 = Trilha 1 lida
2 = Trilha 2 lida
3 = Trilha 1 e 2 lidas
4 = Trilha 3 lida
5 = Trilha 1 e 3 lidas
6 = Trilha 2 e 3 lidas
7 = Trilha 1, 2 e 3 lidas
Se houver erro de leitura o contedo da trilha errada vale "e".
typedef struct {
char sTrack1[128];
char sTrack2[128];
char sTrack3[128];
DWORD dwStatus;
}ARG_CARD_LEC; // Argumento do Cartao
Mensagem Original
IDv ConfigSerialA
ID (Hex)
0x51
ID (dec)
81
Tamanho do
Argumento
12
Mensagem Original
Dv ConfigSerialB
Mensagem de Resposta
RIDv ConfigSerialB
0x52
82
ID (Hex)
0x57
ID (dec)
87
0x58
88
Cliente
DWORD
DWORD
4
Tamanho do
Argumento
12
4
Esse comando serve para configurar as portas seriais do terminal de consulta. O argumento
do tipo ARG_SERIAL_CFG. O campo dwOpen do tipo DWORD serve para abrir e fechar a porta
serial. Quando dwOpen igual a 1 a porta serial aberta. Se dwOpen for igual a zero a porta serial
fechada.
dwBaud a taxa de comunicao da porta serial. Por exemplo, se dwBaud = 9600 =
0x00002580, a taxa de comunicao ser 9600bps.
bParity a Paridade.
0 = PARITY_NONE.
1 = PARITY_ODD.
2 = PARITY_EVEN.
3 = PARITY_M ARK.
4 = PARITY_SPACE.
bDataBits a quantidade de data bits. Pode ser 7 ou 8.
wTimeOut o time out da serial em milisegundos.
typedef struct {
DWORD dwOpen;
DWORD dwBaud;
BYTE bParity;
BYTE bDataBits;
WORD wTimeOut;
}ARG_SERIAL_CFG;
O terminal responde ao servidor com o argumento DWORD que ser 1 ser for possvel abrir
a configurar a porta serial e zero se no.
Mensagem Original
IDv ReadSerialA
Mensagem de Resposta
RIDv ReadSerialA
ID (Hex)
0x53
ID (dec)
83
Origem
Cliente
Tipo do Argumento
ARG_SERIAL_DATA
Tamanho do
Argumento
258
0x54
84
Servidor
nenhum
Mensagem Original
IDv ReadSerialB
Mensagem de Resposta
RIDv ReadSerialB
ID (Hex)
0x59
ID (dec)
89
Origem
Cliente
Tipo do Argumento
ARG_SERIAL_DATA
Tamanho do
Argumento
258
0x5A
90
Servidor
nenhum
30
Mensagem Original
IDv WriteSerialA
Mensagem de Resposta
RIDv WriteSerialA
ID (Hex)
0x55
ID (dec)
85
0x56
86
Mensagem Original
IDv WriteSerialB
Mensagem de Resposta
RIDv WriteSerialB
ID (Hex)
0x5B
ID (dec)
91
0x5C
92
DWORD
DWORD
Tamanho do
Argumento
258
4
Tamanho do
Argumento
258
4
O servidor tambm pode enviar dados para serial. No terminal de consultas TC504, o
scanner M etrologic est ligado na serial B (COM 2). Isso significa que possvel configurar o
scanner, de acordo com o manual do Scanner M etrologic Cubit IS6520, enviando comandos de
programao pela serial.
O formato do comando IDvWriteSerialX semelhante ao IDvReadSerialX, somente a origem
e o destino mudam, e no caso de IDvWriteSerial, o terminal responde ao servidor se recebeu e
executou o comando.
typedef struct {
WORD wTamBuff;
BYTE sBuffer[256];
}ARG_SERIAL_DATA;
Mensagem Original
Idv GetStatus
Mensagem de Resposta
RIDv GetStatus
ID (Hex)
0xA1
ID (dec)
161
0xA2
162
31
ARG_SERIAL_STS
Tamanho do
Argumento
1
2
Mensagem Original
Idv SetStatus
Mensagem de Resposta
RIDv SetStatus
ID (Hex)
0xA3
ID (dec)
163
0xA4
164
nenhum
Tamanho do
Argumento
2
0
Este comando utilizado para escrever o estado da porta serial do terminal. O argumento que
o servidor deve enviar para o terminal um BYTE, tendo o valor 0 = COM 1 e 1 = COM 2. O outro
BYTE formado da seguinte forma:
Bit0: RTS;
Bit1: DTR;
A resposta a este comando no tem argumento.
typedef struct {
unsigned char aserial;
unsigned char status;
}ARG_SERIAL_DATA;
Mensagens de IO de Arquivos
Mensagem Original
IDv Recv File
Mensagem de Resposta
RIDv Recv File
ID (Hex)
0x61
ID (dec)
97
0x62
98
Stream
Tamanho do
Argumento
0
Varivel
IDvRecvFile usado quando o servidor precisa receber arquivos do terminal de consulta. Por
exemplo, o arquivo de configurao do loop de imagens "IM AGES.CFG". Para receber cada arquivo
do terminal necessrio enviar um comando IDvRecvFile. Esse comando possui argumento do tipo
ARG_FILENAM E, que devem ser preenchidos com o caminho e nome do arquivo que se deseja
receber. O terminal, ento, retorna o argumento ARG_GETFILENAM E. O campo FileName com
32
Mensagem Original
Idv SendFile
Mensagem de Resposta
RIDv SendFile
ID (Hex)
0x63
ID (dec)
99
0x64
100
DWORD
Tamanho do
Argumento
Varivel
4
IDvSendFile usado quando o servidor precisa mandar arquivos para o terminal de consulta.
Por exemplo, as imagens e o arquivo de configurao do loop de imagens "IM AGES.CFG". Para
cada arquivo que enviado para o terminal necessrio enviar um comando IDvSendFile. Esse
comando possui um argumento de tamanho varivel, que informado no campo "Tam_Arg".
Os primeiros 128 bytes do argumento so usados para enviar o nome do arquivo que
corresponde a uma string terminada em caractere nulo (ARG_FILENAM E). Essa string o "path"
onde o arquivo ser gravado no TC504 mais o nome do arquivo. Por exemplo, para gravar a imagem
"promo.gif" no diretrio de imagens do TC504, para que essa imagem aparea no "slide show", a
string em ARG_FILENAM E ser "\images\promo.gif".
O primeiro byte do arquivo o 129o byte, e o tamanho do argumento ser o tamanho do
arquivo + 128 bytes.
O terminal responde a esse comando com um argumento tipo DWORD que igual a 1 se o
arquivo tiver sido recebido e gravado com sucesso e zero se houver alguma falha.
typedef struct {
char FileName[128];
}ARG_FILENAME;
Mensagem Original
IDv DeleteAdv
Mensagem de Resposta
RIDv DeleteAdv
ID (Hex)
0x65
ID (dec)
101
0x66
102
DWORD
Tamanho do
Argumento
0
4
Esse comando enviado pelo servidor para apagar todas as imagens do "slide show" que se
encontram no diretrio "c:\images" no TC504. Portanto, quando necessrio atualizar as imagens do
"slide show" do TC504, primeiro necessrio apagar as imagens anteriores enviando esse comando,
para evitar que o terminal fique sem espaos para o seu funcionamento (verso 2.0 em diante).
Mensagem Original
IDv DeletePreImg
ID (Hex)
0x67
ID (dec)
103
Tamanho do
Argumento
0
0x68
104
Cliente
DWORD
Esse comando enviado pelo servidor para apagar todas as imagens de pre-armazenamento,
que se encontram no diretrio "c:\preimg" no TC504. Portanto, quando necessrio atualizar as
imagens de pre-armazenamento do TC504, primeiro necessrio apagar as imagens anteriores
enviando esse comando, para evitar que o terminal fique sem espaos para o seu funcionamento. As
imagens de pre-armazenamento so carregadas na inicializao do terminal e no fazem parte do
slide show. Estas imagens s so mostradas no terminal, ao receber o comando IDShowFrame.
Mensagens de Atualizao
Mensagem Original
IDUpdateSoft
Mensagem de Resposta
RIDUpdateSoft
ID (Hex)
0x71
ID (dec)
113
0x72
114
DWORD
Tamanho do
Argumento
4
4
O terminal de consultas TC504 pode ter o seu software interno atualizado. Uma das formas
plugando um teclado no conector mini-din e pressionando a tecla "U" quando o terminal se inicia
(veja em "Aplicativo Atualizao do Terminal TC504"). Outra forma do terminal atualizar o seu
software remotamente, usando o comando IDUpdateSoft.
Esse comando ir sair do programa verificador de preos e chamar o aplicativo de
Atualizao do Terminal TC504.
O argumento desse comando do tipo DWORD e equivale a uma senha para evitar que o
terminal seja re-atualizado por um comando aleatrio. O valor dessa senha deve ser 0x5A33A5CC.
O terminal confirma o recebimento da mensagem e executa o aplicativo de Atualizao do
Terminal TC504. Veja mais sobre esse procedimento no captulo "Aplicativo Atualizao do
Terminal TC504".
Mensagem Original
IDUpdateAdv
Mensagem de Resposta
RIDUpdateAdv
ID (Hex)
0x73
ID (dec)
115
0x74
116
DWORD
Tamanho do
Argumento
198
4
Esse comando est reservado para uso futuro. No est implementado atualmente no
terminal TC504 Vs.1.0.
Mensagem Original
IDReloadAdv
Mensagem de Resposta
RIDReloadAdv
ID (Hex)
0x75
ID (dec)
117
0x76
118
34
DWORD
Tamanho do
Argumento
4
4
Mensagem Original
IDReloadPreImg
Mensagem de Resposta
RIDReloadPreImg
ID (Hex)
0x77
ID (dec)
119
0x78
120
DWORD
Tamanho do
Argumento
4
4
O servidor envia para o terminal de consulta o comando IDReloadPreImg para que o terminal
recarregue os arquivos de imagem (BM P e GIF) do seu pre-armazenamento, que se encontram na
pasta "c:\preimg" conforme o arquivo de configurao "c:\apps\preimg.cfg".
Esse comando usado no procedimento de atualizao das imagens do slide show. Primeiro
necessrio apagar as imagens anteriores usando o comando " IDv DeletePreImg" ento necessrio
enviar os arquivos de novas imagens e o arquivo de configurao "images.cfg", usando o comando
"IDv SendFile" (uma vez para cada arquivo). Ento necessrio pedir ao terminal que recarregue as
imagens para a memria estendida usando o comando " IDReloadPreImg " (verso 2.0 em diante).
Mensagem Original
IDRestart
Mensagem de Resposta
RIDRestart
ID (Hex)
0x79
ID (dec)
121
0x7A
122
DWORD
Tamanho do
Argumento
4
4
Mensagem Original
IDSecretCode
Mensagem de Resposta
RIDSecretCode
ID (Hex)
0x7B
ID (dec)
123
0x7C
124
Tamanho do
Argumento
0
4
Ao enviar este comando, o terminal responde com 8 bytes que corresponde identificao de
segurana (verso 2.0 em diante).
typedef struct {
35
Mensagem Original
IDSetConfigAdv Serv er
Mensagem de Resposta
RIDSetConfigAdv Serv er
ID (Hex)
0x91
ID (dec)
145
0x92
146
DWORD
Tamanho do
Argumento
112
4
Mensagem Original
IDGetConfigAdv Serv er
Mensagem de Resposta
RIDGetConfigAdv Serv er
//
//
//
//
0 = desabilita, 1 = habilita
endereo do servidor de atualizao de imagens
tempo padro de atualizao
tempo atual de atualiao
ID (Hex)
0x93
ID (dec)
147
0x94
148
ARG_IMGUPD
Tamanho do
Argumento
4
112
Mensagem Original
IDConnectAdv Serv er
Mensagem de Resposta
RIDConnectAdv Serv er
//
//
//
//
0 = desabilita, 1 = habilita
endereo do servidor de atualizao de imagens
tempo padro de atualizao
tempo atual de atualiao
ID (Hex)
0x95
ID (dec)
149
0x96
150
Nenhum
Tamanho do
Argumento
0
0
36
37
38
41
.!.......
Em seguida o servidor manda uma mensagem com o texto "Product Not Found" para ser
apresentado no display do terminal.
STX: 0x02
ID: 0x0023 (IDvShowText)
Tam Arg: 0x000000AA (tamanho do argumento 170 bytes)
Argumento tipo ARG_DISPALY_TEXT (170 bytes)
WORD wPosX = 0x0018 (24)
WORD wPosY = 0x0050 (80)
char sText[128] = "Product Not Found"
char sFont[32] = "\fonts\lucida16.bmp"
42
44
&
!"#
No apague nem edite esse arquivo, sob pena de perder a garantia do produto. Se for
necessrio alterar a seqncia dos procedimentos de inicializao do terminal de consulta, altere
somente o arquivo "start.bat".
O arquivo "START.BAT" d continuidade ao procedimento de inicializao do terminal:
:tc504
tc504
goto tc504
46
No diretrio "fonts" esto arquivos tipo BM P, preto e branco (1bpp) que contm os
caracteres dos textos que so apresentados no display do terminal.
No diretrio "xdos" esto arquivos de sistema do sistema operacional Free DOS. No apague
esses arquivos nem esse diretrio.
O arquivo "E2000.COM " o driver de rede. No apague esse arquivo.
'
A GERTEC oferece servio gratuito de suporte tcnico para todos os seus clientes,
orientando a seus usurios quanto ao uso correto de seus produtos e servios. Este servio pode ser
obtido ou solicitado atravs da Internet, no e-mail suporte@gertec.com.br.
Informaes adicionais sobre o Kit de Desenvolvimento de Software do TC504 devem ser
requisitadas ao suporte. O fornecimento do SDK depende da verificao do nmero de srie do
produto e da assinatura de um "Acordo mtuo de confidencialidade" (NDA).
47
)
GERTEC marca registrada da GERTEC Telecomunicaes Ltda.
IBM PC/XT/AT so marcas registradas da International Business Machines Corporation.
MS-Windows 98, Me, 2000, e NT so marcas registradas da Microsoft Corporation.
As demais marcas citadas so de propriedade de seus respectivos donos.
48