PDA

Ver la Versión Completa : Ayuda puerto serie


ferranvic
15-01-2010, 18:26:42
Hola a todos, espero que alguien pueda ayudarme, hace años que no toco la programación y tengo que realizar una aplicación que se comunique con una maquina a traves del puerto serie. Hace años hize una pero no recuerdo casi nada de lo que hice.
La maquina usa el protocolo que empieza con el caracter ETX + mensaje + CRC + STX, he instalado el componente Async Pro que es el que use hace años, mi duda es como tengo que enviar la cadena, es decir send := '02' + cadena mensaje + calcular el CRC + '03' o estos caracteres debo convertirlos con CHR o char, o como, alguien puede hecharme una mano, gracias

cocute
15-01-2010, 22:02:25
aqui hay un ejemplo de como Controlar dispositivos por el puerto serie en Delphi, aunque no sea con el componente que dices quiza pueda darte alguna idea:
http://delphi.jmrds.com/?q=node/8

ferranvic
17-01-2010, 14:02:04
Ante todo gracias por la respuesta cocute


He hecho mis primeros pasos, estoy intentando con el siguiente código, y usando de las Asyncpro el ApdComPort y el ApdDataPacket, con la siguiente configuración:

ApdComPort.baud := 9600
ComNumber := 1
DataBits := 1
Parity := pNone
StopBits := 1

que es la configuración de la máquina con la que quiero conectar, y el DataPacket de la siguiente forma:

EndStrign := #3 (^C)
StartString := #2 (^B)

el resto de parámetros están por defecto.

el código es el siguiente

procedure TForm1.Button1Click(Sender: TObject);
var
Msg: String;
S: String;
CRCValue: Word;
begin
S := '200'; // Mensage que tiene que poner en marcha la máquina <STX><2><0><0><CRC><ETX>

CalcCRC16(Addr(S[1]), length(S), CRCValue);
Edit1.Text := IntToStr(CRCValue);
Msg := S + IntToStr(CRCValue);
ShowMessage('Ok');
Edit1.Text := Msg;

ApdComPort1.Open := True;
ApdComPort1.PutString(Msg);


while true do
begin
Memo1.Text := Memo1.TExt + ApdComPort1.GetChar;
ShowMessage('Ok');
end;

end;


Imagino que algo hago mal, ya que la máquina no se inmuta y no recibo ninguna respuesta, gracias