Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Datos Puerto COM(USB) (https://www.clubdelphi.com/foros/showthread.php?t=95776)

pruz 02-08-2022 00:49:03

Datos Puerto COM(USB)
 
Buena noches amigos.

Tengo que modificar una aplicacion que envie datos y reciba respuesta por el puerto COM (USB)

alguien me puede ayudar.

La aplicacion esta realizada delphi 6.


gracias,

Casimiro Notevi 02-08-2022 10:00:03

Después de tantos mensajes como tienes, hay que recordarte la guía de estilo :D

Neftali [Germán.Estévez] 02-08-2022 10:46:22

Cita:

Empezado por pruz (Mensaje 547716)
Tengo que modificar una aplicacion que envie datos y reciba respuesta por el puerto COM (USB)

HyperTerminal + TCOMPort

lucho6007 02-08-2022 16:10:09

¿Puntualmente qué necesitás hacer?

pruz 02-08-2022 22:46:37

Hola:
Transmitir datos de un pos a una maquina Transbank (pago con tarjetas de credito), para realizar el pago y luego recibir de la maquina Transbank que el pago fue realizado.
en resumen necesito enviar y recibir datos por la COM(USB)

gracias,

lucho6007 03-08-2022 14:05:20

Cita:

Empezado por pruz (Mensaje 547732)
Hola:
Transmitir datos de un pos a una maquina Transbank (pago con tarjetas de credito), para realizar el pago y luego recibir de la maquina Transbank que el pago fue realizado.
en resumen necesito enviar y recibir datos por la COM(USB)

gracias,


Bien, con TComPort podés hacerlo. Siempre y cuando tengas el manual que explique qué información enviar y qué información devuelve el equipo.

pruz 03-08-2022 20:30:13

Com(usb)
 
Gracias lucho6007, por tu respuesta

pero me puedes dar un ejemplo del funcionamiento del componente.

este es la informacion que envio '026|25000|038|<0x39>'

y esta es la que recibo '<0x30>026|1|025|<0x39>'


gracias,

lucho6007 03-08-2022 20:36:37

com
 
Cita:

Empezado por pruz (Mensaje 547737)
Gracias lucho6007, por tu respuesta

De nada, estamos para eso



Cita:

Empezado por pruz (Mensaje 547737)
pero me puedes dar un ejemplo del funcionamiento del componente.

este es la informacion que envio '026|25000|038|<0x39>'

y esta es la que recibo '<0x30>026|1|025|<0x39>'

Desconozco esos equipos. Tratá de conseguir información con el fabricante sobre esos equipos y quizá te pueda dar una mano.


saludos

delphi.com.ar 05-08-2022 18:03:02

Hay dos temas muy distintos, relacionados a tu pregunta:

1. El uso de puertos serie
Esto sería la capa de hardware de la comunicación con el dispositivo, tanto en el foro como en el mundo de la programación generalista, puedes encontrar información sobre el uso de puertos serie, que básicamente es abrir un puerto, configurarlo, y escribir y leer información.
Para esto podes utilizar las herramientas que te sugieren o hacerlo en forma nativa, como en este ejemplo: PruebaModem.

2. El protocolo de comunicación
La capa de aplicación va a ser exclusiva del dispositivo con que quieras comunicarte, normalmente el fabricante suele documentar su protocolo, salvo que sea privado o genérico. En tu caso pude encontrar esta información.. Esa capa la vas a tener que desarrollar y no se trata de algo generalista, sino particular por lo que salvo que alguien la haya implementado, dudo que puedas encontrar asistencia en el foro. Por cierto, te cuento que por lo que vi en la página, el proveedor dispone de algunos SDK para otras plataformas, lo cual evaluaría de utilizar.

Saludos.

pruz 11-08-2022 15:17:51

Hola amigos:

bueno no he podido avanzar mucho con esto, use el componente "ComPort Library version 4.10", logro abrir el puerto, pero no puede ni enviar ni recibir informacion.


Codigo en Version Delphi 6

Código Delphi [-]
  ComPort1.Open;  // Abre el puerto.

   if ComPort1.Connected then begin
      // ComPort1.WriteStr('{0x06}6');

    ComPort1.WriteStr('{0x02}0200|000000100||||1{0x03}y');  // Envía el mensaje.

    // ComPort1.WriteStr('{0x06}6');
   end;

   ComPort1.close; //cierra puerto


//Fin codigo

En realidad las habilidades se me estan acabando.. y he pensado hacer una DLL con delphi 10 (Tokio) para solucionar mi gran problema pero temo que no sepa como hacerlo.. :(

adjunto pagina del proveedor
https://www.transbankdevelopers.cl/d...egrado#drivers

ahi aparecen varios ejemplo, pero como dije anteriormente estoy bloqueado y no se como avanzar.

alguien me puede ayudar o darme un haz de luz

Gracias,
Patricio

lucho6007 11-08-2022 15:38:21

Com
 
Cita:

Empezado por pruz (Mensaje 547903)
alguien me puede ayudar o darme un haz de luz

Gracias,


Te envié mensaje privado

egostar 11-08-2022 16:02:17

Hola,

Los caracteres de control {0x06}, {0x02}, {0x03} cámbialos por #6, #2, #3 respectivamente y deben estar fuera de la cadena,

Código Delphi [-]
if ComPort1.Connected then 
begin
  // ComPort1.WriteStr(#6'6');
  ComPort1.WriteStr(#2'0200|000000100||||1'#3'y'); // Envía el mensaje.
  // ComPort1.WriteStr(#6'6');
end;

#2 [STX] y #3 [ETX] son (Inicio de Texto) y (Fin de Texto)
#6 [ACK] es un caracter que normalmente se utiliza para confirmar la recepción de los paquetes de datos.

Saludos

pruz 11-08-2022 23:09:26

Puerto COM
 
Egostar, Hola

probe lo que me enviaste pero no resulto..

egostar 12-08-2022 02:16:48

Cita:

Empezado por pruz (Mensaje 547913)
Egostar, Hola

probe lo que me enviaste pero no resulto..

Bueno, aquí lo que hace falta es conocer el protocolo de comunicación que se necesita, si lo tienes y lo pruebas antes con una hyperterminal y nos muestras el proceso podría ser mas fácil de resolver tu problema.

Saludos


La franja horaria es GMT +2. Ahora son las 09:04:35.

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