Abrir cajon portamonedas a traves de impresora de tickets

06/07/2006 - 11:56 por Brocilla | Informe spam
Hola

Alguien sabe como abrir un cajon portamonedas conectada al PC a traves
de una impresora de tickets?

Gracias de antemano

Preguntas similare

Leer las respuestas

#6 Alberto Poblacion
07/07/2006 - 10:04 | Informe spam
"Brocilla" wrote in message
news:
Que método utilizas para pasarle estos parámetros a la impresora? Yo
estoy probando con Graphics.DrawString. Utilizando esto no se como
formatear la cadena para pasarle estos caracteres de control.



Los caracteres se los envío directamente al puerto serie usando un
objeto "SerialPort" de .Net.
Para que te funcionen las secuencias de control, tienes que saltarte los
drivers gráficos de Windows y atacar a la impresora directamente por el
puerto en el que está conectada. Si usas el Graphics.DrawString, Windows
conmuta la impresora a modo gráfico y lo que hace es enviarle una serie de
pixels para pintar los caracteres, con lo que la impresora no llega nunca a
"ver" la secuencia de caracteres que originalmente habías escrito.
Respuesta Responder a este mensaje
#7 Brocilla
07/07/2006 - 10:11 | Informe spam
Ya había visto en algun lado info sobre enviar por el serial port.
Pero yo tengo conectada la impresora al puerto paralelo y sobre esto no
encuentro mucho.

Alberto Poblacion ha escrito:

"Brocilla" wrote in message
news:
> Que método utilizas para pasarle estos parámetros a la impresora? Yo
> estoy probando con Graphics.DrawString. Utilizando esto no se como
> formatear la cadena para pasarle estos caracteres de control.

Los caracteres se los envío directamente al puerto serie usando un
objeto "SerialPort" de .Net.
Para que te funcionen las secuencias de control, tienes que saltarte los
drivers gráficos de Windows y atacar a la impresora directamente por el
puerto en el que está conectada. Si usas el Graphics.DrawString, Windows
conmuta la impresora a modo gráfico y lo que hace es enviarle una serie de
pixels para pintar los caracteres, con lo que la impresora no llega nunca a
"ver" la secuencia de caracteres que originalmente habías escrito.
Respuesta Responder a este mensaje
#8 RFOG
07/07/2006 - 10:48 | Informe spam
Al final tendrás que usar Interop y enviarlo de forma nativa...

El puerto paralelo se puede abrir mediante CreateFile, y luego compones y
envías la cadena compuesta a mano.
Te lo pongo más o menos en C:

char chCmd[5];
chCmd[0]=0x27;
...

CreateFile("\\.\LPT1",...) //OpenExisting y Shared
WriteFile(...)
CloseHandle(...)

Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficcion y programacion
La ansiedad es un arroyito de temor que corre por la mente. Si se le
alimenta puede convertirse en un torrente que arrastrara todos nuestros
pensamientos.

"Alberto Poblacion" wrote
in message news:
"Brocilla" wrote in message
news:
Lo que no se es como le indico a la impresora en C# los códigos de
control. Se que hay que pasarselos como si fueran una cadena de texto
pero indicandole que son caracteres de control.



Con las impresoras tipo Epson, que son las más corrientes, la secuencia
que hay que enviar es <esc> p <0> <25> <250>, es decir, el carácter 27
(escape), que es el que indica que se trata de una secuencia de control,
seguido de la letra p, seguido de los tres bytes cuyos códigos en base 10
son 0, 25 y 250.


Respuesta Responder a este mensaje
#9 Brocilla
07/07/2006 - 17:25 | Informe spam
Tengo abierto el puerto paralelo mediante CreateFile, ahora debo enviar
los caracteres de control. Lo intento mediante un FileStream pero no me
abre el cajón, sólo me escribe en la impresora unos caracteres.

Se debe enviar los caracteres de alguna manera especial o debo seguir
probando de esta forma?


RFOG ha escrito:

Al final tendrás que usar Interop y enviarlo de forma nativa...

El puerto paralelo se puede abrir mediante CreateFile, y luego compones y
envías la cadena compuesta a mano.
Te lo pongo más o menos en C:

char chCmd[5];
chCmd[0]=0x27;
...

CreateFile("\\.\LPT1",...) //OpenExisting y Shared
WriteFile(...)
CloseHandle(...)

Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficcion y programacion
> La ansiedad es un arroyito de temor que corre por la mente. Si se le
alimenta puede convertirse en un torrente que arrastrara todos nuestros
pensamientos.

"Alberto Poblacion" wrote
in message news:
> "Brocilla" wrote in message
> news:
>> Lo que no se es como le indico a la impresora en C# los códigos de
>> control. Se que hay que pasarselos como si fueran una cadena de texto
>> pero indicandole que son caracteres de control.
>
> Con las impresoras tipo Epson, que son las más corrientes, la secuencia
> que hay que enviar es <esc> p <0> <25> <250>, es decir, el carácter 27
> (escape), que es el que indica que se trata de una secuencia de control,
> seguido de la letra p, seguido de los tres bytes cuyos códigos en base 10
> son 0, 25 y 250.
>
>
Respuesta Responder a este mensaje
#10 RFOG
07/07/2006 - 18:20 | Informe spam
Se hace así.

Puede que

a) Estés enviando la secuencia incorrecta.
b) No estés enviando los caracteres ascii correctos (aunque pienses que sí).
Mira el manual de la impresora. ¿Tiene opción de imprimir los caracteres
enviados en forma hexadecimal (algunas lo tienen)? Ponme la cadena que
quieres enviar y lo que sale impreso.

De todos modos con un FileStream... mmmm... ¿Envías como secuencia de bytes
(o sea, una cadena de Byte) o como un String? Si lo haces como String el
problema puede estar ahí: los strings son unicode, por lo que para cada byte
que tu pones, él envía dos

Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficción y programación
=Luchemos por cosas lo bastante
grandes para que nos importen, y lo suficiente pequeñas para poder ganarlas.

"Brocilla" wrote in message
news:

Tengo abierto el puerto paralelo mediante CreateFile, ahora debo enviar
los caracteres de control. Lo intento mediante un FileStream pero no me
abre el cajón, sólo me escribe en la impresora unos caracteres.

Se debe enviar los caracteres de alguna manera especial o debo seguir
probando de esta forma?


RFOG ha escrito:

Al final tendrás que usar Interop y enviarlo de forma nativa...

El puerto paralelo se puede abrir mediante CreateFile, y luego compones y
envías la cadena compuesta a mano.
Te lo pongo más o menos en C:

char chCmd[5];
chCmd[0]=0x27;
...

CreateFile("\\.\LPT1",...) //OpenExisting y Shared
WriteFile(...)
CloseHandle(...)

Visita mi blog: http://rfog.blogsome.com
Libros, ciencia ficcion y programacion
> La ansiedad es un arroyito de temor que corre por la mente. Si se le
alimenta puede convertirse en un torrente que arrastrara todos nuestros
pensamientos.

"Alberto Poblacion" wrote
in message news:
> "Brocilla" wrote in message
> news:
>> Lo que no se es como le indico a la impresora en C# los códigos de
>> control. Se que hay que pasarselos como si fueran una cadena de texto
>> pero indicandole que son caracteres de control.
>
> Con las impresoras tipo Epson, que son las más corrientes, la
> secuencia
> que hay que enviar es <esc> p <0> <25> <250>, es decir, el carácter 27
> (escape), que es el que indica que se trata de una secuencia de control,
> seguido de la letra p, seguido de los tres bytes cuyos códigos en base
> 10
> son 0, 25 y 250.
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida