To 0.1.1.0 Saves/Loads colors and Max/Min values to config file

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5588 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
gbamber
2017-01-02 16:33:59 +00:00
parent ca8c273770
commit a95323c2f9
8 changed files with 123 additions and 84 deletions

View File

@ -20,6 +20,7 @@
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<RevisionNr Value="1"/>
<StringTable Comments="Uses Foobot public API to query Foobot #1" FileDescription="Monitor for Foobot" InternalName="foobotmonitor" LegalCopyright="(c)2016 minesadorada@charcodelvalle.com" LegalTrademarks="Foobot" ProductName="Foobot" ProductVersion="0.0.0.0"/>
</VersionInfo>
<BuildModes Count="6">
@ -116,6 +117,11 @@
</Win32>
</Options>
</Linking>
<Other>
<OtherDefines Count="1">
<Define0 Value="DEBUGMODE"/>
</OtherDefines>
</Other>
</CompilerOptions>
</Item4>
<Item5 Name="linux64">

View File

@ -10,7 +10,7 @@
<IsPartOfProject Value="True"/>
<EditorIndex Value="8"/>
<CursorPos X="33" Y="25"/>
<UsageCount Value="74"/>
<UsageCount Value="79"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
@ -20,9 +20,9 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="37"/>
<CursorPos X="13" Y="374"/>
<UsageCount Value="74"/>
<TopLine Value="312"/>
<CursorPos X="36" Y="329"/>
<UsageCount Value="79"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
@ -34,7 +34,7 @@
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="2"/>
<CursorPos X="2" Y="20"/>
<UsageCount Value="64"/>
<UsageCount Value="69"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
@ -44,7 +44,7 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="56"/>
<UsageCount Value="61"/>
</Unit3>
<Unit4>
<Filename Value="..\foobot_objects.pas"/>
@ -53,7 +53,7 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="56"/>
<UsageCount Value="61"/>
</Unit4>
<Unit5>
<Filename Value="..\foobot_utility.pas"/>
@ -61,7 +61,7 @@
<EditorIndex Value="5"/>
<TopLine Value="34"/>
<CursorPos X="18" Y="83"/>
<UsageCount Value="74"/>
<UsageCount Value="79"/>
<Loaded Value="True"/>
</Unit5>
<Unit6>
@ -71,21 +71,21 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="56"/>
<UsageCount Value="61"/>
</Unit6>
<Unit7>
<Filename Value="..\latest_stable\foobot_httpclient.pas"/>
<EditorIndex Value="3"/>
<TopLine Value="43"/>
<CursorPos X="47" Y="13"/>
<UsageCount Value="54"/>
<UsageCount Value="56"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
<Filename Value="..\latest_stable\foobot_objects.pas"/>
<EditorIndex Value="7"/>
<CursorPos X="32" Y="61"/>
<UsageCount Value="54"/>
<UsageCount Value="56"/>
<Loaded Value="True"/>
</Unit8>
<Unit9>
@ -121,7 +121,7 @@
<EditorIndex Value="4"/>
<TopLine Value="284"/>
<CursorPos X="38" Y="313"/>
<UsageCount Value="34"/>
<UsageCount Value="36"/>
<Loaded Value="True"/>
</Unit13>
<Unit14>
@ -193,14 +193,14 @@
<EditorIndex Value="6"/>
<TopLine Value="381"/>
<CursorPos X="24" Y="409"/>
<UsageCount Value="23"/>
<UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit23>
<Unit24>
<Filename Value="..\latest_stable\udataform.pas"/>
<EditorIndex Value="1"/>
<TopLine Value="70"/>
<UsageCount Value="23"/>
<UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit24>
</Units>
@ -210,123 +210,123 @@
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="umainform.pas"/>
<Caret Line="300" Column="57" TopLine="295"/>
<Caret Line="304" Column="57" TopLine="299"/>
</Position1>
<Position2>
<Filename Value="umainform.pas"/>
<Caret Line="301" Column="57" TopLine="296"/>
<Caret Line="508" Column="30" TopLine="472"/>
</Position2>
<Position3>
<Filename Value="umainform.pas"/>
<Caret Line="302" Column="57" TopLine="297"/>
<Caret Line="515" Column="30" TopLine="479"/>
</Position3>
<Position4>
<Filename Value="umainform.pas"/>
<Caret Line="303" Column="57" TopLine="298"/>
<Caret Line="287" Column="66" TopLine="243"/>
</Position4>
<Position5>
<Filename Value="umainform.pas"/>
<Caret Line="304" Column="57" TopLine="299"/>
<Caret Line="529" Column="32" TopLine="487"/>
</Position5>
<Position6>
<Filename Value="umainform.pas"/>
<Caret Line="508" Column="30" TopLine="472"/>
<Caret Line="532" Column="27" TopLine="489"/>
</Position6>
<Position7>
<Filename Value="umainform.pas"/>
<Caret Line="515" Column="30" TopLine="479"/>
<Caret Line="535" Column="25" TopLine="494"/>
</Position7>
<Position8>
<Filename Value="umainform.pas"/>
<Caret Line="287" Column="66" TopLine="243"/>
<Caret Line="531" Column="26" TopLine="494"/>
</Position8>
<Position9>
<Filename Value="umainform.pas"/>
<Caret Line="529" Column="32" TopLine="487"/>
<Caret Line="530" Column="5" TopLine="495"/>
</Position9>
<Position10>
<Filename Value="umainform.pas"/>
<Caret Line="532" Column="27" TopLine="489"/>
<Caret Line="529" Column="5" TopLine="494"/>
</Position10>
<Position11>
<Filename Value="umainform.pas"/>
<Caret Line="535" Column="25" TopLine="494"/>
<Caret Line="509" Column="22" TopLine="488"/>
</Position11>
<Position12>
<Filename Value="umainform.pas"/>
<Caret Line="531" Column="26" TopLine="494"/>
<Caret Line="530" Column="25" TopLine="490"/>
</Position12>
<Position13>
<Filename Value="umainform.pas"/>
<Caret Line="530" Column="5" TopLine="495"/>
<Filename Value="..\foobot_utility.pas"/>
<Caret Line="243" Column="47" TopLine="218"/>
</Position13>
<Position14>
<Filename Value="umainform.pas"/>
<Caret Line="529" Column="5" TopLine="494"/>
<Caret Line="527" Column="68" TopLine="486"/>
</Position14>
<Position15>
<Filename Value="umainform.pas"/>
<Caret Line="509" Column="22" TopLine="488"/>
<Caret Line="523" Column="17" TopLine="488"/>
</Position15>
<Position16>
<Filename Value="umainform.pas"/>
<Caret Line="530" Column="25" TopLine="490"/>
<Caret Line="245" TopLine="243"/>
</Position16>
<Position17>
<Filename Value="..\foobot_utility.pas"/>
<Caret Line="243" Column="47" TopLine="218"/>
<Filename Value="umainform.pas"/>
<Caret Line="244" TopLine="242"/>
</Position17>
<Position18>
<Filename Value="umainform.pas"/>
<Caret Line="527" Column="68" TopLine="486"/>
<Caret Line="264" Column="31" TopLine="242"/>
</Position18>
<Position19>
<Filename Value="umainform.pas"/>
<Caret Line="523" Column="17" TopLine="488"/>
<Caret Line="532" Column="43" TopLine="497"/>
</Position19>
<Position20>
<Filename Value="umainform.pas"/>
<Caret Line="245" TopLine="243"/>
<Caret Line="188" Column="16" TopLine="176"/>
</Position20>
<Position21>
<Filename Value="umainform.pas"/>
<Caret Line="244" TopLine="242"/>
<Caret Line="572" Column="44" TopLine="551"/>
</Position21>
<Position22>
<Filename Value="umainform.pas"/>
<Caret Line="264" Column="31" TopLine="242"/>
<Caret Line="613" Column="58" TopLine="591"/>
</Position22>
<Position23>
<Filename Value="umainform.pas"/>
<Caret Line="532" Column="43" TopLine="497"/>
<Caret Line="620" Column="58" TopLine="598"/>
</Position23>
<Position24>
<Filename Value="umainform.pas"/>
<Caret Line="188" Column="16" TopLine="176"/>
<Caret Line="374" Column="71" TopLine="344"/>
</Position24>
<Position25>
<Filename Value="umainform.pas"/>
<Caret Line="572" Column="44" TopLine="551"/>
<Caret Line="373" Column="11" TopLine="351"/>
</Position25>
<Position26>
<Filename Value="umainform.pas"/>
<Caret Line="613" Column="58" TopLine="591"/>
<Caret Line="292" Column="24" TopLine="248"/>
</Position26>
<Position27>
<Filename Value="umainform.pas"/>
<Caret Line="620" Column="58" TopLine="598"/>
<Caret Line="286" Column="21" TopLine="283"/>
</Position27>
<Position28>
<Filename Value="umainform.pas"/>
<Caret Line="170" Column="70" TopLine="462"/>
<Caret Line="58" Column="29" TopLine="35"/>
</Position28>
<Position29>
<Filename Value="umainform.pas"/>
<Caret Line="374" Column="71" TopLine="344"/>
<Caret Line="211" TopLine="314"/>
</Position29>
<Position30>
<Filename Value="umainform.pas"/>
<Caret Line="373" Column="11" TopLine="351"/>
<Caret Line="347" Column="40" TopLine="311"/>
</Position30>
</JumpHistory>
</ProjectSession>

View File

@ -9,7 +9,7 @@
[Setup]
AppName=Foobot Monitor
AppVersion=0.1.0.0
AppVersion=0.1.1.0
DefaultDirName={pf}\foobotmonitor
DefaultGroupName=Foobot
UninstallDisplayIcon={app}\foobotmonitor.exe

View File

@ -11,6 +11,7 @@ object mainform: Tmainform
DefaultMonitor = dmDesktop
Menu = MainMenu1
OnActivate = FormActivate
OnClose = FormClose
OnCreate = FormCreate
OnDestroy = FormDestroy
OnWindowStateChange = FormWindowStateChange

View File

@ -50,12 +50,12 @@ const
TWENTYFOURHOURS = ONEHOUR * 24;
// Colours for guages and graph lines
COL_PM = clGreen;
COL_TMP = clRed;
COL_HUM = clMaroon;
COL_CO2 = clLime;
COL_VOC = clBlue;
COL_ALLPOLLU = clFuchsia;
COL_PM = 'clGreen';
COL_TMP = 'clRed';
COL_HUM = 'clMaroon';
COL_CO2 = 'clLime';
COL_VOC = 'clBlue';
COL_ALLPOLLU = 'clFuchsia';
// Sensor Gauge MINMAX Values
MIN_PM = 0;
@ -137,6 +137,7 @@ type
tmr_foobot: TTimer;
TrayIcon1: TTrayIcon;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormWindowStateChange(Sender: TObject);
@ -160,13 +161,13 @@ type
sSecretKey, sFoobotUserName, sUUID: string;
bShowMinimalDisplay: boolean;
iFudgeFactor: integer;
procedure SetUpSensorColours;
procedure SetUpSensorMinMax;
procedure DisplayReadings;
procedure UpdateGuage(Sender: TAnalogSensor; SensorNumber: integer);
procedure UpdateHighLow(SensorNumber: integer);
procedure GraphHistory;
procedure GraphCurrentReading;
procedure SaveConfig;
procedure LoadConfig;
public
INI: TCryptINIfile;
end;
@ -204,8 +205,7 @@ begin
TrayIcon1.Icon := Application.Icon;
TrayIcon1.Hint := Application.Title;
DateTimeIntervalChartSource1.DateTimeFormat := 'hh:nn';
SetUpSensorMinMax;
SetUpSensorColours;
LoadConfig;
end;
procedure Tmainform.FormActivate(Sender: TObject);
@ -277,41 +277,73 @@ begin
end;
end;
procedure Tmainform.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
SaveConfig;
CloseAction:=caFree;
end;
procedure Tmainform.FormDestroy(Sender: TObject);
begin
FreeAndNil(INI);
end;
procedure Tmainform.SetUpSensorColours;
procedure Tmainform.SaveConfig;
begin
as_pm.ColorFore := COL_PM;
lineSeries_pm.SeriesColor := COL_PM;
as_tmp.ColorFore := COL_TMP;
lineSeries_tmp.SeriesColor := COL_TMP;
as_hum.ColorFore := COL_HUM;
lineSeries_hum.SeriesColor := COL_HUM;
as_co2.ColorFore := COL_CO2;
lineSeries_co2.SeriesColor := COL_CO2;
as_voc.ColorFore := COL_VOC;
lineSeries_voc.SeriesColor := COL_VOC;
as_allpollu.ColorFore := COL_ALLPOLLU;
lineSeries_allpollu.SeriesColor := COL_ALLPOLLU;
INI.PlainTextMode:=TRUE;
// Colours
INI.WriteString('Config','pmColour',ColorToString(as_pm.ColorFore));
INI.WriteString('Config','tmpColour',ColorToString(as_tmp.ColorFore));
INI.WriteString('Config','humColour',ColorToString(as_hum.ColorFore));
INI.WriteString('Config','co2Colour',ColorToString(as_co2.ColorFore));
INI.WriteString('Config','vocColour',ColorToString(as_voc.ColorFore));
INI.WriteString('Config','allpolluColour',ColorToString(as_allpollu.ColorFore));
// Max and Min
INI.WriteFloat('Config','pmMinValue',as_pm.ValueMin);
INI.WriteFloat('Config','pmMaxValue',as_pm.ValueMax);
INI.WriteFloat('Config','tmpMinValue',as_tmp.ValueMin);
INI.WriteFloat('Config','tmpMaxValue',as_tmp.ValueMax);
INI.WriteFloat('Config','humMinValue',as_hum.ValueMin);
INI.WriteFloat('Config','humMaxValue',as_hum.ValueMax);
INI.WriteFloat('Config','co2MinValue',as_co2.ValueMin);
INI.WriteFloat('Config','co2MaxValue',as_co2.ValueMax);
INI.WriteFloat('Config','vocMinValue',as_voc.ValueMin);
INI.WriteFloat('Config','vocMaxValue',as_voc.ValueMax);
INI.WriteFloat('Config','allpolluMinValue',as_allpollu.ValueMin);
INI.WriteFloat('Config','allpolluMaxValue',as_allpollu.ValueMax);
INI.PlainTextMode:=FALSE;
end;
procedure Tmainform.SetUpSensorMinMax;
procedure Tmainform.LoadConfig;
begin
as_pm.ValueMin := MIN_PM;
as_pm.ValueMax := MAX_PM;
as_tmp.ValueMin := MIN_TMP;
as_tmp.ValueMax := MAX_TMP;
as_hum.ValueMin := MIN_HUM;
as_hum.ValueMax := MAX_HUM;
as_co2.ValueMin := MIN_CO2;
as_co2.ValueMax := MAX_CO2;
as_voc.ValueMin := MIN_VOC;
as_voc.ValueMax := MAX_VOC;
as_allpollu.ValueMin := MIN_ALLPOLLU;
as_allpollu.ValueMax := MAX_ALLPOLLU;
INI.PlainTextMode:=TRUE;
// Colours
as_pm.ColorFore:=StringToColor(INI.ReadString('Config','pmColour',COL_PM));
as_tmp.ColorFore:=StringToColor(INI.ReadString('Config','tmpColour',COL_TMP));
as_hum.ColorFore:=StringToColor(INI.ReadString('Config','humColour',COL_HUM));
as_co2.ColorFore:=StringToColor(INI.ReadString('Config','co2Colour',COL_CO2));
as_voc.ColorFore:=StringToColor(INI.ReadString('Config','vocColour',COL_VOC));
as_allpollu.ColorFore:=StringToColor(INI.ReadString('Config','allpolluColour',COL_ALLPOLLU));
lineSeries_pm.SeriesColor := as_pm.ColorFore;
lineSeries_tmp.SeriesColor := as_tmp.ColorFore;
lineSeries_hum.SeriesColor := as_hum.ColorFore;
lineSeries_co2.SeriesColor := as_co2.ColorFore;
lineSeries_voc.SeriesColor := as_voc.ColorFore;
lineSeries_allpollu.SeriesColor := as_allpollu.ColorFore;
// Max and Min
as_pm.ValueMin := INI.ReadFloat('Config','pmMinValue',MIN_PM);
as_pm.ValueMax := INI.ReadFloat('Config','pmMaxValue',MAX_PM);
as_tmp.ValueMin := INI.ReadFloat('Config','tmpMinValue',MIN_TMP);
as_tmp.ValueMax := INI.ReadFloat('Config','tmpMaxValue',MAX_TMP);
as_hum.ValueMin := INI.ReadFloat('Config','humMinValue',MIN_HUM);
as_hum.ValueMax := INI.ReadFloat('Config','humMaxValue',MAX_HUM);
as_co2.ValueMin := INI.ReadFloat('Config','co2MinValue',MIN_CO2);
as_co2.ValueMax := INI.ReadFloat('Config','co2MaxValue',MAX_CO2);
as_voc.ValueMin := INI.ReadFloat('Config','vocMinValue',MIN_VOC);
as_voc.ValueMax := INI.ReadFloat('Config','vocMaxValue',MAX_VOC);
as_allpollu.ValueMin := INI.ReadFloat('Config','allpolluMinValue',MIN_ALLPOLLU);
as_allpollu.ValueMax := INI.ReadFloat('Config','allpolluMaxValue',MAX_ALLPOLLU);
INI.PlainTextMode:=FALSE;
end;
procedure Tmainform.FormWindowStateChange(Sender: TObject);