Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2005
Citlalli Citlalli is offline
No confirmado
 
Registrado: may 2005
Posts: 40
Poder: 0
Citlalli Va por buen camino
abrir cajon de dinero serial

Hola,

tengo una aplicacion de punto de venta, al cual quiero conectar un cajon de dinero, dicho cajon se conecta al puerto serial y necesito enviarle una secuencia para abrirlo, pero nunca he trabajado con puertos, alguien me puede ayudar?

Gracias y saludos
Responder Con Cita
  #2  
Antiguo 10-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
si, aqui encontraras varias formas de hacerlo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 13-06-2005
Citlalli Citlalli is offline
No confirmado
 
Registrado: may 2005
Posts: 40
Poder: 0
Citlalli Va por buen camino
gracias jachguate por tu buena intencion de ayudarme pero tu link me lleva a la busqueda avanzada, no entiendo !!

saludos
Responder Con Cita
  #4  
Antiguo 13-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
El tema se ha tratado varias veces aqui. Dado que los foros del club no son un servicio de soporte técnico, se recomienda siempre buscar en la base de datos de conocimiento formada con todas las preguntas y respuestas que al cabo de los años se han acumulado aqui, y abrir un nuevo hilo solamente si no se ha encontrado lo que se buscaba.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 14-06-2005
Citlalli Citlalli is offline
No confirmado
 
Registrado: may 2005
Posts: 40
Poder: 0
Citlalli Va por buen camino
ok, ok, tienes razon, estuve buscando en los foros viejos a traves de la ayuda avanzada y no he encontrado lo que necesito, lo mas cerca es el ejemplo de una balanza y en dicho ejemplo hablan de un componente, el cual ya bajé, pero no se como utilizarlo, y la verdad es que me estoy volviendo loca, que me recomiendas?

saludos
Responder Con Cita
  #6  
Antiguo 14-06-2005
Citlalli Citlalli is offline
No confirmado
 
Registrado: may 2005
Posts: 40
Poder: 0
Citlalli Va por buen camino
mira, estuve nuevamente viendo los foros viejos y hablan del cajon de dinero conectado a impresora de tickets, yo no ocupo impresora, yo tengo el cajon conectado directamente al com1, y lo unico que me dieron fueron estos codigos:


Cita:
inicializacion 27,33,1
acceso a puerto 27,61,1
apertura cajon 27,112,48
finalizacion 27,33,0
pero de verdad no se como utilizarlos, se que tienes razon en que esto no es un servicio de soporte tecnico, pero quien mas me puede ayudar si no es ClubDelphi, ojala puedas hacer esta unica excepción, muchisimas gracias.

Saludos
Responder Con Cita
  #7  
Antiguo 14-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola. Pues ya has llegado bastante cerca. Los códigos que tenes son las secuencias que hay que enviar al dispositivo. Ojo que no todos los fabricantes se ajustan a la misma secuencia y habrá de ver si tu cajón en particular lo hace... si no, pues hay que leer algo del manual que seguramente lo acompaña.

Luego, para enviarle los códigos lo que corresponde es tratar el cajón como si se tratase de un archivo de texto (tal como se hace con las impresoras) y "escribirle" los códigos.

Algo como:

Código Delphi [-]
  Var
    cajon : Text;
    
  Begin
    assignFile(cajon, 'com1');
    rewrite(cajon);  //apertura del archivo
    try
      write(cajon, #27#33#1); {esto es la secuencia 27,33,1 que ya tenes}
      //etcetera
    finally
      Close(cajon);  //cerrar el archivo
    end;
  end;

Si aún te quedan dudas, yo he encontrado en una búsqueda simple estos otros hilos:

https://www.clubdelphi.com/foros/showthread.php?t=20676
https://www.clubdelphi.com/foros/showthread.php?t=12535
https://www.clubdelphi.com/foros/showthread.php?t=15703
https://www.clubdelphi.com/foros/showthread.php?t=14919
https://www.clubdelphi.com/foros/showthread.php?t=11143

Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 15-06-2005
Citlalli Citlalli is offline
No confirmado
 
Registrado: may 2005
Posts: 40
Poder: 0
Citlalli Va por buen camino
jachguate,

de verdad te lo agradezco con toda el alma, ahora mismo voy a probar el código y ya te platicaré.


saludos
Responder Con Cita
  #9  
Antiguo 13-07-2005
Caballero Negro Caballero Negro is offline
Registrado
 
Registrado: jul 2005
Posts: 3
Poder: 0
Caballero Negro Va por buen camino
Abrir cajon de dinero con tecnologia OPOS

Hola Citlali.
Estuve siguiendo todos tus mensajes. Espero que este todavia te sirva.
Si estas desarrollando un punto de venta te recomiendo que utilices tecnologia OPOS que es el standar desarrollado por Microsoft y las principales industrias de Hardware para aplicaciones de punto de venta.
A grandes pasos debes hacer lo siguiente.
1. Chechar si los dispositivos que utilices (en este caso el cajon de dinero) esta soportado por OPOS.
2. Instalar los componentes standarizados OCX de la siguiente pagina http://www.monroecs.com/oposccos.htm
3. Instalar el ADK de tu fabricante. Este viene especificada en la documentación de tu dispositivo.
4. Instalar los componentes POS OCX en Delphi. Esto te va a crear componetnes no visuales los cuales te facilitaran enormemente el desarrollo.
5. Crear las rutinas especializadas para el control de tus dispositivos.
Te anexo la que yo utilizo para el control del cajon.

OposCajon := TOPOSCashDrawer.Create(Application);
if OposCajon.Open(IntToStr(Num_Cajon)) <> OPOS_SUCCESS
Then
raise Exception.Create('Cajon '+IntToStr(Num_Cajon)+' Open E:'+IntToStr(OposCajon.ResultCode)+' '+getOPOSError(OposCajon.ResultCode));
if OposCajon.ClaimDevice(1000) <> OPOS_SUCCESS Then
raise Exception.Create('Cajon '+IntToStr(Num_Cajon)+' Claim E:'+IntToStr(OposCajon.ResultCode)+' '+getOPOSError(OposCajon.ResultCode));
OposCajon.DeviceEnabled := True;
if OposCajon.ResultCode <> OPOS_SUCCESS Then
raise Exception.Create('Cajon '+IntToStr(Num_Cajon)+' E:'+getOPOSError(OposCajon.ResultCode));
XModulo.logMsg('OPOS Inicialización de Cajon '+IntToStr(OposCajon.ResultCode)+' '+IntToStr(Num_Cajon));
Result := True;

Es mucho mas sencillo de lo que aparenta..
Si tienes dudas con gusto te puedo ayudar.
Saludos!!!
Responder Con Cita
  #10  
Antiguo 22-07-2005
GCASTILLO GCASTILLO is offline
Miembro
 
Registrado: sep 2004
Ubicación: Villahermosa tab. Mexico
Posts: 20
Poder: 0
GCASTILLO Va por buen camino
abrir Cajon

Ahi le va algo de mis conocimientos
No soy Programador

Los CashDrawer (cajos de efectvos) todo son similares, por dentro su mecanismo tiene un relay que recibe ya sea del puerto com1, com2 o de una impresora voltage de 9 voltios, que hace soltar el seguro y abre el cajon.

hacer prueva desde dos
crear un archivo(aaa) de texto
gravar signo(asci) de rombo con Ctrl-G.
usar el tubo de dos
copy aaa > com1:
esta instrucion manda a abrir el cajon,

Saludos a todos
Responder Con Cita
  #11  
Antiguo 28-11-2006
FOURIER FOURIER is offline
Miembro
 
Registrado: dic 2005
Posts: 40
Poder: 0
FOURIER Va por buen camino
Abrir El Cajon Espero Te Sirva

Otra manera de abrir el Cajon es un TPRINTER;

para esto primero necesitas poner en Unit a QPrinters,


ya hecho esto ahora puedes hacer lo siguiente

Código Delphi [-]
Printer.begindoc;
printer.Canvas.font.size:=0;
printer.Canvas.font.Name:='Control';
printer.Canvas.TextOut(0,0,'A');
printer.enddoc;


Esto te abrirá el cajón; espero te sirva de ayuda
Responder Con Cita
  #12  
Antiguo 06-12-2006
federicorl federicorl is offline
Miembro
 
Registrado: may 2006
Posts: 31
Poder: 0
federicorl Va por buen camino
Talking abrir cajon de dinero

no es la respuesta a tu pregunta porque veo que jachguate ya te la respondio yo mismo he usado estas instrucciones y funcionan muy bien tomando en cuenta que tengas las secuencias de escape correctas, yo mas bien adiciono tu pregunta, alguien sabe de un dispositivo tipo cajon de dinero, basicamente una interfase con solenoide que se pueda conectar a un puerto serial que este en el mercado, necesito dotar de un par de estas a una aplicacion que te abre y cierra puertas, nasicamete requiero de marcas y modelos para buscar un proveedor aqui en guadalajara, la de mexico no la de españa

saludos y gracis de antemano
Responder Con Cita
  #13  
Antiguo 08-12-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
buscá en google por "Cash drawer".

Saludos
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #14  
Antiguo 13-12-2006
manuweb manuweb is offline
Miembro
 
Registrado: oct 2005
Posts: 19
Poder: 0
manuweb Va por buen camino
Este me funciona a mi.

Está conectado en COM1 y la secuencia de apertura está en la variable cadena



Código Delphi [-]
unit Cajon;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
NombrePuerto = 'COM1'; // Por decir algo
var
Form1: TForm1;
HandlePuerto: THandle; // Manejador para el puerto
Cadena: String; // Para leer del puerto
dwValor: DWORD; // Tamaño de la lectura
Sta: COMSTAT; // Estado o tamaño del buffer de lectura
bResult: Boolean; // Parámetro de resultado
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// ~~~~~~~~~~~~~~~~~~~
// Apertura del puerto
// ~~~~~~~~~~~~~~~~~~~
//
// El puerto ha de abrirse con acceso exclusivo. Es una de las razones de que haya
// un sólo "Acceso telefónico a redes" que actúa de servidor del puerto. Generalmente
// también se abre con acceso de lectura y escritura ya que es extraño tener que leer
// o escribir sólo en él. Pero, claro, esto depende de lo que vayas a hacer con el
// mismo. El "solapamiento" se produce sólo si hay varios procesos que pueden acceder
// al puerto a la vez y se utiliza cuando la aplicación tiene, por ejemplo, un hilo
// para leer y otro para escribir. Presupongo que no es el caso y que sólo hay un hilo.
// El último parámetro ('hTemplate') no tiene efecto para los puertos de comunicaciones.
//
HandlePuerto := Windows.CreateFile(
PChar(NombrePuerto), { Nombre del puerto }
GENERIC_READ or
GENERIC_WRITE, { Modo de apertura: Lectura/Escritura }
0, { Acceso exclusivo }
nil, { Sin atributos de seguridad }
OPEN_EXISTING, { El puerto debe existir }
0, { Sin solapamiento de Lectura/Escritura }
0); { No hay "hTemplate" }
// Comprobar que la apertura ha sido correcta
if (INVALID_HANDLE_VALUE <> HandlePuerto) then
begin
Cadena := #27#112#0#60#240#13#10;
if (Windows.WriteFile(
HandlePuerto, { Handle del puerto }
PChar(Cadena)^, { Datos a escribir }
Length(Cadena), { Longitud de los datos }
dwValor, { Número de caracteres escritos }
nil) { Sin solapamiento de lecturas/escrituras }
)
then
begin
Button1.Caption:='ok' ;
// Aquí nos damos con un canto en los dientes:
// la 'Cadena' se ha escrito en el puerto. Podemos comprobarlo si
// miramos 'dwValor' ya que debe ser igual a 'Length(Cadena)'.
// Si no lo es, algo ha ido mal.
end;
end;
// ~~~~~~~~~~~~~~~~
// Cerrar el puerto
// ~~~~~~~~~~~~~~~~
Windows.CloseHandle(HandlePuerto);
 
end;
end.





Espero que te sirva.

Suerte.

Manuweb

Última edición por manuweb fecha: 20-12-2006 a las 11:52:03.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:26:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi