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 26-02-2008
ayazgz ayazgz is offline
Registrado
 
Registrado: oct 2007
Posts: 3
Poder: 0
ayazgz Va por buen camino
Smile Por que a mi...

Me baje el cport-3.10.zip e hice todo lo que dice... pero a la hora de compilar me da errores por un tubo... uso delphi 5 y necesito recibir y mandar caracteres por puerto serie, no se que mas intentar... solo me falta eso para acabar mi programa...

GRACIAS!!!!!
Responder Con Cita
  #2  
Antiguo 27-02-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola Egostar.
Este codigo copila bien, no me da error alguno pero no corre del todo bien, me manda los hex 02 00 pero el micro no manda los 8 hex.

Código Delphi [-]
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, CPort, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    ComPort1: TComPort;
    procedure Button1Click(Sender: TObject);
    procedure ComPortRxChar(Sender: TObject; Count: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure AddHexString(S : String; Lines : TStrings );
var AddS, HexS, CopyS : String;
    i : Integer;
const SLen = 8;
begin
  while Length(S) > 0 do
    begin
      AddS := Copy(S,1,SLen);
      HexS := '';
      Delete(S,1,SLen);
      for i := 1 to SLen do
        begin
          CopyS := Copy(AddS,i,1);
          if CopyS <> '' then
            HexS := HexS + ' ' + Format('%2.2x',[Byte(CopyS[1])]) //
          else
            HexS := HexS + '   ';
        end;
       while Length(AddS) < SLen do
         AddS := AddS + ' ';
       for i := 1 to SLen do
         case AddS[i] of
           #0..#31 : AddS[i] := '.';
           #127    : AddS[i] := '.';
         end;
       Lines.Add(HexS+' : '+AddS);
    end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 Comport1.Connected:=true;
  Comport1.WriteStr(#2#0);
end;
 procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
 ComPort1.ReadStr(Str, Count);
   If Str= 'Hi-LOGIC' then
   ShowMessage('Ya estamos conectados')
else ShowMessage('Ya nos la pellizcamos');
end;
end.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 27-02-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 23
FGarcia Va por buen camino
PepePancho no te va a funcionar asi porque el RxChar es un caracter a la vez por eso debes de agruparlo en alguna variable y al terminar de capturar debes de efectuar la comparacion.

Código Delphi [-]
var Cadena: string;
ComPort.ReadStr(Str,Count);
Cadena := Cadena + Str;

algo asi. Lo estoy haciendo de memoria.
Responder Con Cita
  #4  
Antiguo 27-02-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola socio.


Cita:
=FGarcia;268851]PepePancho no te va a funcionar asi porque el RxChar es un caracter a la vez por eso debes de agruparlo en alguna variable y al terminar de capturar debes de efectuar la comparacion.


Código Delphi [-]var Cadena: string;
ComPort.ReadStr(Str,Count);
Cadena := Cadena + Str;




algo asi. Lo estoy haciendo de memoria.
Debe decirle a la cadena cuantos caracteres estoy esperando para que ella sepa cuando es tiempo de comparar?

Un Saludo.
Responder Con Cita
  #5  
Antiguo 27-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Debe decirle a la cadena cuantos caracteres estoy esperando para que ella sepa cuando es tiempo de comparar?
Cuando estas esperando una cadena fija (como es el caso) lo puedes hacer como lo comenta FGarcía y comparando la cadena.

Código Delphi [-]
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
begin
  ComPort1.ReadStr(Str,Count);
  Cadena := Cadena + Str;
  if Cadena = 'Hi-LOGIC' then begin
     ShowMessage('Ya estamos conectados');
     Cadena := ''; 
  end;
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 27-02-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola Egostar.

Ya lo de comparar los hex que manda el micro quedo resuelto de esta manera.

Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
     ComPort.ReadStr(Str, Count);
       AddHexString(Str,Memo.Lines);
     if length(Str)>= 8 then
    if Str = 'Hi-LOGIC' then
      showmessage('¡OK! ¡ES ORIGINAL!')
    else
      showmessage('¡HORROR!, ¡ES PIRATA!');
end;

Aqui contamos la cadena y esperamos que sean 8 los caracteres, luego comparamos que sean los deceados lo cual nos dara una respuesta y de no ser iguales pues el resultado adecuado.

Ya el serial port y el comport los estoy entendiendo un poco mejor gracias a tu ayuda y la del amigo FGarcia.

Un Saludo.
Responder Con Cita
  #7  
Antiguo 27-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Ah que bien, felicidades.

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
Port Fordward Y Conexion A Firebird mjjj Firebird e Interbase 4 28-12-2007 16:32:35
Serial Port desde Delphi MaMu API de Windows 2 19-06-2007 02:14:53
Función PORT. para puerto LPT en XP vicruffo Varios 2 10-03-2007 00:21:09
Busco ordenador o portátil Arcioneo Varios 2 18-07-2006 14:49:32
Como se usa el Componente Serial Port en C# (VS2005)? z-7 .NET 0 16-12-2005 06:02:05


La franja horaria es GMT +2. Ahora son las 11:18:06.


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