Plataforma de Comunicação Elgin versão 3.13.9
Documentação das bibliotecas de integração com hardware Elgin
|
Módulo para comunicação com as impressoras térmicas. Mais...
Funções | |
int | DirectIO (byte[] writeData, int writeNum, byte[] readData, Inteiro readNum) |
Envia comandos ESCPOS direto para a porta de comunicação. Mais... | |
Módulo para comunicação com as impressoras térmicas.
Para utilizar essas funções em ambiente Android, é necessário importar a classe referente a este módulo:
import com.elgin.e1.Impressora.Termica;
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.
Para estabelecer uma comunicação com a impressora, será necessário abrir uma conexão através do método AbreConexaoImpressora:
Termica.AbreConexaoImpressora(3, "i9", "192.168.0.1", 9100); // Argumentos ilustrativos
Caso o tipo de conexão seja USB (tipo = 1), a comunicação somente será efetuada se o usuário permitir o acesso à impressora na solicitação que aparecer na tela; devido a isso, existem duas formas para chamar a função AbreConexaoImpressora:
1ª: Chamá-la nos métodos de Activity onCreate ou onResume - nesse caso, a Activity sempre terá uma conexão USB aberta enquanto estiver "ativa" / em uso.
--> A função FechaConexaoImpressora deverá ser chamada em onDestroy ou em onStop.
2ª: Chamá-la através de um botão - nesse caso, a comunicação USB será estabelecida somente após um clique em tal botão.
O exemplo abaixo ilustra como abrir uma conexão TCP/IP com a impressora Elgin i9 em ambiente Android, avançar 50 linhas de papel ("imprimir em branco") e fechar a conexão.
O exemplo abaixo ilustra como abrir uma conexão USB com a impressora Elgin i9 em ambiente Android, avançar 50 linhas de papel ("imprimir em branco") e fechar a conexão.
Conexão / desconexão automática
A biblioteca E1 Android inicia e encerra conexões USB automaticamente, dispensando o usuário de chamar os métodos AbreConexaoImpressora e FechaConexaoImpressora, nas seguintes situações:
Funções impressora térmica
int DirectIO | ( | byte[] | writeData, |
int | writeNum, | ||
byte[] | readData, | ||
Inteiro | readNum | ||
) |
Envia comandos ESCPOS 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 de comunicação.
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. Após a execução da função, essa variável deve indicar a quantidade de dados lidos da porta. Para evitar a leitura da porta esse parâmetro deve valer 0 (ZERO). Perceba que este parâmetro recebe, como argumento, um objeto da classe Inteiro, inicializado com o valor que deseja-se passar ao parâmetro. Essa classe representa um número inteiro e, para utilizá-la, é necessário importá-la:
Possui dois construtores: um construtor padrão (sem argumentos), que inicializa o objeto com valor 0; e um construtor com um argumento do tipo int, que inicializa o objeto com o valor passado nesse argumento. Apresenta dois métodos: o método getValor (assinatura: int getValor()), que retorna o valor atual da instância (definido no construtor ou na função setValor); e o método setValor (assinatura: void setValor(int valor)), que modifica o valor da instância pelo valor passado no argumento). Veja, abaixo, um exemplo de uso válido desta função, em Java, seguido de um comentário detalhado sobre os argumentos passados: |
No exemplo acima, são passados a variável esc e o argumento 3 à função; a variável esc contém o comando que o DirectIO enviará à impressora - um comando em ESCPOS que solicita o nome da impressora - e o valor 3, a quantidade de bytes que devem ser escritos - no exemplo, todos os três bytes do comando armazenado na variável esc.
Em seguida, são passados à função as variáveis ler e leu; a variável ler armazenará os dados retornados pela impressora, em resposta ao comando enviado, e a variável leu, armazenará a quantidade de bytes efetivamente lidos.
O valor 1 (ou qualquer valor maior do que zero), inicialmente atribuido à variável leu, solicita a leitura da porta. Após a leitura, o valor final dessa variável será a quantidade de dados lidos.