0% found this document useful (0 votes)
124 views

Delphi

The document defines a form (TForm1) that controls data collection from a COM port and displays live sensor readings in charts. It includes components for opening/saving data files, a timer to periodically read the COM port, and handlers to parse incoming data and update the charts on each read.

Uploaded by

jachle's
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
124 views

Delphi

The document defines a form (TForm1) that controls data collection from a COM port and displays live sensor readings in charts. It includes components for opening/saving data files, a timer to periodically read the COM port, and handlers to parse incoming data and update the charts on each read.

Uploaded by

jachle's
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Menus,

TeEngine, Series, AxCtrls, OleCtrls, VCF1, CPort, TeeProcs, Chart, StdCtrls, CPortCtl, sSkinManager, sSkinProvider, TeeDBEdit, TeeDBCrossTab, TeeEdit; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Button1: TButton; Button2: TButton; MainMenu1: TMainMenu; Chart1: TChart; FILE1: TMenuItem; OPEN1: TMenuItem; SAVE1: TMenuItem; EXIT1: TMenuItem; SETTING1: TMenuItem; Timer1: TTimer; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Label5: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Label4: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Edit7: TEdit; Label9: TLabel; ComLed1: TComLed; Label10: TLabel; sSkinManager1: TsSkinManager; sSkinProvider1: TsSkinProvider; ComPort1: TComPort; ChartEditor1: TChartEditor; Series2: TFastLineSeries; Series1: TFastLineSeries;

Shape1: TShape; Label11: TLabel; Shape2: TShape; Label12: TLabel; Label13: TLabel; Edit8: TEdit; procedure FormCreate(Sender: TObject); procedure OPEN1Click(Sender: TObject); procedure SAVE1Click(Sender: TObject); procedure EXIT1Click(Sender: TObject); procedure SETTING1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComPort1RxChar(Sender: TObject; Count: Integer); procedure Timer1Timer(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ComPort1Break(Sender: TObject); procedure ComPort1RxBuf(Sender: TObject; const Buffer; Count: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; i : integer; keluaran,setpoint,rpm : double; output : string;

implementation uses Unit2; {$R *.dfm} function RemoveWhiteSpace(const s: string): string; var i, j: Integer; begin SetLength(Result, Length(s)); j := 0; for i := 1 to Length(s) do begin if not (s[i] in [#9,#32])then begin inc(j); Result[j] := s[i];

end; end; SetLength(Result, j); end; procedure TForm1.FormCreate(Sender: TObject); begin //ShellExecute(Handle, 'open',PAnsiChar('regsvr32.exe'), PAnsiChar('/s VCF132.OCX'),nil, SW_HIDE); end; procedure TForm1.OPEN1Click(Sender: TObject); var ftype: smallint; begin OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName); if OpenDialog1.Execute then begin form2.f1book1.Read(opendialog1.FileName,ftype); form2.Visible:=true; end; i:=1; while form2.F1Book1.TextRC[i,1]<>'' do begin keluaran:=strtofloat(form2.F1Book1.TextRC[i,1]); series1.AddXY(i,keluaran,'',clTeeColor); i:=i+1; end; end; procedure TForm1.SAVE1Click(Sender: TObject); begin SaveDialog1.InitialDir :=ExtractFilePath(Application.ExeName); if savedialog1.Execute then begin form2.F1Book1.Write(savedialog1.FileName,1); end; end; procedure TForm1.EXIT1Click(Sender: TObject); begin comport1.Close; close; end; procedure TForm1.SETTING1Click(Sender: TObject); begin comport1.ShowSetupDialog; end;

procedure TForm1.Button1Click(Sender: TObject); begin series1.Clear; series2.Clear; comport1.Open; comport1.WriteStr('1'); timer1.Enabled:=true; edit1.Text :=''; series1.Repaint; i:=1; end; procedure TForm1.Button2Click(Sender: TObject); begin //comport1.WriteStr('0'); comport1.Close; timer1.Enabled:=false; label2.Caption :=' '; label5.Caption :=' '; end; procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var str5,str1,a,b,az,pwm,er,der,def: string; htung,c,d,e,f,fh,g,gh,h,hh,i,ih,hoh : integer; teg:double;

begin comport1.ReadStr(str5,count); label2.caption:=label2.Caption+str5; label5.Caption:=label2.Caption; edit8.Text := c:=pos('A',label5.Caption); d:=pos('B',label5.Caption); e:=d-c; f:=pos('C',label5.caption); fh:=f-d; g:=pos('D',label5.caption); gh:=g-f; h:=pos('E',label5.caption);

hh:=h-g; i:=pos('F',label5.caption); ih:=i-h;

a:=copy(label5.Caption,1,c-1); edit1.Text :=a; b:=copy(label5.Caption,c+1,(e-1)); edit2.Text :=b; pwm:=copy(label5.Caption,d+1,(fh-1)); edit3.Text :=pwm; er:=copy(label5.Caption,f+1,(gh-1)); edit4.Text :=er; der:=copy(label5.Caption,g+1,(hh-1)); edit5.Text :=der; def:=copy(label5.Caption,h+1,(ih-1)); edit6.Text :=def;

edit1.Text:=RemoveWhiteSpace(edit1.Text); edit2.Text:=RemoveWhiteSpace(edit2.Text); edit3.Text:=RemoveWhiteSpace(edit3.Text); edit4.Text:=RemoveWhiteSpace(edit4.Text); edit5.Text:=RemoveWhiteSpace(edit5.Text); edit6.Text:=RemoveWhiteSpace(edit6.Text); try if (edit1.Text<>'') then setpoint:=strtoint(edit1.Text); except setpoint:=0; end; try if (edit2.Text<>'') then rpm:=strtoint(edit2.Text); except rpm:=0; end; try if (edit3.Text<>'') then edit3.Text:=edit3.Text;

except edit3.Text:=' '; end; try if (edit3.Text<>'') then teg:= (strtofloat(edit3.Text)/255)*10.5; except teg:=0; end; try if (edit4.Text<>'') then edit4.Text:=edit4.Text; except edit4.Text:=' '; end; try if (edit5.Text<>'') then edit5.Text:=edit5.Text; except edit5.Text:=' '; end; try if (edit6.Text<>'') then edit6.Text:=edit6.Text; except edit6.Text:=' '; end; edit7.Text:=floattostr(teg);

//strtoint(edit3.Text) ; //edit4.Text:= StringReplace(edit3.Text, #9, '',[rfReplaceAll]); //edit4.Text :=inttostr(c);

END; procedure TForm1.Timer1Timer(Sender: TObject); begin //comport1.WriteStr('a'); series1.AddXY(i,setpoint,'',clTeeColor); series2.AddXY(i,rpm,'',clblue);

form2.F1Book1.TextRC[i,1]:=edit2.Text; i:=i+1; label2.Caption:=''; COMPORT1.Close; COMPORT1.Open; //label2.Caption:=label2.Caption;

//label2.Caption:=label2.Caption; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin comport1.Close; end;

procedure TForm1.ComPort1Break(Sender: TObject); begin label2.Caption:=''; end; procedure TForm1.ComPort1RxBuf(Sender: TObject; const Buffer; Count: Integer); var str2 : string; begin comport1.ReadStr(str2,count); end; end.

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, CPort, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart, Menus, shellAPI, unit2; type TForm1 = class(TForm) Timer1: TTimer; Label1: TLabel; Label2: TLabel; ComPort1: TComPort; Label3: TLabel; Label4: TLabel; Chart1: TChart; Series1: TLineSeries; SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; MainMenu1: TMainMenu; File1: TMenuItem; Setting1: TMenuItem; Open1: TMenuItem; Save1: TMenuItem; Exit1: TMenuItem; Button1: TButton; Button2: TButton; Label5: TLabel; Label6: TLabel; Series2: TLineSeries; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ComPort1RxChar(Sender: TObject; Count: Integer); procedure Open1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Save1Click(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure Setting1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;

var Form1: TForm1; i: integer; keluaran: real; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin comport1.WriteStr('A'); label2.Caption:=''; end; procedure TForm1.FormCreate(Sender: TObject); begin ShellExecute(Handle, 'open', PAnsiChar('regsvr32.exe'), PAnsiChar('/s VCF132.OCX'), nil, SW_HIDE); end; procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var str1,str2,str3,str5: string; teg, PORTB: real; a: integer; begin //label2.Caption:=''; comport1.ReadStr(str5,8); label2.Caption:=label2.Caption+str5; str1:=label2.Caption; if str1[2]='a' then begin str2:=str1[1]; if str1[4]='b' then str3:=str1[3] else if str1[5]='b' then str3:=str1[3]+str1[4] else if str1[6]='b' then str3:=str1[3]+str1[4]+str1[5]; end else if str1[3]='a' then begin str2:=str1[1]+str1[2]; if str1[5]='b' then str3:=str1[4] else if str1[6]='b' then str3:=str1[4]+str1[5] else if str1[7]='b' then str3:=str1[4]+str1[5]+str1[6]; end else if str1[4]='a' then begin str2:=str1[1]+str1[2]+str1[3];

if str1[6]='b' then str3:=str1[5] else if str1[7]='b' then str3:=str1[5]+str1[6] else if str1[8]='b' then str3:=str1[5]+str1[6]+str1[7]; end; //teg:=strtoint(str2)*5/255; //label2.Caption:=str2; if str2<>'' then begin teg:=strtoint(str2)*5/255; label4.Caption:=floattostr(teg); series1.AddXY(i,teg,'',clTeeColor); form2.F1Book1.TextRC[i,1]:=Label4.Caption; end; if str3<>'' then begin PORTB:=strtoint(str3)*5/255; label6.Caption:=floattostr(PORTB); series2.AddXY(i,PORTB,'',clTeeColor); form2.F1Book1.TextRC[i,2]:=Label4.Caption; i:=i+1; end; end; procedure TForm1.Open1Click(Sender: TObject); var ftype: smallint; begin OpenDialog1.InitialDir :=ExtractFilePath(Application.ExeName); if OpenDialog1.Execute then begin form2.f1book1.Read(opendialog1.FileName,ftype); form2.Visible:=true; end; i:=1; while form2.F1Book1.TextRC[i,1]<>'' do begin keluaran:=strtofloat(form2.F1Book1.TextRC[i,1]); series1.AddXY(i,keluaran,'',clTeeColor); i:=i+1; end; end; procedure TForm1.Button1Click(Sender: TObject); begin comport1.Open; timer1.Enabled:=true; i:=1; end;

procedure TForm1.Save1Click(Sender: TObject); begin if savedialog1.Execute then begin form2.F1Book1.Write(savedialog1.FileName,1); end; end; procedure TForm1.Exit1Click(Sender: TObject); begin comport1.Close; close; end; procedure TForm1.Setting1Click(Sender: TObject); begin comport1.ShowSetupDialog; end; procedure TForm1.Button2Click(Sender: TObject); begin timer1.Enabled:=false; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin comport1.Close; end; end.

You might also like