 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
wataru Cdt

Registrado: 26 Nov 2002Mensajes: 16
|
Publicado: Dom 18 Jul, 2004 4:50 am Asunto: Cajon portamonedas bloquea mi pc |
|
|
Hola, que tal.
Tengo un problema con el dichoso cajon y a ver si alguno me puede dar una solucion.
El tema en cuestion es que tengo un cajon portamonedas enganchado a traves de una impresora (Posiflex, aunque yo diria que es una clonica de la Epson) consigo que funcione gracias a un mensaje de este foro que indicaba como hacerlo:
FILE *fichero;
if (( fichero = fopen("LPT1","wt")) == NULL)
{
fclose(fichero);
return;
}
fprintf(fichero,"%c%c%c%c%c",27,112,0,100,100);
fclose(fichero);
Como he dicho funciona, pero si en el equipo que tiene el cajon no ha instalado ninguna impresora, al ejecutar dicho codigo se cuelga/bloquea.
Lo curioso es que si instalo cualquier tipo de impresora al puerto LPT1 el equipo no se cuelga (incluso vale la impresora solo texto de windows)
Si como creo esto se debe a que es necesario la presencia de un driver para poder escribir el puerto LPT, hay alguna solucion. O si es otra causa me podrias indicar cual es.
Gracias y hasta otra _________________ Soy un mono, asi que puedo decir lo que quiera |
|
| Volver arriba |
|
 |
rayder Master

Registrado: 03 Mar 2004Mensajes: 207
|
Publicado: Lun 19 Jul, 2004 11:12 am Asunto: |
|
|
Hola wataru.
En mis tiempos en los que programaba con visual basic, realicé una aplicación que usaba un sistema igual, pero con otra impresora.
El problema era el mismo, un cajon solo se debe abrir para dar el cambio u operaciones parecidas, por lo que se abre despues de la secuencia de escape al momento de imprimir el ticket de venta o factura.
Si no hay una impresora instalada, falla la acción de imprimir y la secuencia de escape no se envia a la impresora. Esa es almenos la teoría, desgraciadamente ahora no dispongo de un cajon con impresora para mirarlo, pero te voy a mirar la documentación que tengo por casa, haber si se le puede dar un rodeo.
Puedes hacer una prueba, quita todas las impresoras que tengas en el sistema, e intenta hacer un previu de un report, lo normal es que falle por que no encuentra una impresora, el principio es el mismo.
Un saludo y te comento. |
|
| Volver arriba |
|
 |
wataru Cdt

Registrado: 26 Nov 2002Mensajes: 16
|
Publicado: Lun 19 Jul, 2004 2:31 pm Asunto: |
|
|
Ante todo gracias por responder.
Ciertamente si no hay impresora instalada no se pueden enviar los codigos de escape, y haciendo la prueba que me indicas, es decir lanzar un report en un equipo sin impresora, genera los correspondientes errores, pero no bloquea/cuelga el equipo, hasta el punto que es necesario aplicar el conocido y util ctrl-alt-sup que es lo que me extraña, y por eso preguntaba si para poder escribir sobre el puerto LPT es necesario la presencia o de un driver generico, o al menos uno para una impresora conectado a ese puerto. O eso o que simplemente me estoy dejando algo, y lo tengo mal.
En fin nada mas, ta otra. _________________ Soy un mono, asi que puedo decir lo que quiera |
|
| Volver arriba |
|
 |
jb_______ Cdt

Registrado: 22 Dic 2003Mensajes: 21
|
Publicado: Mar 20 Jul, 2004 1:04 pm Asunto: |
|
|
Pueba la siguiente función; Es la que uso normalmente en todos mis programas y nunca he tenido problemas.
bool AbrirCajon(void)
// Abre el cajón portamonedas.
{
FILE *Impresora;
bool Error = false;
try{
if((Impresora = fopen("lpt1:", "wt")) != NULL){
// Se pudo acceder a la impresora.
fprintf(Impresora, "%cp%c%c%c", 27, 0, 25, 250);
fclose(Impresora);
}else{
// No se pudo abrir la impresora.
Error = true;
}
}catch(...){
// Se produjo algún error.
Error = true;
}
if(Error == true){
// Se produjo un error al abrir el portamonedas.
Application->MessageBox("No se Pudo Abrir el Cajón Portamonedas.", "Error", MB_OK + MB_ICONERROR);
}
return(!Error);
} |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|