Plataforma de Comunicação Elgin versão 3.13.9
Documentação das bibliotecas de integração com hardware Elgin
Impressora de Etiquetas

Módulo para comunicação com as impressoras de etiqueta. Mais...

Funções

int[] DirectIO (int tipo, String modelo, String conexao, int param, byte[] writeData, int writeNum, byte[] readData, int readNum)
 Envia comandos, em protocolo suportado pela impressora, direto para a porta de comunicação. Mais...
 

Descrição detalhada

Módulo para comunicação com as impressoras de etiqueta.

Para utilizar essas funções em ambiente Android, é necessário importar a classe referente a este módulo:

‍import com.elgin.e1.Impressora.Etiqueta;


Após importar a classe, suas funções poderão ser acessadas diretamente via operador ponto ("."), uma vez que seus métodos são estáticos.

O exemplo abaixo ilustra como alterar a velocidade de impressão, gerar um texto na etiqueta e imprimi-la, em ambiente Android.

import com.elgin.e1.Impressora.Etiqueta;
// ...
Etiqueta.SetVelImpressao(11);
Etiqueta.Limpa(1);
Etiqueta.GerarTexto(1, 4, 1, 1, 100, 100, "Texto demonstrativo...");
Etiqueta.Imprime(3, "L42PRO", "192.168.0.1", 9100);
// ...


Funções impressora de etiquetas

- DespejarArquivo

Funções

◆ DirectIO()

int[] DirectIO ( int  tipo,
String  modelo,
String  conexao,
int  param,
byte[]  writeData,
int  writeNum,
byte[]  readData,
int  readNum 
)

Envia comandos, em protocolo suportado pela impressora, direto para a porta de comunicação.

Função de despejo de comandos na porta de comunicação. Essa função também recebe dados da porta.

Parâmetros
tipo- Parâmetro do tipo numérico que define o tipo de comunicação que será estabelecido.

Conforme tabela a seguir:
Valor Referência
1 USB
2 RS232
3 TCP/IP

modelo- Parâmetro do tipo caractere que especifica o modelo para conexão.

Conforme lista:

Valores
L42
L42PRO
TT042-50


conexao- Parâmetro do tipo caractere que define detalhes de conexão.

Detalhes de conexão:
Referência Valor exemplo
USB USB
RS232 COM2
TCP/IP 192.168.0.20

param- Parâmetro do tipo numérico auxiliar para a conexão com a impressora.

Utilizado para especificar baudrate ou porta de comunicação TCP/IP.
  • OBS: Quando a conexão estabelecida for a USB esse parâmetro é desconsiderado, podendo ser definido com o valor 0.

writeData- Sequência de bytes que devem ser enviados para a porta de comunicação.

writeNum- Quantidade de bytes enviados e que serão escritos.

readData- Variável que receberá os dados de retorno caso seja necessário.

readNum- Quantidade de dados que se espera ler. Para evitar a leitura da porta esse parâmetro deve estar em ZERO (0).

Veja, abaixo, um exemplo de uso válido desta função, em Java, seguido de um comentário detalhado sobre os argumentos passados:
byte[] esc = {2, 70, 13, 13}; // Avanca papel
byte[] ler = new byte[1000]; // Armazena os dados retornados pela impressora (até 1000 bytes, nesse caso)
int[] ret = Etiqueta.DirectIO(3, "L42PRO", "192.168.10.98", 9100, esc, 4, ler, 0);
// Imprime o retorno de DirectIO e a resposta da impressora:
System.out.printf("\n Ret: %d ; Escreveu: %d ; Leu: %d ; Dados lidos: %s \n", ret[0], ret[1], ret[2], new String(ler));


‍No exemplo acima, os primeiros quatro argumentos permitem que a função envie o comando à impressora L42PRO via TCP/IP, localizada em 192.168.10.98:9100.

‍Em seguida, são passados a variável esc e o argumento 4 à função; a variável esc contém o comando que o DirectIO enviará à impressora - um avanço de papel, em PPLA - e o valor 4, a quantidade de bytes que devem ser escritos - no exemplo, todos os quatro bytes do comando armazenado na variável esc.

‍Note ainda o byte 13, duplicado, no comando: os comandos PPLA devem terminar, por padrão, com um byte 13 (caractere CR); a impressora L42PRO, no entanto, necessita de um CR adicional para que o comando seja reconhecido, dai o motivo do byte 13 estar duplicado.

‍Por fim, são passados à função a variável ler e o argumento 0; a variável ler armazenará os dados retornados pela impressora, em resposta ao comando enviado, e o valor 0, a quantidade de bytes que deverão ser lidos - no exemplo, o comando de avanço de papel não retorna nenhum dado, portanto, o argumento 0 passado faz com que o DirectIO não realize a leitura da porta.


Retorna
O retorno da função é um vetor de int, com três posições, cujo conteúdo é descrito a seguir:

‍Posição 0: Código de retorno da função (=0: Sucesso, <0: Falha de comunicação/leitura).
Posição 1: Quantidade de bytes escritos na porta (<0: Falha de escrita).
Posição 2: Quantidade de bytes lidos na porta.