![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#11 |
|
Professional Programmer
Join Date: Feb 2009
Posts: 275
Rep Power: 2
![]() |
Re: Pop-up screen
put the code for the counting in a while statement and pop up after the while statement
while i < 3000 ... ... ... end while show pop up |
|
|
|
|
|
#12 |
|
Trying to be a Real Coder
|
Re: Pop-up screen
popup will appear fastly you can add delay to your code {do something} will be executed every 1 second and popup appears after 1 minute
__________________
just a drop of dew in the morning if we facilitate other people's business in the world, then our business will be facilitated in the world and the hereafter |
|
|
|
|
|
#13 | |
|
Newbie
Join Date: Jan 2010
Location: Singapore
Posts: 21
Rep Power: 0
![]() |
Re: Pop-up screen
Quote:
|
|
|
|
|
|
|
#14 |
|
Trying to be a Real Coder
|
Re: Pop-up screen
try this :
delphi Syntax (Toggle Plain Text)
__________________
just a drop of dew in the morning if we facilitate other people's business in the world, then our business will be facilitated in the world and the hereafter |
|
|
|
|
|
#15 |
|
Newbie
Join Date: Jan 2010
Location: Singapore
Posts: 21
Rep Power: 0
![]() |
I will give u the code so that u know where to insect the code.
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str,temp, ZW_WAR: String;
DateTime : TDateTime;
b,Nodeadresse:byte;
dbm, D751, HeatSink, HeatFlux,thot,tcold,DT,TEGV,Ubat,Pout,rssi,energybalance :double;
a:byte;
dummy:integer;
letzte:longint;
begin
//get actual data and store it in "str"
ComPort.ReadStr(Str, Count);
//store every char from str in "rawdata" until cr + lf
for a := 1 to length(str) do begin
inc(laenge);
rawdata[laenge]:=ord(str[a]);
if (rawdata[laenge]=10) and (rawdata[laenge-1]= 13)then begin
// if received protocol have the defined length of 11 then it is the right one
if laenge=11 then begin
//give rawdate from "rawdata" to "rawdata2" and clear rawdata
for dummy:=1 to 11 do begin rawdata2[dummy]:=rawdata[dummy];rawdata[dummy]:=0;end;
edit6.Text:='';
for dummy:= 1 to 11 do edit6.Text:=edit6.Text+inttostr(rawdata2[dummy])+' ';
nodeadresse:=ord(rawdata2[1]);
//check if the address of the actual TE-Power-NODE already exists or not
if nodeadressen[1]=0 then begin nodeadressen[1]:=nodeadresse;pagecontrol1.Pages[0].Caption:='NODE '+inttostr(nodeadresse);end;
node:=99;
for dummy:=1 to nodeanzahl do
if nodeadressen[dummy]=nodeadresse then node:=dummy;
if node = 99 then if nodeanzahl<5 then begin
inc(nodeanzahl);nodeadressen[nodeanzahl]:=nodeadresse;node:=nodeanzahl;
pagecontrol1.Pages[nodeanzahl-1].Caption:='NODE '+inttostr(nodeadresse);pagecontrol1.Pages[nodeanzahl-1].TabVisible:=true;
end;
//convert the rawdata to temperature, voltage and RSSI value and store it in the diagram
if node=1 then begin
ankunftnode1:=now;
//..................................................
try
thot:=(rawdata2[2]+rawdata2[3]*256)/10;
except
thot:=0;
end;
chart1.Series[1].AddXY(time,thot);
//..................................................
try
tcold:=(rawdata2[4]+rawdata2[5]*256)/10;
except
tcold:=0;
end;
chart1.Series[0].AddXY(time,tcold);
//..................................................
DT:=ABS(thot-tcold);
chart1.Series[2].AddXY(time,dt);
//..................................................
TEGV:=DT*0.07;
chart1.Series[3].AddXY(time,tegv);
//..................................................
try
Ubat:=rawdata2[8]/10;
except
Ubat:=0;
end;
chart1.Series[4].AddXY(time,Ubat);
//..................................................
try
rssi:=(rawdata2[9]- 128) * 100 / 128;;
except
rssi:=0;
end;
chart1.Series[5].AddXY(time,rssi);
end;Really really need ur help in this. Thank you. ![]() |
|
|
|
|
|
#16 |
|
Trying to be a Real Coder
|
Re: Pop-up screen
I don't understand what your asking. When we show the pop-up?
Can I get the full code?
__________________
just a drop of dew in the morning if we facilitate other people's business in the world, then our business will be facilitated in the world and the hereafter |
|
|
|
|
|
#17 |
|
Newbie
Join Date: Jan 2010
Location: Singapore
Posts: 21
Rep Power: 0
![]() |
The full is very long. But if u want to see, I will give you.
unit TE_MainForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, CPort, CPortCtl, TeEngine, Series, TeeProcs, Chart,
ComCtrls, SDL_ProgBar, jpeg, Mask,dateutils;
type
TForm1 = class(TForm)
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
StaticText4: TStaticText;
StaticText5: TStaticText;
StaticText6: TStaticText;
StaticText7: TStaticText;
StaticText8: TStaticText;
StaticText9: TStaticText;
StaticText10: TStaticText;
StaticText11: TStaticText;
StaticText12: TStaticText;
StaticText13: TStaticText;
StaticText14: TStaticText;
StaticText15: TStaticText;
StaticText16: TStaticText;
StaticText17: TStaticText;
StaticText18: TStaticText;
StaticText19: TStaticText;
StaticText20: TStaticText;
StaticText21: TStaticText;
StaticText22: TStaticText;
StaticText23: TStaticText;
StaticText24: TStaticText;
StaticText25: TStaticText;
StaticText26: TStaticText;
StaticText27: TStaticText;
StaticText28: TStaticText;
StaticText29: TStaticText;
StaticText30: TStaticText;
StaticText31: TStaticText;
StaticText32: TStaticText;
StaticText33: TStaticText;
StaticText34: TStaticText;
StaticText35: TStaticText;
StaticText36: TStaticText;
StaticText37: TStaticText;
StaticText38: TStaticText;
StaticText39: TStaticText;
StaticText40: TStaticText;
StaticText41: TStaticText;
StaticText42: TStaticText;
StaticText43: TStaticText;
StaticText44: TStaticText;
StaticText45: TStaticText;
StaticText46: TStaticText;
StaticText47: TStaticText;
StaticText48: TStaticText;
StaticText49: TStaticText;
Timer1: TTimer;
Timer2: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Chart1: TChart;
Chart2: TChart;
Chart3: TChart;
Chart4: TChart;
Series1: TPointSeries;
Series2: TPointSeries;
Series3: TPointSeries;
Series4: TPointSeries;
Series5: TPointSeries;
Series6: TPointSeries;
Series7: TPointSeries;
Series8: TPointSeries;
Series9: TPointSeries;
Series10: TPointSeries;
ComPort: TComPort;
Button_Open: TButton;
Button_Settings: TButton;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Image1: TImage;
Image2: TImage;
ProgBar1: TProgBar;
PageControl1: TPageControl;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
SaveDialog1: TSaveDialog;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
CheckBox7: TCheckBox;
CheckBox10: TCheckBox;
CheckBox11: TCheckBox;
CheckBox12: TCheckBox;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
RadioGroup3: TRadioGroup;
RadioGroup4: TRadioGroup;
PointSeries1: TPointSeries;
PointSeries2: TPointSeries;
PointSeries3: TPointSeries;
PointSeries4: TPointSeries;
PointSeries5: TPointSeries;
PointSeries6: TPointSeries;
PointSeries7: TPointSeries;
PointSeries8: TPointSeries;
PointSeries9: TPointSeries;
PointSeries10: TPointSeries;
PointSeries11: TPointSeries;
PointSeries12: TPointSeries;
PointSeries13: TPointSeries;
PointSeries14: TPointSeries;
CheckBox3: TCheckBox;
CheckBox8: TCheckBox;
CheckBox9: TCheckBox;
CheckBox13: TCheckBox;
CheckBox14: TCheckBox;
CheckBox15: TCheckBox;
procedure Button_OpenClick(Sender: TObject);
procedure Button_SettingsClick(Sender: TObject);
procedure ComPortOpen(Sender: TObject);
procedure ComPortClose(Sender: TObject);
procedure ComPortRxChar(Sender: TObject; Count: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
procedure CheckBox6Click(Sender: TObject);
procedure CheckBox7Click(Sender: TObject);
procedure CheckBox8Click(Sender: TObject);
procedure CheckBox9Click(Sender: TObject);
procedure CheckBox10Click(Sender: TObject);
procedure CheckBox11Click(Sender: TObject);
procedure CheckBox12Click(Sender: TObject);
procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure RadioGroup1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Chart2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup3Click(Sender: TObject);
procedure Chart3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Chart4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure RadioGroup4Click(Sender: TObject);
procedure CheckBox13Click(Sender: TObject);
procedure CheckBox14Click(Sender: TObject);
procedure CheckBox15Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
procedure ProgBarForm2(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
rxbuffer: String;
rawdata:array[1..11] of byte;
rawdata2:array[1..11] of byte;
laenge:byte=0;
empfang:string;
ankunft:double;
harvestingtime,harvestingstarttime,programmstart:double;
Datei: TextFile;
loadsetting:boolean = false;
bcapacity:real;
energybalance:real;
oldx,oldy:integer;
nodeadressen:array[1..5] of byte;
nodeanzahl:byte=1;
node:byte;
bereitlogging:boolean=false;
trennzeichen:char;
ankunftnode1,ankunftnode2,ankunftnode3,ankunftnode4,oldnow:double;
node1letzte,node2letzte,node3letzte,node4letzte:integer;
implementation
uses energycharging;
{$R *.DFM}
//at programstart load the last COM-Port settings
//initialize the diagrams
//read the country settings for decimalseparator and separator for the *.csv file
procedure TForm1.FormCreate(Sender: TObject);
var s:string;
begin
getdir(0,s);
ComPort.loadSettings(stIniFile, s+'\COMSETS.ini');
harvestingstarttime:=now;
oldnow:=now;
chart1.series[0].Active:=true;
chart1.series[1].Active:=true;
chart1.series[2].Active:=false;
chart1.series[3].Active:=false;
chart1.series[4].Active:=true;
chart1.series[5].Active:=true;
chart2.series[0].Active:=true;
chart2.series[1].Active:=true;
chart2.series[2].Active:=false;
chart2.series[3].Active:=false;
chart2.series[4].Active:=true;
chart2.series[5].Active:=true;
chart3.series[0].Active:=true;
chart3.series[1].Active:=true;
chart3.series[2].Active:=false;
chart3.series[3].Active:=false;
chart3.series[4].Active:=true;
chart3.series[5].Active:=true;
chart4.series[0].Active:=true;
chart4.series[1].Active:=true;
chart4.series[2].Active:=false;
chart4.series[3].Active:=false;
chart4.series[4].Active:=true;
chart4.series[5].Active:=true;
pagecontrol1.Pages[1].TabVisible:=false;
pagecontrol1.Pages[2].TabVisible:=false;
pagecontrol1.Pages[3].TabVisible:=false;
pagecontrol1.Pages[4].TabVisible:=false;
programmstart:=now;
if decimalseparator='.' then trennzeichen:=',';
if decimalseparator=',' then trennzeichen:=';';
end;
// open or close COM-Port
procedure TForm1.Button_OpenClick(Sender: TObject);
begin
if ComPort.Connected then
ComPort.Close
else begin
ComPort.Open;
//send "n" over COM to switch USB Receiver to raw data transmission
ComPort.WriteStr('n');
//Timer for Energy balance gets actual time
harvestingstarttime:=now;
end;
end;
procedure TForm1.Button_SettingsClick(Sender: TObject);
var
s:string;
begin
ComPort.ShowSetupDialog;
getdir(0,s);
//save COM-Port settings in a *.ini file
ComPort.StoreSettings(stIniFile, s+'\COMSETS.ini');
end;
procedure TForm1.ComPortOpen(Sender: TObject);
begin
Button_Open.Caption := 'Stop';
end;
procedure TForm1.ComPortClose(Sender: TObject);
begin
if Button_Open <> nil then
Button_Open.Caption := 'Run';
end;
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str,temp, ZW_WAR: String;
DateTime : TDateTime;
b,Nodeadresse:byte;
dbm, D751, HeatSink, HeatFlux,thot,tcold,DT,TEGV,Ubat,Pout,rssi,energybalance :double;
a:byte;
dummy:integer;
letzte:longint;
begin
//get actual data and store it in "str"
ComPort.ReadStr(Str, Count);
//store every char from str in "rawdata" until cr + lf
for a := 1 to length(str) do begin
inc(laenge);
rawdata[laenge]:=ord(str[a]);
if (rawdata[laenge]=10) and (rawdata[laenge-1]= 13)then begin
// if received protocol have the defined length of 11 then it is the right one
if laenge=11 then begin
//give rawdate from "rawdata" to "rawdata2" and clear rawdata
for dummy:=1 to 11 do begin rawdata2[dummy]:=rawdata[dummy];rawdata[dummy]:=0;end;
edit6.Text:='';
for dummy:= 1 to 11 do edit6.Text:=edit6.Text+inttostr(rawdata2[dummy])+' ';
nodeadresse:=ord(rawdata2[1]);
//check if the address of the actual TE-Power-NODE already exists or not
if nodeadressen[1]=0 then begin nodeadressen[1]:=nodeadresse;pagecontrol1.Pages[0].Caption:='NODE '+inttostr(nodeadresse);end;
node:=99;
for dummy:=1 to nodeanzahl do
if nodeadressen[dummy]=nodeadresse then node:=dummy;
if node = 99 then if nodeanzahl<5 then begin
inc(nodeanzahl);nodeadressen[nodeanzahl]:=nodeadresse;node:=nodeanzahl;
pagecontrol1.Pages[nodeanzahl-1].Caption:='NODE '+inttostr(nodeadresse);pagecontrol1.Pages[nodeanzahl-1].TabVisible:=true;
end;
//convert the rawdata to temperature, voltage and RSSI value and store it in the diagram
if node=1 then begin
ankunftnode1:=now;
//..................................................
try
thot:=(rawdata2[2]+rawdata2[3]*256)/10;
except
thot:=0;
end;
chart1.Series[1].AddXY(time,thot);
//..................................................
try
tcold:=(rawdata2[4]+rawdata2[5]*256)/10;
except
tcold:=0;
end;
chart1.Series[0].AddXY(time,tcold);
//..................................................
DT:=ABS(thot-tcold);
chart1.Series[2].AddXY(time,dt);
//..................................................
TEGV:=DT*0.07;
chart1.Series[3].AddXY(time,tegv);
//..................................................
try
Ubat:=rawdata2[8]/10;
except
Ubat:=0;
end;
chart1.Series[4].AddXY(time,Ubat);
//..................................................
try
rssi:=(rawdata2[9]- 128) * 100 / 128;;
except
rssi:=0;
end;
chart1.Series[5].AddXY(time,rssi);
end;
if node=2 then begin
ankunftnode2:=now;
//..................................................
try
thot:=(rawdata2[2]+rawdata2[3]*256)/10;
except
thot:=0;
end;
chart2.Series[1].AddXY(time,thot);
//..................................................
try
tcold:=(rawdata2[4]+rawdata2[5]*256)/10;
except
tcold:=0;
end;
chart2.Series[0].AddXY(time,tcold);
//..................................................
DT:=ABS(thot-tcold);
chart2.Series[2].AddXY(time,dt);
//..................................................
TEGV:=DT*0.07;
chart2.Series[3].AddXY(time,tegv);
//..................................................
try
Ubat:=rawdata2[8]/10;
except
Ubat:=0;
end;
chart2.Series[4].AddXY(time,Ubat);
//..................................................
try
rssi:=(rawdata2[9]- 128) * 100 / 128;;
except
rssi:=0;
end;
chart2.Series[5].AddXY(time,rssi);
end;
if node=3 then begin
ankunftnode3:=now;
//..................................................
try
thot:=(rawdata2[2]+rawdata2[3]*256)/10;
except
thot:=0;
end;
chart3.Series[1].AddXY(time,thot);
//..................................................
try
tcold:=(rawdata2[4]+rawdata2[5]*256)/10;
except
tcold:=0;
end;
chart3.Series[0].AddXY(time,tcold);
//..................................................
DT:=ABS(thot-tcold);
chart3.Series[2].AddXY(time,dt);
//..................................................
TEGV:=DT*0.07;
chart3.Series[3].AddXY(time,tegv);
//..................................................
try
Ubat:=rawdata2[8]/10;
except
Ubat:=0;
end;
chart3.Series[4].AddXY(time,Ubat);
//..................................................
try
rssi:=(rawdata2[9]- 128) * 100 / 128;;
except
rssi:=0;
end;
chart3.Series[5].AddXY(time,rssi);
end;
if node=4 then begin
ankunftnode4:=now;
//..................................................
try
thot:=(rawdata2[2]+rawdata2[3]*256)/10;
except
thot:=0;
end;
chart4.Series[1].AddXY(time,thot);
//..................................................
try
tcold:=(rawdata2[4]+rawdata2[5]*256)/10;
except
tcold:=0;
end;
chart4.Series[0].AddXY(time,tcold);
//..................................................
DT:=ABS(thot-tcold);
chart4.Series[2].AddXY(time,dt);
//..................................................
TEGV:=DT*0.07;
chart4.Series[3].AddXY(time,tegv);
//..................................................
try
Ubat:=rawdata2[8]/10;
except
Ubat:=0;
end;
chart4.Series[4].AddXY(time,Ubat);
//..................................................
try
rssi:=(rawdata2[9]- 128) * 100 / 128;;
except
rssi:=0;
end;
chart4.Series[5].AddXY(time,rssi);
end;
//update the data around the picture with the actual selected TAB (diagram)
if pagecontrol1.ActivePageIndex=0 then begin
label7.Caption:=inttostr(Nodeadressen[1]);
if (now-ankunftnode1)<0.0001 then begin
if chart1.Series[1].count>0 then begin
try
thot:=chart1.Series[1].YValue[chart1.Series[1].count-1];
edit2.Text:=Format('%3.1f', [thot]);
label1.Caption:='T2 = '+edit2.text+' °C';
tcold:=chart1.Series[0].YValue[chart1.Series[0].count-1];
edit3.Text:=Format('%3.1f', [tcold]);
label3.Caption:='T1 = '+edit3.Text+' °C';
Ubat:=chart1.Series[4].YValue[chart1.Series[4].count-1];
edit5.Text:=Format('%2.1f', [Ubat]);
label2.Caption:='U = '+edit5.Text+' V';
rssi:=chart1.Series[5].YValue[chart1.Series[5].count-1];
edit4.Text:=Format('%3.0f', [rssi]);;
except
end;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
label4.Visible:=true;
image2.Visible:=true;
progbar1.Visible:=true;
end;
end
else begin
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
image2.Visible:=false;
progbar1.Visible:=false;
thot:=0;
tcold:=0;
edit2.Text:='0';
edit3.Text:='0';
edit5.Text:='0';
end;
end;
if pagecontrol1.ActivePageIndex=1 then begin
label7.Caption:=inttostr(Nodeadressen[2]);
if (now-ankunftnode2)<0.0001 then begin
if chart2.Series[1].count>0 then begin
try
thot:=chart2.Series[1].YValue[chart2.Series[1].count-1];
edit2.Text:=Format('%3.1f', [thot]);
label1.Caption:='T2 = '+edit2.text+' °C';
tcold:=chart2.Series[0].YValue[chart2.Series[0].count-1];
edit3.Text:=Format('%3.1f', [tcold]);
label3.Caption:='T1 = '+edit3.Text+' °C';
Ubat:=chart2.Series[4].YValue[chart2.Series[4].count-1];
edit5.Text:=Format('%2.1f', [Ubat]);
label2.Caption:='U = '+edit5.Text+' V';
rssi:=chart2.Series[5].YValue[chart2.Series[5].count-1];
edit4.Text:=Format('%3.0f', [rssi]);;
except
end;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
label4.Visible:=true;
image2.Visible:=true;
progbar1.Visible:=true;
end;
end
else begin
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
image2.Visible:=false;
progbar1.Visible:=false;
thot:=0;
tcold:=0;
edit2.Text:='0';
edit3.Text:='0';
edit5.Text:='0';
end;
end;
if pagecontrol1.ActivePageIndex=2 then begin
label7.Caption:=inttostr(Nodeadressen[3]);
if (now-ankunftnode3)<0.0001 then begin
if chart3.Series[1].count>0 then begin
try
thot:=chart3.Series[1].YValue[chart3.Series[1].count-1];
edit2.Text:=Format('%3.1f', [thot]);
label1.Caption:='T2 = '+edit2.text+' °C';
tcold:=chart3.Series[0].YValue[chart3.Series[0].count-1];
edit3.Text:=Format('%3.1f', [tcold]);
label3.Caption:='T1 = '+edit3.Text+' °C';
Ubat:=chart3.Series[4].YValue[chart3.Series[4].count-1];
edit5.Text:=Format('%2.1f', [Ubat]);
label2.Caption:='U = '+edit5.Text+' V';
rssi:=chart3.Series[5].YValue[chart3.Series[5].count-1];
edit4.Text:=Format('%3.0f', [rssi]);;
except
end;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
label4.Visible:=true;
image2.Visible:=true;
progbar1.Visible:=true;
end;
end
else begin
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
image2.Visible:=false;
progbar1.Visible:=false;
thot:=0;
tcold:=0;
edit2.Text:='0';
edit3.Text:='0';
edit5.Text:='0';
end;
end;
if pagecontrol1.ActivePageIndex=3 then begin
label7.Caption:=inttostr(Nodeadressen[4]);
if (now-ankunftnode4)<0.0001 then begin
if chart4.Series[1].count>0 then begin
try
thot:=chart4.Series[1].YValue[chart4.Series[1].count-1];
edit2.Text:=Format('%3.1f', [thot]);
label1.Caption:='T2 = '+edit2.text+' °C';
tcold:=chart4.Series[0].YValue[chart4.Series[0].count-1];
edit3.Text:=Format('%3.1f', [tcold]);
label3.Caption:='T1 = '+edit3.Text+' °C';
Ubat:=chart1.Series[4].YValue[chart4.Series[4].count-1];
edit5.Text:=Format('%2.1f', [Ubat]);
label2.Caption:='U = '+edit5.Text+' V';
rssi:=chart4.Series[5].YValue[chart4.Series[5].count-1];
edit4.Text:=Format('%3.0f', [rssi]);;
except
end;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
label4.Visible:=true;
image2.Visible:=true;
progbar1.Visible:=true;
end;
end
else begin
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
image2.Visible:=false;
progbar1.Visible:=false;
thot:=0;
tcold:=0;
edit2.Text:='0';
edit3.Text:='0';
edit5.Text:='0';
end;
end;
//thermal resistance of MPG-D751: 13 K/W
D751:= 13;
//update the data for electrical and thermal details
try
progbar1.Value:=rssi;
DT:=abs(thot-tcold);
edit9.Text:=format('%3.1f',[dt]);
tegv:=DT*0.07;
edit10.Text:=format('%4.3f',[TEGV]);
Pout:=(TEGV*TEGV)/0.35;
edit11.Text:=format('%4.3f',[Pout]);
HeatFlux:=DT/D751;
edit7.Text:=Format('%3.2f', [HeatFlux]);
Label4.Caption:= 'Q = '+Format('%3.2f', [HeatFlux])+' W';
except
end;
//..................................................
ankunft:=now;
end;
laenge:=0;
end
end;
end;
//check every second if the received data´s are not older then a definied time (10s)
//update every second the values of energy charging
procedure TForm1.Timer1Timer(Sender: TObject);
var verbrauch,TEGenergy:real;
//SMsg: String;
begin
//Timer1.Enabled := False;
//SMsg := 'Please get up and relax your eyes';
//ShowMessage(SMsg);
if form2.visible=false then checkbox5.Checked :=false;
if (now-ankunftnode1)<0.0001 then pagecontrol1.Pages[0].Highlighted:=true
else pagecontrol1.Pages[0].Highlighted:=false;
if (now-ankunftnode2)<0.0001 then pagecontrol1.Pages[1].Highlighted:=true
else pagecontrol1.Pages[1].Highlighted:=false;
if (now-ankunftnode3)<0.0001 then pagecontrol1.Pages[2].Highlighted:=true
else pagecontrol1.Pages[2].Highlighted:=false;
if (now-ankunftnode4)<0.0001 then pagecontrol1.Pages[3].Highlighted:=true
else pagecontrol1.Pages[3].Highlighted:=false;
if now-ankunft>0.0001 then
begin
edit2.Text:='0';
edit3.Text:='0';
edit5.Text:='0';
edit7.Text:='0';
edit9.Text:='0';
edit10.Text:='0';
edit11.Text:='0';
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
image2.Visible:=false;
progbar1.Visible:=false;
end;
form2.ProgBar1.Value:=bcapacity;
form2.statictext10.visible:=false;
try
form2.Edit10.Text:=format('%4.3f',[strtofloat(edit11.Text)*strtofloat(form2.edit3.Text)/100]);
except
end;
try
verbrauch:=(strtofloat(form2.edit4.Text)*strtofloat(form2.edit5.Text)+strtofloat(form2.edit6.Text)*strtofloat(form2.edit7.Text))
/(strtofloat(form2.edit4.Text)+strtofloat(form2.edit6.Text));
form2.edit9.text:=Format('%4.3f', [verbrauch]);
TEGenergy:=strtofloat(edit11.text)*strtofloat(form2.edit3.Text)/100;
energybalance:=TEGenergy-verbrauch;
form2.edit8.Text:=Format('%4.3f', [ENERGYBALANCE]);
if strtofloat(form2.Edit1.text) > 0 then begin
form2.ProgBar1.Max:=strtofloat(form2.Edit1.text);
if strtofloat(Edit11.Text) > 0 then begin
if form2.checkbox1.Checked=true then
bcapacity:=bcapacity+strtofloat(edit11.Text)/strtofloat(form2.Edit2.text)/3600*strtofloat(form2.edit3.text)/100-(verbrauch/strtofloat(form2.edit2.Text)/3600)
else
bcapacity:=bcapacity+strtofloat(edit11.Text)/strtofloat(form2.Edit2.text)/3600*strtofloat(form2.edit3.text)/100;
if bcapacity<=0 then bcapacity:=0;
if bcapacity>=form2.ProgBar1.Max then bcapacity:=form2.ProgBar1.Max;
form2.Label1.Caption:= Format('%3.6f', [bcapacity])+' mAh';
if strtofloat(edit11.Text)*strtofloat(form2.edit3.text)/100-verbrauch > 0 then form2.ProgBar1.ColorMin:=clLime
else
if form2.checkbox1.Checked=true then form2.ProgBar1.ColorMin:=clRed else form2.ProgBar1.ColorMin:=clLime;
end;
end;
except
form2.StaticText10.visible:=true
end;
form2.Label4.Caption:=timetostr(now-harvestingstarttime);
end;
//clear the data of the diagrams
procedure TForm1.Button1Click(Sender: TObject);
begin
chart1.Series[0].Clear;
chart1.Series[1].Clear;
chart1.Series[2].Clear;
chart1.Series[3].Clear;
chart1.Series[4].Clear;
chart1.Series[5].Clear;
node1letzte:=-1;
chart2.Series[0].Clear;
chart2.Series[1].Clear;
chart2.Series[2].Clear;
chart2.Series[3].Clear;
chart2.Series[4].Clear;
chart2.Series[5].Clear;
node2letzte:=-1;
chart3.Series[0].Clear;
chart3.Series[1].Clear;
chart3.Series[2].Clear;
chart3.Series[3].Clear;
chart3.Series[4].Clear;
chart3.Series[5].Clear;
node3letzte:=-1;
chart4.Series[0].Clear;
chart4.Series[1].Clear;
chart4.Series[2].Clear;
chart4.Series[3].Clear;
chart4.Series[4].Clear;
chart4.Series[5].Clear;
node4letzte:=-1;
end;
//save in realtime: shows the savedialog and create a logfile
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked then
if savedialog1.Execute then
if fileexists(SaveDialog1.FileName) then
if MessageDlg('File exists. Overwrite ? ',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
AssignFile(Datei, savedialog1.FileName);
Rewrite(Datei);
Writeln(Datei,'TE-Power-NODE');Writeln(Datei,'');
Writeln(Datei,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei,'');
Writeln(Datei,'adress',trennzeichen,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
Closefile(Datei);
bereitlogging:=true;
end
else checkbox1.checked := false
else begin
AssignFile(Datei, savedialog1.FileName);
Rewrite(Datei);
Writeln(Datei,'TE-Power-NODE');Writeln(Datei,'');
Writeln(Datei,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei,'');
Writeln(Datei,'adress',trennzeichen,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
Closefile(Datei);
bereitlogging:=true;
end;
end;
//save diagram1, shows the savedialog create a datafile and
//save the data of the diagram1 to the file
procedure TForm1.Button2Click(Sender: TObject);
var datei2:Textfile;
i:longint;
begin
if chart1.series[0].LastValueIndex >= 0 then
if savedialog1.Execute then
if fileexists(SaveDialog1.FileName) then
if MessageDlg('File exists. Overwrite ? ',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[1]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart1.series[0].count-1 do
writeln(Datei2,timetostr(chart1.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart1.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart1.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07*(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart1.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart1.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[1]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart1.series[0].count-1 do
writeln(Datei2,timetostr(chart1.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart1.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart1.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07*(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart1.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart1.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else
showmessage('no data received yet');
end;
//save diagram2, shows the savedialog create a datafile and
//save the data of the diagram2 to the file
procedure TForm1.Button7Click(Sender: TObject);
var datei2:Textfile;
i:longint;
begin
if chart2.series[0].LastValueIndex >= 0 then
if savedialog1.Execute then
if fileexists(SaveDialog1.FileName) then
if MessageDlg('File exists. Overwrite ? ',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[2]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart2.series[0].LastValueIndex do
writeln(Datei2,timetostr(chart2.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart2.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart2.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07*(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart2.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart2.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[2]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart2.series[0].LastValueIndex do
writeln(Datei2,timetostr(chart2.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart2.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart2.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07*(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart2.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart2.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else
showmessage('no data received yet');
end;
//save diagram3, shows the savedialog create a datafile and
//save the data of the diagram3 to the file
procedure TForm1.Button8Click(Sender: TObject);
var datei2:Textfile;
i:longint;
begin
if chart3.series[0].LastValueIndex >= 0 then
if savedialog1.Execute then
if fileexists(SaveDialog1.FileName) then
if MessageDlg('File exists. Overwrite ? ',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[3]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart3.series[0].LastValueIndex do
writeln(Datei2,timetostr(chart3.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart3.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart3.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07*(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart3.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart3.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[3]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart3.series[0].LastValueIndex do
writeln(Datei2,timetostr(chart3.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart3.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart3.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07*(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart3.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart3.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else
showmessage('no data received yet');
end;
//save diagram4, shows the savedialog create a datafile and
//save the data of the diagram4 to the file
procedure TForm1.Button10Click(Sender: TObject);
var datei2:Textfile;
i:longint;
begin
if chart4.series[0].LastValueIndex >= 0 then
if savedialog1.Execute then
if fileexists(SaveDialog1.FileName) then
if MessageDlg('File exists. Overwrite ? ',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[3]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart4.series[0].LastValueIndex do
writeln(Datei2,timetostr(chart4.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart4.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart4.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07*(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart4.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart4.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else begin
AssignFile(Datei2, savedialog1.FileName);
Rewrite(Datei2);
Writeln(Datei2,'TE-Power-NODE');Writeln(Datei2,'');
Writeln(Datei2,'Adress:',trennzeichen,nodeadressen[3]);
Writeln(Datei2,'Date:',trennzeichen,datetostr(programmstart));
Writeln(Datei2,'');
Writeln(Datei2,'time[hh:mm:ss]',trennzeichen,'T1[°C]',trennzeichen,'T2[°C]',trennzeichen,'DT[K]',trennzeichen,'Q[W]',trennzeichen,'TEG-V[V]',trennzeichen,'TEG-P[mW]',trennzeichen,'MCU-V[V]',trennzeichen,'RSSI[%]');
for i:=0 to chart4.series[0].LastValueIndex do
writeln(Datei2,timetostr(chart4.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart4.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart4.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07*(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart4.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart4.Series[5].YValue[i]]),trennzeichen
);
closefile(Datei2)
end
else
else
showmessage('no data received yet');
end;
//Exit button
procedure TForm1.Button3Click(Sender: TObject);
begin
application.Terminate;
end;
//open the window for thermal and electrical details
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if checkbox2.Checked then begin
groupbox1.Visible:=true;
groupbox2.Visible:=true;
form1.ClientWidth:=880
end
else begin
groupbox1.Visible:=false;
groupbox2.Visible:=false;
form1.ClientWidth:=623;
end;
end;
//open the window for energy charging
procedure TForm1.CheckBox5Click(Sender: TObject);
begin
if checkbox5.Checked then
begin
form2.ProgBar1.OnDblClick:= ProgBarForm2;
form2.show
end
else form2.hide;
end;
//reset the capacity of the battery and harvesting time
procedure TForm1.ProgBarForm2(Sender: TObject);
begin
bcapacity:=0;
form2.label1.Caption:='0 mAh';
harvestingstarttime:=now;
end;
//Reset the zoom for diagram1
procedure TForm1.Button4Click(Sender: TObject);
begin
chart1.LeftAxis.Minimum:=0;
chart1.LeftAxis.AutomaticMaximum:=true;
chart1.BottomAxis.Automatic:=true;
chart1.RightAxis.Minimum:=0;
chart1.RightAxis.AutomaticMaximum:=true;
end;
//Reset the zoom for diagram2
procedure TForm1.Button5Click(Sender: TObject);
begin
chart2.LeftAxis.Minimum:=0;
chart2.LeftAxis.AutomaticMaximum:=true;
chart2.BottomAxis.Automatic:=true;
chart2.RightAxis.Minimum:=0;
chart2.RightAxis.AutomaticMaximum:=true;
end;
//Reset the zoom for diagram3
procedure TForm1.Button6Click(Sender: TObject);
begin
chart3.LeftAxis.Minimum:=0;
chart3.LeftAxis.AutomaticMaximum:=true;
chart3.BottomAxis.Automatic:=true;
chart3.RightAxis.Minimum:=0;
chart3.RightAxis.AutomaticMaximum:=true;
end;
//Reset the zoom for diagram4
procedure TForm1.Button9Click(Sender: TObject);
begin
chart4.LeftAxis.Minimum:=0;
chart4.LeftAxis.AutomaticMaximum:=true;
chart4.BottomAxis.Automatic:=true;
chart4.RightAxis.Minimum:=0;
chart4.RightAxis.AutomaticMaximum:=true;
end;
//activate or deactivate T1,T2 in diagram1
procedure TForm1.CheckBox4Click(Sender: TObject);
begin
if checkbox4.Checked=true then begin
chart1.Series[0].active:=true;
chart1.Series[1].Active:=true;
end
else begin
chart1.Series[0].Active:=false;
chart1.Series[1].Active:=false;
end;
end;
//activate or deactivate T1,T2 in diagram2
procedure TForm1.CheckBox3Click(Sender: TObject);
begin
if checkbox3.Checked=true then begin
chart2.Series[0].active:=true;
chart2.Series[1].Active:=true;
end
else begin
chart2.Series[0].Active:=false;
chart2.Series[1].Active:=false;
end;
end;
//activate or deactivate T1,T2 in diagram3
procedure TForm1.CheckBox10Click(Sender: TObject);
begin
if checkbox10.Checked=true then begin
chart3.Series[0].active:=true;
chart3.Series[1].Active:=true;
end
else begin
chart3.Series[0].Active:=false;
chart3.Series[1].Active:=false;
end;
end;
//activate or deactivate T1,T2 in diagram4
procedure TForm1.CheckBox13Click(Sender: TObject);
begin
if checkbox13.Checked=true then begin
chart4.Series[0].active:=true;
chart4.Series[1].Active:=true;
end
else begin
chart4.Series[0].Active:=false;
chart4.Series[1].Active:=false;
end;
end;
//activate or deactivate DT in diagram1
procedure TForm1.CheckBox6Click(Sender: TObject);
begin
if checkbox6.Checked=true then chart1.Series[2].active:=true
else chart1.Series[2].Active:=false;
end;
//activate or deactivate DT in diagram2
procedure TForm1.CheckBox8Click(Sender: TObject);
begin
if checkbox8.Checked=true then chart2.Series[2].active:=true
else chart2.Series[2].Active:=false;
end;
//activate or deactivate DT in diagram3
procedure TForm1.CheckBox11Click(Sender: TObject);
begin
if checkbox11.Checked=true then chart3.Series[2].active:=true
else chart3.Series[2].Active:=false;
end;
//activate or deactivate DT in diagram4
procedure TForm1.CheckBox14Click(Sender: TObject);
begin
if checkbox14.Checked=true then chart4.Series[2].active:=true
else chart4.Series[2].Active:=false;
end;
//activate or deactivate TEG voltage in diagram1
procedure TForm1.CheckBox7Click(Sender: TObject);
begin
if checkbox7.Checked=true then chart1.Series[3].active:=true
else chart1.Series[3].Active:=false;
end;
//activate or deactivate TEG voltage in diagram2
procedure TForm1.CheckBox9Click(Sender: TObject);
begin
if checkbox9.Checked=true then chart2.Series[3].active:=true
else chart2.Series[3].Active:=false;
end;
//activate or deactivate TEG voltage in diagram3
procedure TForm1.CheckBox12Click(Sender: TObject);
begin
if checkbox12.Checked=true then chart3.Series[3].active:=true
else chart3.Series[3].Active:=false;
end;
//activate or deactivate TEG voltage in diagram4
procedure TForm1.CheckBox15Click(Sender: TObject);
begin
if checkbox15.Checked=true then chart4.Series[3].active:=true
else chart4.Series[3].Active:=false;
end;
//show the coordinates of the mouse in diagram1
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var tmpX,tmpY:double;
begin
if PtInRect( Chart1.ChartRect, point(X,Y)) then
begin
chart1.Cursor:=crCross;
if radiogroup1.Itemindex=0 then
With chart1.Series[1] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label5.Caption:=GetVertAxis.LabelValue(tmpY);
Label6.Caption:=GetHorizAxis.LabelValue(tmpX);
end
else
With chart1.Series[3] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label5.Caption:=GetVertAxis.LabelValue(tmpY);
Label6.Caption:=GetHorizAxis.LabelValue(tmpX);
end;
end
else chart1.Cursor:=crDefault;
end;
//show the coordinates of the mouse in diagram2
procedure TForm1.Chart2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var tmpX,tmpY:double;
begin
if PtInRect( Chart2.ChartRect, point(X,Y)) then
begin
chart2.Cursor:=crCross;
if radiogroup2.Itemindex=0 then
With chart2.Series[1] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label8.Caption:=GetVertAxis.LabelValue(tmpY);
Label9.Caption:=GetHorizAxis.LabelValue(tmpX);
end
else
With chart2.Series[3] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label8.Caption:=GetVertAxis.LabelValue(tmpY);
Label9.Caption:=GetHorizAxis.LabelValue(tmpX);
end;
end
else chart2.Cursor:=crDefault;
end;
//show the coordinates of the mouse in diagram3
procedure TForm1.Chart3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var tmpX,tmpY:double;
begin
if PtInRect( Chart3.ChartRect, point(X,Y)) then
begin
chart3.Cursor:=crCross;
if radiogroup3.Itemindex=0 then
With chart3.Series[1] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label10.Caption:=GetVertAxis.LabelValue(tmpY);
Label11.Caption:=GetHorizAxis.LabelValue(tmpX);
end
else
With chart3.Series[3] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label10.Caption:=GetVertAxis.LabelValue(tmpY);
Label11.Caption:=GetHorizAxis.LabelValue(tmpX);
end;
end
else chart3.Cursor:=crDefault;
end;
//show the coordinates of the mouse in diagram4
procedure TForm1.Chart4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var tmpX,tmpY:double;
begin
if PtInRect( Chart4.ChartRect, point(X,Y)) then
begin
chart4.Cursor:=crCross;
if radiogroup4.Itemindex=0 then
With chart4.Series[1] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label12.Caption:=GetVertAxis.LabelValue(tmpY);
Label13.Caption:=GetHorizAxis.LabelValue(tmpX);
end
else
With chart4.Series[3] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label12.Caption:=GetVertAxis.LabelValue(tmpY);
Label13.Caption:=GetHorizAxis.LabelValue(tmpX);
end;
end
else chart4.Cursor:=crDefault;
end;
//check if TEG voltage chart is active to switch to y2 in diagram1
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if radiogroup1.ItemIndex=1 then if checkbox7.Checked=false then radiogroup1.ItemIndex:=0;
end;
//check if TEG voltage chart is active to switch to y2 in diagram2
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
if radiogroup2.ItemIndex=1 then if checkbox9.Checked=false then radiogroup2.ItemIndex:=0;
end;
//check if TEG voltage chart is active to switch to y2 in diagram3
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin
if radiogroup3.ItemIndex=1 then if checkbox12.Checked=false then radiogroup3.ItemIndex:=0;
end;
//check if TEG voltage chart is active to switch to y2 in diagram4
procedure TForm1.RadioGroup4Click(Sender: TObject);
begin
if radiogroup4.ItemIndex=1 then if checkbox15.Checked=false then radiogroup4.ItemIndex:=0;
end;
//Timer2 is for realtime logging
//every 10s the last received data from the diagrams will be saved in the logfile
procedure TForm1.Timer2Timer(Sender: TObject);
var
i:integer;
begin
if checkbox1.Checked and bereitlogging then begin
if (node1letzte<chart1.Series[1].count-1)then begin
try
append(Datei);
for i:=node1letzte+1 to chart1.Series[1].count-1 do
writeln(Datei,nodeadressen[1],trennzeichen
,timetostr(chart1.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart1.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart1.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07*(chart1.Series[1].YValue[i]-chart1.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart1.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart1.Series[5].YValue[i]]),trennzeichen
);
node1letzte:=chart1.Series[1].count-1;
except
end;
end;
if (node2letzte<chart2.Series[1].count-1)then begin
try
append(Datei);
for i:=node2letzte+1 to chart2.Series[1].count-1 do
writeln(Datei,nodeadressen[2],trennzeichen
,timetostr(chart2.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart2.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart2.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07*(chart2.Series[1].YValue[i]-chart2.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart2.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart2.Series[5].YValue[i]]),trennzeichen
);
node2letzte:=chart2.Series[1].count-1;
except
end;
end;
if (node3letzte<chart3.Series[1].count-1)then begin
try
append(Datei);
for i:=node3letzte+1 to chart3.Series[1].count-1 do
writeln(Datei,nodeadressen[3],trennzeichen
,timetostr(chart3.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart3.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart3.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07*(chart3.Series[1].YValue[i]-chart3.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart3.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart3.Series[5].YValue[i]]),trennzeichen
);
node3letzte:=chart3.Series[1].count-1;
except
end;
end;
if (node4letzte<chart4.Series[1].count-1)then begin
try
append(Datei);
for i:=node4letzte+1 to chart4.Series[1].count-1 do
writeln(Datei,nodeadressen[4],trennzeichen
,timetostr(chart4.Series[0].XValue[i]),trennzeichen
,Format('%3.2f', [chart4.Series[0].YValue[i]]),trennzeichen
,Format('%3.2f', [chart4.Series[1].YValue[i]]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])/13]),trennzeichen
,Format('%3.2f', [abs(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07]),trennzeichen
,Format('%3.3f', [(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07*(chart4.Series[1].YValue[i]-chart4.Series[0].YValue[i])*0.07/0.35]),trennzeichen
,Format('%3.1f', [chart4.Series[4].YValue[i]]),trennzeichen
,Format('%2.0f', [chart4.Series[5].YValue[i]]),trennzeichen
);
node4letzte:=chart4.Series[1].count-1;
except
end;
end;
try
closefile(datei);
except end;
end;
//clear the diagrams at 00:00 o´clock
if comparedate(oldnow,now)<0 then
begin
oldnow:=now;
button1.Click;
end
else
oldnow:=now;
end;
end.What I want now is when the temperature is been detacted, the counter will count and after a few count, a pop-up screen will appear. |
|
|
|
|
|
#18 |
|
Trying to be a Real Coder
|
Re: Pop-up screen
delphi Syntax (Toggle Plain Text)
__________________
just a drop of dew in the morning if we facilitate other people's business in the world, then our business will be facilitated in the world and the hereafter |
|
|
|
|
|
#19 | |
|
Newbie
Join Date: Jan 2010
Location: Singapore
Posts: 21
Rep Power: 0
![]() |
Re: Pop-up screen
Quote:
// After the temperature is displayed, add the following code : Timer1.Enabled:=true; i:=1; .... |
|
|
|
|
|
|
#20 |
|
Trying to be a Real Coder
|
Re: Pop-up screen
sorry, my english bad.
You can place right below code for display a temperature. malay {mungkin membantu} : letakkan langsung dibawah code untuk menampilkan temperatur kita hanya perlu setting delphi Syntax (Toggle Plain Text)
dengan code diatas, procedure TForm1.Timer1Timer(Sender: TObject); akan dijalankan
__________________
just a drop of dew in the morning if we facilitate other people's business in the world, then our business will be facilitated in the world and the hereafter |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| full screen help, html css | privateD.lister | HTML / XHTML / CSS | 2 | Apr 28th, 2008 4:32 PM |
| Clear screen with Java | Eric the Red | Java | 9 | Feb 22nd, 2006 11:28 PM |
| Getting size of user's screen | elford | Java | 1 | Jan 1st, 2006 5:09 AM |
| Senior Capstone-Spying Screen Saver | Hounder | Project Ideas | 23 | Dec 16th, 2005 8:00 PM |
| Print Screen? | Sane | C++ | 5 | Jul 27th, 2005 2:44 AM |