Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por egostar Ver Mensaje
Hola

Porque no 'pegas' lo que recibiste para darnos una clara idea de lo que necesitas.

Salud OS

Edito: Me adelante
Lo que esta en rojo es lo que salio del PC y lo que esta en azul es lo que mando el terminal al PC.

La cosa es que tienes que ver los eventos unos por uno y que teclas tu tocas en el PC y que haces en el terminal.Entonces emular eso hermano.

Si no tienes experiencia en pirateria..." Digo en ingenieria inversa" la cosa no te sera facil amigo.

Un Saludo.

PD:Trata de poner todo el protocolo a ver si te podemos ayudar un poco mas.
Responder Con Cita
  #2  
Antiguo 08-10-2008
robertosc robertosc is offline
Miembro
 
Registrado: abr 2006
Posts: 36
Poder: 0
robertosc Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
Lo que esta en rojo es lo que salio del PC y lo que esta en azul es lo que mando el terminal al PC.

La cosa es que tienes que ver los eventos unos por uno y que teclas tu tocas en el PC y que haces en el terminal.Entonces emular eso hermano.

Si no tienes experiencia en pirateria..." Digo en ingenieria inversa" la cosa no te sera facil amigo.

Un Saludo.

PD:Trata de poner todo el protocolo a ver si te podemos ayudar un poco mas.
ah ok, si pues la vdd no tengo experiencia en ingenieria inversa ,

pero bueno, aki esta el archivo log con todo
Archivos Adjuntos
Tipo de Archivo: zip logTerminal.zip (1,1 KB, 12 visitas)
Responder Con Cita
  #3  
Antiguo 08-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por robertosc Ver Mensaje
ah ok, si pues la vdd no tengo experiencia en ingenieria inversa ,

pero bueno, aki esta el archivo log con todo
Cuando llegue a la casa te contestare con mas tetalles el asunto, pero ya con eso tienes para ir trabajando.

Ya sabemos que la comunicasion es a 19.200 que el protocolo es None- 8- 1

que el terminal comiensa mandando 12 bytes de data(un comando) FF FF FF E0 E0 E0 E0 E0 E0 F0 07 C1

entonces espera recibir del terminal 5 bytes ( 02 07 41 3F 03 )


Luego te termino de decir completo lo que esta en ese file. Recuerda lo rojo es lo que la PC le dice al terminal y lo azul lo que el terminal le contesta a la PC.

Un Saludo.
Responder Con Cita
  #4  
Antiguo 08-10-2008
robertosc robertosc is offline
Miembro
 
Registrado: abr 2006
Posts: 36
Poder: 0
robertosc Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
Cuando llegue a la casa te contestare con mas tetalles el asunto, pero ya con eso tienes para ir trabajando.

Ya sabemos que la comunicasion es a 19.200 que el protocolo es None- 8- 1

que el terminal comiensa mandando 12 bytes de data(un comando) FF FF FF E0 E0 E0 E0 E0 E0 F0 07 C1

entonces espera recibir del terminal 5 bytes ( 02 07 41 3F 03 )


Luego te termino de decir completo lo que esta en ese file. Recuerda lo rojo es lo que la PC le dice al terminal y lo azul lo que el terminal le contesta a la PC.

Un Saludo.
muchisimas gracias por tu ayuda, si ya voy entendiendo, pero entonces en delphi utilizariamos los compontesde tpapropara mandar esos comandos a la terminal? y se enviarian asi? en forma Hexadecimal.
Responder Con Cita
  #5  
Antiguo 08-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por robertosc Ver Mensaje
muchisimas gracias por tu ayuda, si ya voy entendiendo, pero entonces en delphi utilizariamos los compontesde tpapropara mandar esos comandos a la terminal? y se enviarian asi? en forma Hexadecimal.
Hola

Podrías hacerlo de esta forma:

Código Delphi [-]
  ApdComport1.PutString(Char($FF)+Char($FF)+Char($FF)+Char($E0)+Char($E0)+
                        Char($E0)+Char($E0)+Char($E0)+Char($E0)+Char($F0)+
                        Char($07)+Char($C1));

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 08-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por robertosc Ver Mensaje
muchisimas gracias por tu ayuda, si ya voy entendiendo, pero entonces en delphi utilizariamos los compontesde tpapropara mandar esos comandos a la terminal? y se enviarian asi? en forma Hexadecimal.
Bueno con ese componente no mandar ni medio bit al serial port.Pero el Maestro egostar esta muy bien documentado con el Apro y te podra dar una manito con eso.
De todas formas tu tienes el Serial Spy y cada vez que pruebes el codigo que estas generando pues estaras mirando lo que sale. La cosa es emular exactamente ese protocolo.Tu estas mirando lo que sale en el software del PC y a donde va la informacion.Entonces esa es la idea, ir haciendo lo mismo que hace el software ese, pero en uno creado por ti en Delphi.
Ya tienes que el PC le manda 12 bytes al portatil y espera 5 bytes de respuesta, compara y entonces envia (la PC) 6 bytes 02 1B 44 42 42 C1 y espera recivir 8 bytes que le envia el portatil 02 1B 44 31 2E 45 58 45 despues de esto existe una pequeña demora y es cuando el portatil manda una cadena de 32 bytes.
.....
y asi hasta el final.(fijate bien y emula exactamente lo que sucede entre la PC y el Portatil.)

Seria bueno poder ver una captura de la pantalla del PC.
¿Ademas que tipo de informacion es la que ese terminal estara enviando?


Un Saludo.
Responder Con Cita
  #7  
Antiguo 09-10-2008
robertosc robertosc is offline
Miembro
 
Registrado: abr 2006
Posts: 36
Poder: 0
robertosc Va por buen camino
Cita:
Empezado por JoseFco Ver Mensaje
¿Ademas que tipo de informacion es la que ese terminal estara enviando?
hola, pues ahora si ya entendi a lo que te referias con emular , le mande los parametros a la terminal asi como me comento [egostar] y por medio del evento OnTriggerAvail si me respondio la terminal exactamente igual

la terminal lo que envia es un un archivo te texto y ya logre que me lo enviará, aunque esta mesclado con otros caracteres que tengo que ver la forma de limpiarla, lo que me envia es esto:

Cita:
Y1,1.00,1.00\?\Š2,2.00,2.00\?\Š3,3.00,3.00\?\Š4,4.00,4.00\?\Š5,5.00,5.00\?\Š6,6.00,6.00\?\Š7,7.00,7. 00\?\Š8,8.00,8.00\?\Š9,9.00,9.00\?\Š10,GOY1.00,1.00\?\Š11,1.00,1.00\?\Š12,1.00,1.00\?\Š13,1.00,1.00\ ?\ŠDDZGG
que tengo que convertir a esto:
Cita:
1,1.00,1.00
2,2.00,2.00
3,3.00,3.00
4,4.00,4.00
5,5.00,5.00
6,6.00,6.00
7,7.00,7.00
8,8.00,8.00
9,9.00,9.00
10,1.00,1.00
11,1.00,1.00
12,1.00,1.00
13,1.00,1.00
a lo que veo, esta cadena
Cita:
\?\Š
si es regular entre cada registro, asi que no habria problema para cambiar de registro, lo que no es regular con dos caracteres que pone 10,GOY1.00,1.00 en determinadas posiciones de la cadena y entre mas grande esta la cadena, las va poniendo mas seguido

pero pues ya estoy mejor que como empece , gracias por su ayuda!
Responder Con Cita
  #8  
Antiguo 09-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Hola

Los caracteres "raros" que ves son caracteres de control,

Cita:
02 Start of Text
1B Escape
03 End Of Text
Tus cadenas recibidas tienen este formato

Cita:
02 IB [Cadena de Datos] 03
Y lo que tú deseas es solo la [Cadena de Datos]

Hay varias formas de lograr lo que quieres.

1. Usar un ApdDataPacket configurando las propiedades
  • EndCond = [ecString]
  • EndString = #3
  • StartString = #2#27
  • IncludeStrings = False
  • StartCond = scString

En el evento OnStringPacket solo debes de mostrar el dato recibido, por ejemplo en un TMemo

Código Delphi [-]
procedure TFcalendar.ApdDataPacket1StringPacket(Sender: TObject;
  Data: String);
begin
  Memo1.Lines.Add(Data);
end;

2. Con la forma como estas recibiendo los datos eliminas el inicio de la cadena (02 y 1B) y reemplazando el (03) por #13

Código Delphi [-]
   Cadena := StringReplace(Cadena, #02#27,'',[rfReplaceAll]);
   Cadena := StringReplace(Cadena, #03,#13,[rfReplaceAll]);
   Memo1.Lines.Add(Cadena);

Trata con cualquiera de las dos opciones y nos comentas.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
delphi es portable? alba13 OOP 1 30-10-2007 12:56:14
Opera portable seoane Varios 3 30-08-2007 18:17:09
Base de datos portable Novat0 SQL 13 06-02-2007 22:24:59
Busco BD portable... n3mohack Conexión con bases de datos 9 13-01-2006 02:00:45
aplicacion portable HugoH Varios 1 28-09-2004 16:32:14


La franja horaria es GMT +2. Ahora son las 08:58:41.


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