Página 1 de 1

Comunicando-se com uma impressora

MensagemEnviado: 29 Jan 2009 12:50
por alessandro
Pessoal, precisava disponibilizar uma saída paralela para comunicação com uma impressora matricial para a impressão de realtórios.

Alguém sabe onde encontrar material a respeito do protocolo usado para se comunicar com uma impressora?

Estou procurando mas o que ando encontrando é somente algumas API para se usar no windows.

Alessandro

MensagemEnviado: 29 Jan 2009 13:00
por guest2003
Pelo que sei é só mandar o caracter ASC e ir bimbando o strobe...

Ai varia de impressora pra impressora as sequencias de ESC... que sao comandos para modo grafico / expandido / comprimido / etc...

Mas se quer so escrever normal mesmo... manda o ASCII + strobe (pino 1 se nao me engano)

Ai CR+LF no fim da linha e tals...

eh isso...

[]'s

MensagemEnviado: 29 Jan 2009 13:35
por alessandro
Ok, Guest, vou tentar fazer isso.

Valeu.


Alessandro

MensagemEnviado: 29 Jan 2009 14:26
por tcpipchip
Isto mesmo...confirmei no livro PARALLEL PC PORT da JAN AXELSON!

MensagemEnviado: 29 Jan 2009 14:43
por Wagner de Queiroz
Bom, porta paralela é simples de usar.

O pino Strobe é ativo em nivel baixo. Coloque o caractere ASCII que vai enviar em D0 a D7.

Pulse Strobe por no minimo 500uS e veja se temos em ACK ou BUSY um sinal. Se tivermos o ACK o caractere foi recebido pela impressora.

Se tivermos o BUSY, significa que o bufffer da impressora esta cheio e devemos esperar o ACK voltar.

Com o ACK, colocamos o proximo byte em D0-D7 e pulsamos o Strobe novamente, ou seja o ciclo se repete até a cadeia de caracteres for enviada.

Agora.

A impressora e seus protocolos


Cada impressora tem um protocolo de uso. As matriciais da EPSON sao baseadas no ESC/P ou ESC/P2 (Veja no manual da impressora qual emulacao aceita) Tem impressora que usa PCL, PostScript, ou outras emulacoes. Na internet vc pode achar um manual da emulacao da impressora procurando pelo nome da emulacao.

Por exemplo. O manual ESCP da EPSON pode ser achado em:

http://www.epson.co.uk/support/manuals/pdf/ESCP/Part_1.pdf


ESC/P é simples de entender.

Quando a impressora recebe o caractere ESC, fica esperta com o proximo caractere para saber o comando. Se for outro ESC ela sabe que nao é um comando e suprime o segundo ESC.

Vejamos as combinacoes mais básicas:

ESC + E = Enfatizado - Enfatiza a letra
ESC + F = Desliga Enfatizado

ESC + G = Double Strike - Negrito
ESC + H = Desliga o Double Strike

ESC + X [ascii 1] Liga modo carta (ASCII 1 é o caractere ASCII 1)
ESC + X [ascii 0] Desliga Liga modo carta

o codigo do caractere ESC é 27.

algumas impressoras tem um protocolo ESC/P2 que é uma evolucao do ESC/P onde temos fontes escalonaveis. As impressoras Epson da série LQ sabem ESC/P2. O basico de ESC/P elas aceitam. Mas tem comandos mais legais depois. O manual do ESP/P2 é um grande aliado.

Existe alguns caracteres especiais que nao sao precedidos de ESC

Por exemplo

ASCII 14 = Liga Largura Dupla por uma unica linha
ASCII 20 = Desliga LArgura Dupla antes de terminar a linha

ASCII 15 = Liga o Comprimido por uma linha
ASCII 18 = Desliga o Comprimido por uma linha

O comando Comprimido pode ser ligado forever com ESC 15 e desligado com ESC 18.



Espero que isso tenha te ajudado.

A emulacao PCL é mais complicada pq vc insere uma tonelada de comandos e a impressora vai acumulando no buffer dela e montando a página. Quando a página termina o computador envia a palavra ShowPage e a página é impressa.

A sua sorte é que a grande maioria das matriciais (Senao quase todas) aceita a emulacao EPSON ESC/P. Algumas poucas nao aceitam, esteja atento ao manual dela para saber qual é a emulação qualquer duvida me procure no MSN que terei prazer em ajuda-lo.

MensagemEnviado: 29 Jan 2009 15:23
por andre_luis

MensagemEnviado: 29 Jan 2009 17:27
por Wagner de Queiroz
Eu acho que o termo Biblia esta fora de contexto. Nao desmerecendo o Rogerio messias. Dizem que o Curso dele é muito bom, o site dele é muito bem feito, tem muita coisa, mas nao é tudo.

A biblia tambem nao pode ser considerada o livro do Ian sobre Parallel Port complete. O livro é bom tb mas fala mais software.

O correto para se dizer que é biblia é a norma IEEE 1284, o Draft do Ieee1284 ta perdido por ai na internet. sao mais de 600 paginas só de porta paralela. Coisas sinistras sober o crosstalk dos sinais da porta paralela, como fazer e testar o cabo paralelo, dimensoes de tudo, alem dos registradores da paralela em modo ECP/EPP. è muita coisa na norma!

MensagemEnviado: 29 Jan 2009 20:51
por msamsoniuk
http://zone.ni.com/devzone/cda/tut/p/id/3466

nao eh muito complicado nao, de fato o negocio bem simples...eu nao acho que de para escrever sequer um evangelho sobre o assunto hahaha mas eh baseado num padrao da decada de 60 (interface paralela centronics) e, ao contrario das interfaces seriais, acho que paralela tah meio obsoleto hoje em dia...

MensagemEnviado: 29 Jan 2009 21:14
por andre_luis
Tá bom, confesso que peguei pesado...
Me referi no ambito da WEB. O conteúdo é bem didático.
No ambito dp papel-celulose, esses caras aqui tem uma boa referencia para HW.

http://www.mzeditora.com.br/

Lamentavelmente, não vendem mais o livro de SW.

+++

MensagemEnviado: 30 Jan 2009 08:05
por alessandro
Agora tenho bastante informação, obrigado a todos!

Outra dúvida é: As impressoras a jato de tinta não recebem os dados "modo texto" da mesma forma? Tenho essa dúvida porque me lembro que mesmo que não tivesse o driver da impressa, o windows tinha um drive padrão para este tipo de impressora.

Obrigado a todos!

Alessandro

MensagemEnviado: 30 Jan 2009 09:22
por msamsoniuk
toda impressora recebe text e imprime direto, inclusive interpretando caracteres de controle basico, como \f para avancar pagina, \t para tabulacao, \r e \n para mudar linha e retornar ao inicio da mesma. o q varia de impressora para impressora sao os comandos extendidos atraves de sequencias de escape, daih tem q ver o manual da impressora.

uma excessao a isso sao impressoras postscript. tudo q vc manda vai para o interpretador postscript, portanto se nao for postscript, apenas fica dando erros e ela nunca imprime nada hehehe.

MensagemEnviado: 30 Jan 2009 12:14
por Wagner de Queiroz
As impressoras Jato de tinta, voce precisa saber a emulacao. Nada impede de voce controlar diretamente uma HP Deskjet ou Laserjet, basta saber a emulacao dela e negociar com ela.

O fato de ter um driver para Windows nao significa que o driver tem que ser dela.

Algumas impressoras sao chamadas de Impressoras Host Emulation. O que é isso?

Significa que este tipo de impressora é controlada diretamente pelo computador, ou seja, nao tem uma emulacao, digamos, aprimorada. Isso pq a impressora tem um microcontrolador vagabundinho e nao uma CPU parruda para processar os dados, ou seja. O PC em tese só envia o que será impresso, como um mapa binario da imagem. Infelizmente nao tem documentacao sobre impressoras Host mode para te ajudar.

Agora as impressoras Jato de Tinta EPSON que tem emulacao ESC/P2 podem receber dados como uma impressora matricial que usa ESC/P.

As impressoras Jato de Tinta HP usam HPGL que é uma especie de PCL de jato de tinta. Tem as impressoras Host Mode que são controladas diretamente pelo driver. Pois geralmente nao possuem buffer de impressao sómente um mapa da pagina a ser impressa, pelo menos foi o que eu consegui com um conhecido que trabalhou num projeto deste tipo de impressora, como nao pude comprovar, nao é uma explicacao correta. O projeto de uma impressora Host mode é para baratear o custo do hardware da impressora.

MensagemEnviado: 30 Jan 2009 12:41
por tcpipchip
do Jan Axelson nao, da Jan Axelson :)

MensagemEnviado: 30 Jan 2009 13:45
por msamsoniuk
o windows nao manda ascii direto de forma transparente como o linux neh ? no linux eu mando o texto e um \f (avanco de pagina) em qq impressora nao-postscript e jah era.

Wagner de Queiroz escreveu:As impressoras Jato de tinta, voce precisa saber a emulacao. Nada impede de voce controlar diretamente uma HP Deskjet ou Laserjet, basta saber a emulacao dela e negociar com ela.

O fato de ter um driver para Windows nao significa que o driver tem que ser dela.

Algumas impressoras sao chamadas de Impressoras Host Emulation. O que é isso?

Significa que este tipo de impressora é controlada diretamente pelo computador, ou seja, nao tem uma emulacao, digamos, aprimorada. Isso pq a impressora tem um microcontrolador vagabundinho e nao uma CPU parruda para processar os dados, ou seja. O PC em tese só envia o que será impresso, como um mapa binario da imagem. Infelizmente nao tem documentacao sobre impressoras Host mode para te ajudar.

Agora as impressoras Jato de Tinta EPSON que tem emulacao ESC/P2 podem receber dados como uma impressora matricial que usa ESC/P.

As impressoras Jato de Tinta HP usam HPGL que é uma especie de PCL de jato de tinta. Tem as impressoras Host Mode que são controladas diretamente pelo driver. Pois geralmente nao possuem buffer de impressao sómente um mapa da pagina a ser impressa, pelo menos foi o que eu consegui com um conhecido que trabalhou num projeto deste tipo de impressora, como nao pude comprovar, nao é uma explicacao correta. O projeto de uma impressora Host mode é para baratear o custo do hardware da impressora.

MensagemEnviado: 30 Jan 2009 14:43
por enigmabox
Já fiz uns projetos enviando ascii direto com alguns comandos para impressora Epson matricial e InkJet e funcionou normal. Se for impressora com driver postscript ai tem que respeitar o protocolo.

Se a impressora não consegue imprimir diretamente o ASCII, pra mim não é impressora, é uma cabeça de impressão! :shock: