Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cajon portamonedas bloquea mi pc

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cajon portamonedas bloquea mi pc Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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 Very Happy 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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.