unit ESCCalibrationFrm;

interface
uses
  System.Classes,
  Vcl.Controls,
  Vcl.Forms,
  Vcl.StdCtrls,

  Simulator.Registry;


type
  TESCCalibrationForm = class(TForm)
    CloseButton: TButton;
    CalibrationGroupBox: TGroupBox;
    HelpLabel1: TLabel;
    HelpLabel2: TLabel;
    FullButton: TButton;
    OffButton: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FullButtonClick(Sender: TObject);
    procedure OffButtonClick(Sender: TObject);
  private
    FFans: ISimulatorFans;
    FFull: Boolean;
  protected
    property Fans: ISimulatorFans read FFans;
  public
    class procedure Execute(AFans: ISimulatorFans);
  end;


implementation


{$R *.dfm}

{ TESCCalibrationForm }
class procedure TESCCalibrationForm.Execute(AFans: ISimulatorFans);
begin
  with Self.Create(nil) do
  try
    FFans := AFans;
    ShowModal;
  finally
    Free;
  end;
end;


procedure TESCCalibrationForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if FFull then
    Fans.SetAll(0);
end;


procedure TESCCalibrationForm.FullButtonClick(Sender: TObject);
begin
  FullButton.Enabled := False;
  OffButton.Enabled := True;

  Fans.SetFull;
  FFull := True;
end;


procedure TESCCalibrationForm.OffButtonClick(Sender: TObject);
begin
  FullButton.Enabled := True;
  OffButton.Enabled := False;

  Fans.SetAll(0);
  FFull := False;
end;

end.
