TODOPIC

Lenguajes de programación para PC => Delphi => Mensaje iniciado por: ASTROCAR en 02 de Junio de 2010, 00:46:53

Título: Ayuda con componente Comport
Publicado por: ASTROCAR en 02 de Junio de 2010, 00:46:53
Hola buenas noches foristas delphianos, les escribo porque estoy un poco cerrado y tengo un buen tiempo que no uso delphi y el no usado uno pierde la practica en fin estoy usamdo el mensionado componente en delphi el comport y la idea es enviar varios byte al puerto rs232, es decir enviar un buffer de tipo byte por el rs232 pero segun lo que revise solo se puede enviar es str de la siguiente manera:

comport1.writestr('prueba);

la idea seria enviar un valor hex si alguien es tan amable de aclarame el punto en delphi y usando este componente se lo agradesco.
Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: Ayuda con componente Comport
Publicado por: AngelGris en 03 de Junio de 2010, 18:28:49
Podés convertir el HEX a String y mandar el String tranquilamente.
Título: Re: Ayuda con componente Comport
Publicado por: ASTROCAR en 04 de Junio de 2010, 07:23:03
Podés convertir el HEX a String y mandar el String tranquilamente.

ok prodria ser algo asi

comport1.writestr(char($byte));

donde byte es el valor hex porque si uso hextostr($byte) de esta manera sime da error al compilarlo.

Saludos y gracias por su opinion y mala mia por no someter nada aun a prueba pero hoy lo hago con toda seguridad.
Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: Ayuda con componente Comport
Publicado por: ASTROCAR en 05 de Junio de 2010, 20:03:37
hola buenas noches experimentando con lo planteado tengo esta duda  envio informacion por el rs232 de esta manera:

procedure TForm1.Button4Click(Sender: TObject);
var
i:byte;
begin
for i:=0 to $2 do
begin
comport1.WriteStr(char(buffer));
comport1.Read(data,i);
mphexeditorex1.Data:=data;
mphexeditorex1.Refresh;
end;
end;

como prueba tengo unido el tx con el rx para ver si lo que erstoy enviando llega perfecto y me resulta que el primer byte que envio es 00 y lo demas si es lo correcto nose a que se debe eso.

ejemplo envio:
25 9B AD 1B A6 AA CD 3F 02 AE 18 CD 3F 00 AE 19
CD 3F 00 AD 0A AE 00 D6 FF FF CD 3F 02 20 EA AE
10 5A 26 FD 81 00

y recibo esto:
00 25 9B AD 1B A6 AA CD 3F 02 AE 18 CD 3F 00 AE
19 CD 3F 00 AD 0A AE 00 D6 FF FF CD 3F 02 20 EA AE
10 5A 26 FD 81 00

nose de donde el primer 00 si le ha pasado este caso a alquien porfavor le agradesco su comentario.
Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: Ayuda con componente Comport
Publicado por: ASTROCAR en 02 de Julio de 2010, 16:35:31
Hola nuevamente haciendo pruebas, note que lo que envio si llega perfecto mi problema es en la recepcion que no le doy el tiempo prudente y por eso recibe 00 antes para eso debo colocar un sleep(tiempo);.

ahora en mi aplicacion en particular nose cual es ese tiempo de recepcion ya que yo envio desde la pc atraves de un max232 y eso lo recibe un micro motorola para leer su eeprom y el responde segun lo que le llegue y tiene su tiempo de respuesta cosa que nose como detectarlo; se me ocurre hacer esta parte atraves de un evento de recepcion.

 si alguien tiene informacion al respecto usando delphi y el componente comport se lo agradesco.

Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: Ayuda con componente Comport
Publicado por: jfh900 en 08 de Agosto de 2010, 22:43:02
Hola.

Yo me he peleado con estos componentes.

Te explico la forma de utilizarlo:

1º) Envías una trama de datos con un comienzo y un fin, por ejemplo: 'Start' + <Trama> + 'End', donde "Start" y "End" son cadenas para identificar el comienzo y el fín.
2º) Añades un ComDataPacket y le pones en "StartString" la primera cadena de comienzo y en StopString la cadena de finalización.
3º) En el Evento OnPacket se activará al recibir la trama completa

Puedes configurar ComDataPacket para que te quite la cadena de comienzo y la de fin.

Un saludo
Título: Re: Ayuda con componente Comport
Publicado por: ASTROCAR en 19 de Noviembre de 2010, 12:13:04
Hola.

Yo me he peleado con estos componentes.

Te explico la forma de utilizarlo:

1º) Envías una trama de datos con un comienzo y un fin, por ejemplo: 'Start' + <Trama> + 'End', donde "Start" y "End" son cadenas para identificar el comienzo y el fín.
2º) Añades un ComDataPacket y le pones en "StartString" la primera cadena de comienzo y en StopString la cadena de finalización.
3º) En el Evento OnPacket se activará al recibir la trama completa

Puedes configurar ComDataPacket para que te quite la cadena de comienzo y la de fin.

Un saludo

Hola buenos dias hermano y disculpa lo tarde, oye podrias dar una breve explicacion del uso de camdatapacket.

Saludos y estamos en contacto.
Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: Ayuda con componente Comport
Publicado por: Rseliman en 01 de Julio de 2013, 15:29:33
Hola Amigos ...hace un tiempo que estoy peleando con el componente Tcomport ..quiero recibir unos datos de sensor de temperatura que vienen de un micro a la pc ...y uso este componente ...la idea es mostrarlo en un Edit.text ...los datos llegan de a 3 caracter por caracter ..si coloco edit.text := Edit.text +str ; los veo pero van uno detras de otro y me llenan el edit ...en cambio si pongo edit.text:= str ; solo veo de a un caracter ...el ultimo supongo ...me explico ??

Asi es como lo uso

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
begin

           ComPort1.ReadStr(Str,Count);

           Edit1.text := Str;

end;


Alguien me da una mano por favor ??

Muchas gracias
Título: Re: Ayuda con componente Comport
Publicado por: Rseliman en 01 de Julio de 2013, 16:57:01
Ya lo resolvi con la respuesta de ASTROCAR

Gracias
Título: Re: Ayuda con componente Comport
Publicado por: eto en 17 de Noviembre de 2014, 19:14:11
Hola a todos posteando despues de tiempo.

como prueba tengo unido el tx con el rx para ver si lo que erstoy enviando llega perfecto y me resulta que el primer byte que envio es 00 y lo demas si es lo correcto nose a que se debe eso.

ejemplo envio:
25 9B AD 1B A6 AA CD 3F 02 AE 18 CD 3F 00 AE 19
CD 3F 00 AD 0A AE 00 D6 FF FF CD 3F 02 20 EA AE
10 5A 26 FD 81 00

y recibo esto:
00 25 9B AD 1B A6 AA CD 3F 02 AE 18 CD 3F 00 AE
19 CD 3F 00 AD 0A AE 00 D6 FF FF CD 3F 02 20 EA AE
10 5A 26 FD 81 00

nose de donde el primer 00 si le ha pasado este caso a alquien porfavor le agradesco su comentario.

ASTROCAR no se deberá este error por que tienes unidos el TX y el RX y con lo rápido del envío se está quedando el último "00" en el buffer y es lo primero que recibes en una nueva trama?
Título: Re: Ayuda con componente Comport
Publicado por: soymoe en 19 de Noviembre de 2014, 22:51:53
Hola Fijate en lo que yo hice: