domingo, 23 de marzo de 2014

Usando Lazserial en Lazarus.(Mandar código ASCII en Hexadecimal).

Ésta entrada vale su peso en oro, (por lo menos para mí ;-)), y sólo la podrás encontrar en "Linux a tu alcance",por lo menos hasta que la copien en Taringa, jeje,  tras darle unas vueltas a Lazserial he encontrado la forma de mandar código ASCII con comodidad a través del puerto serie.
Para ello utilizo la función Lazserial.WriteData();

El argumento tiene que ser una cadena de texto, osea un dato de tipo String.
¿Cómo podemos usar esto para mandar datos en Hexadecimal, y de paso mandar comandos ASCII?
Fácil; para mandar ASCII usamos el comando Chr que tiene como argumento un entero, así que sólo tenemos que colocar el número en "hexa" como argumento sin olvidar colocar delante el símbolo "$".
Así para crear una cadena como argumento usamos el símbolo "+" para concatenar los caracteres ASCII y enviar el comando con su correspondiente inicio, fin de línea y retorno de carro según necesites. :-)

Veamos un ejemplo:

procedure TForm1.BAbrirClick(Sender: TObject);
begin
  Form1.LazSerial1.WriteData(Chr($02)+Chr($84)+Chr($33)+Chr($03)+Chr($0d));
end;