Ver Mensaje Individual
  #1  
Antiguo 22-04-2009
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 257
Reputación: 21
Carmelo Cash Va por buen camino
Comunicacion con puerto serie

Hola foro:

Estoy haciendo un programa que debe enviar y recibir datos por el puerto rs232. Tengo 0 (cero) experiencia en el tema y quería consultar dos cosas.

La primera es: En la sección "Trucos" existe un hilo
http://www.clubdelphi.com/trucos/ind...ll=0&scrollb=0

Donde hay un ejemplo para leer y escribir por el puerto serie. La pregunta es:

1.- ¿Conviene usar este tipo de código o instalar algún componente para este tipo de comunicación?

2.- Si conviene utilizar un componente ¿Cual sería el más recomendable?.

3.- Si conviene usar este código debo adaptar la parte de escritura, ya que en ejemplo transmite un solo byte,

Código Delphi [-]
Num:=253; // Dato a enviar
repeat until FileWrite(Puerto,Num,1)=1;
Sleep(1000); // Espera para enviar el siguiente dato

, Entonces hago algo como:


Código Delphi [-]
function TForm1.Transmitir(Mensaje:String): boolean;
var Puerto, I :integer;
    Num:byte;
    Dato:String;
    ModeCB;
begin
  result:=false;
  try
    Puerto:=FileOpen('COM1:',fmOpenReadWrite);
    Mode.BaudRate := 9600;
    Mode.ByteSize := 8;
    Mode.Parity := NOPARITY;
    Mode.StopBits := ONESTOPBIT;
    SetCommState(Puerto, Mode); //Ajusta los parámetros
    for i:=0 to length(Mensaje)do begin
      Dato:=Copy(Mensaje,i,1);
      num:= ????(Dato)                 ;   //<<< Incompatible Byte y String
      repeat until FileWrite(Puerto,Num,1)=1;
      Sleep(1000);
      if i=length(Mensaje) then begin
          result:=true;
      end;
    end;
  except
    //
  end;
end;

pero en num:= ????(Dato) debe ir alguna forma de convertir la caaadena en un Byte.

Eso es todo. Gracias por su atención
Responder Con Cita