Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-10-2008
robertosc robertosc is offline
Miembro
 
Registrado: abr 2006
Posts: 36
Poder: 0
robertosc Va por buen camino
terminal portable PT360

hola!

tengo una terminal portable donde recopilo los codigos de los productos y esta te genera un archivito de texto con los codigos recopilados como todos lo k han trabajadon con estos aparatos ya deben saber

el chiste es que yo uso el PTComm Manager para descargar el archivo de texto a la pc y despues este lo leo, pero lo k necesito es descargar el archivo de texto de la terminal desde delphi (que el usuario no tenga k tener instalado el PTComm en su maquina, que nomas le de clic a un boton y lea la terminal y descargue el archivo), ya estube investigando en el foro y no encontre nada parecido ,no se si alguien ya haya hecho algo parecido...

gracias de antemano
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
me instalado los componentes de ApdComPort para tratar de comunicarme con la terminal y parece que si responde xk cuando hago un

Código Delphi [-]
  ApdComPort1.OutPut := 'ATZ'^M;

se prende el recolector si esta apagado , pero de ahi ya no se como entrar a la memoria del recolector y como pasar el archivo a la PC
Responder Con Cita
  #3  
Antiguo 08-10-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Pues...igual, con un comando. Deberas de tener la lista de comandos que soporta tu terminal y desde tu aplicacion transmitirselas al terminal, ya el manejo de archivos es tema de otro hilo. En caso de que no tengas o encuentres los comandos del terminal usa un programa espia del puerto com. (Serial Spy de Innovative te puede servir, tiene un trial por tiempo, tal vez con eso te baste. De todos modos es economico ).
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #4  
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
hola!

tengo una terminal portable donde recopilo los codigos de los productos y esta te genera un archivito de texto con los codigos recopilados como todos lo k han trabajadon con estos aparatos ya deben saber

el chiste es que yo uso el PTComm Manager para descargar el archivo de texto a la pc y despues este lo leo, pero lo k necesito es descargar el archivo de texto de la terminal desde delphi (que el usuario no tenga k tener instalado el PTComm en su maquina, que nomas le de clic a un boton y lea la terminal y descargue el archivo), ya estube investigando en el foro y no encontre nada parecido ,no se si alguien ya haya hecho algo parecido...

gracias de antemano

Como dice el amigo FGarcia, si no tienes la info de ese terminal. pero si tienes el PTComm y trabaja con el bien, entonces la cosa es emular ese protocolo.
Y ese serial Port Spy que te recomienda el amigo es muy bueno.Ya teniendo el protocolo entre el terminal PTComm y el PT360.Puedes crear tu propio terminal usando Delphi.

Un Saludo.

PD:Cuando no podemos copiar, solo nos queda emular.
Responder Con Cita
  #5  
Antiguo 08-10-2008
robertosc robertosc is offline
Miembro
 
Registrado: abr 2006
Posts: 36
Poder: 0
robertosc Va por buen camino
hola [FGarcia] y [JoseFco], muchas gracias por su ayuda

ya baje el programa Innovative Serial Spy que me comentastes y abri el TComm y el PT360 para bajar el archivo .txt y el program me arrogo varios datos...



pero la vdd no tengo idea k hacer con esta informacion , espero no molestar tanto y que me orienten un poquito
Responder Con Cita
  #6  
Antiguo 08-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola

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

Salud OS

Edito: Me adelante
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
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
  #8  
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
  #9  
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
  #10  
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
  #11  
Antiguo 08-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
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
  #12  
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
  #13  
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
  #14  
Antiguo 09-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
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
  #15  
Antiguo 09-10-2008
robertosc robertosc is offline
Miembro
 
Registrado: abr 2006
Posts: 36
Poder: 0
robertosc Va por buen camino
ya lo resolvi de la segunda forma que mensionastes , utilizando la funcion StringReplace

Código Delphi [-]
cadena := StringReplace(cadena,'\?\Š',#13#10,[rfReplaceAll]);


gracias nuevamente
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

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 01:53:28.


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