unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, vsComPort,Synaser ;
type
{ TForm1 }
TForm1 = class(TForm)
Label_Titulo: TLabel;
Label_Mensajes: TLabel;
Button_ON: TButton;
Button_OFF: TButton;
Button_COM: TButton;
Button_Abrir: TButton;
Memo_Mensajes: TMemo;
Button_Limpiar: TButton;
Edit1: TEdit;
SetComPort: TButton;
Label1: TLabel;
ScrollBar1: TScrollBar;
vsComPort1: TvsComPort;
comPort1: TBlockSerial; //class defined in Synaser http://synapse.ararat.cz/doc/help/
procedure Button_ONClick(Sender: TObject);
procedure Button_OFFClick(Sender: TObject);
procedure Button_COMClick(Sender: TObject);
procedure Button_AbrirClick(Sender: TObject);
procedure Button_LimpiarClick(Sender: TObject);
procedure ComPort1AfterClose(Sender: TObject);
procedure ComPort1AfterOpen(Sender: TObject);
procedure ComPort1RxChar(Sender: TObject; Count: Integer);
procedure ScrollBar1Change(Sender: TObject);
procedure SetComPortClick(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
procedure TForm1.Button_AbrirClick(Sender: TObject);
begin
// Si el puerto está conectado.
if ComPort1.Connected then
begin
ComPort1.Close; // Cierra el puerto.
Button_COM.Enabled := True;
Button_ON.Enabled := False;
Button_OFF.Enabled := False;
end
else // En caso contrario.
begin
ComPort1.Open; // Abre el puerto.
Button_COM.Enabled := False;
Button_ON.Enabled := True;
Button_OFF.Enabled := True;
end;
end;
procedure TForm1.Button_COMClick(Sender: TObject);
begin
ComPort1.ShowSetupDialog; // Abre la configuración del puerto.
end;
procedure TForm1.Button_LimpiarClick(Sender: TObject);
begin
Memo_Mensajes.Clear(); // Limpia los mensajes del Memo.
end;
procedure TForm1.Button_OFFClick(Sender: TObject);
begin
ComPort1.WriteStr('Luz_OFF'); // Envía el comando "Luz_OFF" al puerto.
end;
procedure TForm1.Button_ONClick(Sender: TObject);
begin
ComPort1.WriteStr('Luz_ON'); // Envía el comando "Luz_ON" al puerto.
end;
procedure TForm1.ComPort1AfterClose(Sender: TObject);
begin
if Button_Abrir <> nil then
Button_Abrir.Caption := 'Abrir';
end;
procedure TForm1.ComPort1AfterOpen(Sender: TObject);
begin
Button_Abrir.Caption := 'Cerrar';
end;
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
// Recibe mensajes desde Arduino.
ComPort1.ReadStr(Str, Count);
// Muestra los mensajes en pantalla.
Memo_Mensajes.Lines.Add( Str );
// Guarda los mensjes de Arduino en un archivo txt.
Memo_Mensajes.Lines.SaveToFile('archivo.txt');
end;
end.