From 483ebbc46e0c187c5e123d73470e25c637d31bc2 Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Fri, 25 Sep 2015 13:56:01 +0200 Subject: [PATCH 1/7] Fixed some errors in ErgometerApplication --- .../ErgometerApplication/Ergometer.Designer.cs | 4 +--- .../ErgometerApplication/Ergometer.cs | 12 ++++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs index 0c2343a..f1dc963 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs +++ b/ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs @@ -73,9 +73,7 @@ namespace ErgometerApplication // ComPortBox // this.ComPortBox.FormattingEnabled = true; - this.ComPortBox.Items.AddRange(new object[] { - "COM8", - "COM9"}); + this.ComPortBox.Items.AddRange(SerialPort.GetPortNames()); this.ComPortBox.Location = new System.Drawing.Point(12, 290); this.ComPortBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.ComPortBox.Name = "ComPortBox"; diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.cs index 40abad6..1522e33 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.cs +++ b/ErgometerApplication/ErgometerApplication/Ergometer.cs @@ -13,6 +13,7 @@ using Newtonsoft.Json; using System.IO; using ErgometerLibrary; using System.Net.Sockets; +using System.Net; namespace ErgometerApplication { @@ -24,6 +25,7 @@ namespace ErgometerApplication int sessionID; NetCommand command; List readFile = new List(); + System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient(); public Ergometer() { InitializeComponent(); @@ -61,7 +63,7 @@ namespace ErgometerApplication Meting m = Meting.Parse(response); SaveData(m); - richTextBox1.Text = m.ToString(); + // richTextBox1.Text = m.ToString(); } } else @@ -85,6 +87,12 @@ namespace ErgometerApplication } } + IPAddress ipAddress; //= IPAddress.Parse("127.0.0.1"); + + bool ipIsOk = IPAddress.TryParse("127.0.0.1", out ipAddress); //GetIp() + if (!ipIsOk) { Console.WriteLine("ip adres kan niet geparsed worden."); Environment.Exit(1); } + client.Connect("127.0.0.1", 8888); + WriteServer("5»ses?"); sessionID = int.Parse(ReadServer()); } @@ -257,7 +265,7 @@ namespace ErgometerApplication readFile = null; } } - System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient(); + private String ReadServer() { From 60b80fba154e7aeda332ca8f431a94d017d14201 Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Sun, 27 Sep 2015 15:27:30 +0200 Subject: [PATCH 2/7] Added missing .gitignore file. --- .gitignore | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b06e864 --- /dev/null +++ b/.gitignore @@ -0,0 +1,212 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +## TODO: Comment the next line if you want to checkin your +## web deploy settings but do note that will include unencrypted +## passwords +#*.pubxml + +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml From 9ea907ab99126f22bfd41b344c5c6ab33c6886e6 Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Mon, 28 Sep 2015 10:09:00 +0200 Subject: [PATCH 3/7] Changed server setup --- .../ErgometerApplication/Ergometer.cs | 72 ++++++++++++------- .../ServerCommunicator.cs | 20 ++++++ 2 files changed, 66 insertions(+), 26 deletions(-) create mode 100644 ErgometerApplication/ErgometerApplication/ServerCommunicator.cs diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.cs index 1522e33..7e5efc6 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.cs +++ b/ErgometerApplication/ErgometerApplication/Ergometer.cs @@ -14,6 +14,9 @@ using System.IO; using ErgometerLibrary; using System.Net.Sockets; using System.Net; +using System.Timers; +using ErgometerLibrary; +using Timer = System.Timers.Timer; namespace ErgometerApplication { @@ -22,15 +25,15 @@ namespace ErgometerApplication private ComPort comPort; private List _data; private int i = 0; - int sessionID; NetCommand command; + private ServerCommunicator communicator = new ServerCommunicator(); List readFile = new List(); - System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient(); public Ergometer() { InitializeComponent(); comPort = new ComPort(); _data = new List(); + communicator.data = _data; } private void connectButton_Click(object sender, EventArgs e) @@ -91,9 +94,12 @@ namespace ErgometerApplication bool ipIsOk = IPAddress.TryParse("127.0.0.1", out ipAddress); //GetIp() if (!ipIsOk) { Console.WriteLine("ip adres kan niet geparsed worden."); Environment.Exit(1); } - client.Connect("127.0.0.1", 8888); - WriteServer("5»ses?"); - sessionID = int.Parse(ReadServer()); + communicator.client = new TcpClient(); + communicator.client.Connect("127.0.0.1", 8888); + communicator.reader = new StreamReader(communicator.client.GetStream(), Encoding.Unicode); + communicator.writer = new StreamWriter(communicator.client.GetStream(), Encoding.Unicode); + Thread thread = new Thread(ServerCommunication); + thread.Start(communicator); } private void statusButton_Click(object sender, EventArgs e) @@ -103,12 +109,43 @@ namespace ErgometerApplication Console.WriteLine(response); Meting m = Meting.Parse(response); SaveData(m); - command = new NetCommand(m, sessionID); - WriteServer(command.ToString()); + command = new NetCommand(m, communicator.sessionId); + communicator.writer.WriteLine(command.ToString()); richTextBox1.Text = m.ToString(); WriteFile(); } + static void WriteCommand(object obj, ElapsedEventArgs e) + { + ServerCommunicator communicator = obj as ServerCommunicator; + NetCommand command = new NetCommand(communicator.data[0], 1); + communicator.writer.WriteLine(command.ToString()); + } + + static void ServerCommunication(object obj) + { + TcpClient client = obj as TcpClient; + StreamReader reader = new StreamReader(client.GetStream(), Encoding.Unicode); + StreamWriter writer = new StreamWriter(client.GetStream(), Encoding.Unicode); + Timer dataTimer = new Timer(1000/2); + dataTimer.Elapsed += WriteCommand; + int sessionId = 0; + writer.WriteLine("5»ses?"); + writer.Flush(); + string session = reader.ReadLine(); + if (session != null) + { + session.Remove(0, 5); + sessionId = int.Parse(session); + } + NetCommand command = new NetCommand("name", false, sessionId); + writer.WriteLine(command.ToString()); + writer.Flush(); + reader.ReadLine(); + dataTimer.Start(); + + } + private void resetButton_Click(object sender, EventArgs e) { comPort.Write("RS"); @@ -127,8 +164,8 @@ namespace ErgometerApplication Console.WriteLine(response); Meting m = Meting.Parse(response); SaveData(m); - command = new NetCommand(m, sessionID); - WriteServer(command.ToString()); + command = new NetCommand(m, communicator.sessionId); + communicator.writer.WriteLine(command.ToString()); richTextBox1.Text = m.ToString(); } } @@ -191,8 +228,6 @@ namespace ErgometerApplication } } - - private void readButton_Click(object sender, EventArgs e) { ReadFile(); @@ -265,20 +300,5 @@ namespace ErgometerApplication readFile = null; } } - - private String ReadServer() - { - - StreamReader reader = new StreamReader(client.GetStream(), Encoding.ASCII); - String b = reader.ReadLine(); - return b; - } - private void WriteServer(String Send) - { - - StreamWriter stream = new StreamWriter(client.GetStream(), Encoding.ASCII); - stream.WriteLine(Send); - - } } } \ No newline at end of file diff --git a/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs b/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs new file mode 100644 index 0000000..d8428fc --- /dev/null +++ b/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; +using ErgometerLibrary; + +namespace ErgometerApplication +{ + class ServerCommunicator + { + public TcpClient client { get; set; } + public StreamWriter writer { get; set; } + public StreamReader reader { get; set; } + public int sessionId { get; set; } + public List data { get; set; } + } +} From 260723039536e50888e419ad22679eb17a2c10f1 Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Mon, 28 Sep 2015 10:38:43 +0200 Subject: [PATCH 4/7] Another commit with bugfixes. --- .../ErgometerApplication/Ergometer.cs | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.cs index 7e5efc6..b3b0c3e 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.cs +++ b/ErgometerApplication/ErgometerApplication/Ergometer.cs @@ -124,26 +124,25 @@ namespace ErgometerApplication static void ServerCommunication(object obj) { - TcpClient client = obj as TcpClient; - StreamReader reader = new StreamReader(client.GetStream(), Encoding.Unicode); - StreamWriter writer = new StreamWriter(client.GetStream(), Encoding.Unicode); + ServerCommunicator communicator = obj as ServerCommunicator; + communicator.reader = new StreamReader(communicator.client.GetStream(), Encoding.Unicode); + communicator.writer = new StreamWriter(communicator.client.GetStream(), Encoding.Unicode); Timer dataTimer = new Timer(1000/2); dataTimer.Elapsed += WriteCommand; int sessionId = 0; - writer.WriteLine("5»ses?"); - writer.Flush(); - string session = reader.ReadLine(); + communicator.writer.WriteLine("5»ses?"); + communicator.writer.Flush(); + string session = communicator.reader.ReadLine(); if (session != null) { - session.Remove(0, 5); + session = session.Remove(0, 5); sessionId = int.Parse(session); } NetCommand command = new NetCommand("name", false, sessionId); - writer.WriteLine(command.ToString()); - writer.Flush(); - reader.ReadLine(); + communicator.writer.WriteLine(command.ToString()); + communicator.writer.Flush(); + communicator.reader.ReadLine(); dataTimer.Start(); - } private void resetButton_Click(object sender, EventArgs e) From 5ee3b5236e52915b8497b8d779f0c8b69a9226b5 Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Mon, 28 Sep 2015 12:58:02 +0200 Subject: [PATCH 5/7] Shit is hopelijk gefixt nu --- .../ErgometerApplication/Ergometer.cs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.cs index b3b0c3e..6419a7b 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.cs +++ b/ErgometerApplication/ErgometerApplication/Ergometer.cs @@ -115,20 +115,11 @@ namespace ErgometerApplication WriteFile(); } - static void WriteCommand(object obj, ElapsedEventArgs e) - { - ServerCommunicator communicator = obj as ServerCommunicator; - NetCommand command = new NetCommand(communicator.data[0], 1); - communicator.writer.WriteLine(command.ToString()); - } - static void ServerCommunication(object obj) { ServerCommunicator communicator = obj as ServerCommunicator; communicator.reader = new StreamReader(communicator.client.GetStream(), Encoding.Unicode); communicator.writer = new StreamWriter(communicator.client.GetStream(), Encoding.Unicode); - Timer dataTimer = new Timer(1000/2); - dataTimer.Elapsed += WriteCommand; int sessionId = 0; communicator.writer.WriteLine("5»ses?"); communicator.writer.Flush(); @@ -137,12 +128,12 @@ namespace ErgometerApplication { session = session.Remove(0, 5); sessionId = int.Parse(session); + communicator.sessionId = sessionId; } NetCommand command = new NetCommand("name", false, sessionId); communicator.writer.WriteLine(command.ToString()); communicator.writer.Flush(); communicator.reader.ReadLine(); - dataTimer.Start(); } private void resetButton_Click(object sender, EventArgs e) @@ -163,9 +154,12 @@ namespace ErgometerApplication Console.WriteLine(response); Meting m = Meting.Parse(response); SaveData(m); + communicator.data.Add(m); command = new NetCommand(m, communicator.sessionId); communicator.writer.WriteLine(command.ToString()); richTextBox1.Text = m.ToString(); + command = new NetCommand(communicator.data[0], communicator.sessionId); + communicator.writer.WriteLine(command.ToString()); } } From b7e957f9a326efca5a8f53da990c78c9a56d4a3f Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Mon, 28 Sep 2015 18:51:52 +0200 Subject: [PATCH 6/7] And another commit with bugfixes... --- ErgometerApplication/ErgometerApplication/Ergometer.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.cs index 6419a7b..ce10b12 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.cs +++ b/ErgometerApplication/ErgometerApplication/Ergometer.cs @@ -107,8 +107,10 @@ namespace ErgometerApplication comPort.Write("ST"); string response = comPort.Read(); Console.WriteLine(response); - Meting m = Meting.Parse(response); + Meting m = Meting.Parse(response, '\t'); + Console.WriteLine(m); SaveData(m); + communicator.data.Add(m); command = new NetCommand(m, communicator.sessionId); communicator.writer.WriteLine(command.ToString()); richTextBox1.Text = m.ToString(); @@ -160,6 +162,7 @@ namespace ErgometerApplication richTextBox1.Text = m.ToString(); command = new NetCommand(communicator.data[0], communicator.sessionId); communicator.writer.WriteLine(command.ToString()); + communicator.writer.Flush(); } } From 795315507c02bfb91833dd7eabd343eb319b9e9a Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Wed, 30 Sep 2015 12:58:15 +0200 Subject: [PATCH 7/7] Bugfix --- .../.vs/ErgometerApplication/v14/.suo | Bin 71168 -> 75776 bytes .../ErgometerApplication/Ergometer.resx | 6 ++++++ .../ErgometerApplication.csproj | 1 + 3 files changed, 7 insertions(+) diff --git a/ErgometerApplication/.vs/ErgometerApplication/v14/.suo b/ErgometerApplication/.vs/ErgometerApplication/v14/.suo index 65dfc853f0a95173ce52309b9c391b7e5751ec6c..c31ed2372318cb3318eae7ff184f079eb02d295a 100644 GIT binary patch delta 4883 zcmd5=eRPx68Gmp3CZv$ivTHW^ zKsL`H@p~q=)jxqHpPLBIyj4we2h3@yHNiA*hWAl&Q zH^28j_qosgc%J**d!IMKC*)wSyv>rOl48jqN%%<#z?HtfKISq#Wnb0jLdcY*nml&* z`;*S;F7=A3;0KpcyQW<%p$n?}RI-}d6DqZ67EL4;PSt+`p+FK|NLmtdTBixrB)|y7 zMLExkl`n%H4|*KHQ}{9Rlo%}|XIXVD&xqw6$R`4Nzzie;lL40HG#B)A;5rt`iB;qx zr^mEY$Js&50%ikq03LN-ca>3Jib5IS06g7Qsd_JnQNTi=s=I13xfAVT6}2U1CpLh^ zL#20DEinBkR$xXa=uLp4s)!lTvcmF>4LEMF0l7O)Y)B)eYjvFq&@oSULTtde5!ry* zF&-N*+6*rZXg1ntU`&j^1vwiq6&MQ)HXtts_dm#hgY75&8w2Vv#@857W&_fh#BGKG z0p|m4 z0`mbE;0CyF5Ap?oH&$LGB#pEfg$jCT>|Yd}m%QnDSlCuwCAl)@DS8*V60BrV$;v|Q zo}ga*->Z<~*72Uq1fXvpZ(9naEY(Z#T{gfypK^mP8DhL)2ABb3mom|-%^SoM7pQeg zr#Md+@cx)u(>gV0P`zIYUovV`N_ya0_M)IZs2Hb+IXGx0kz;~goeN99Oczsf#H<)k z))k^J-mCE`sLLVrSyX6tR48K9Y6s6zy$}Ll(2?zn>E(GP%C}dTw?%xkJ%LUk>Z#RS zsTXm6yiQ#M!4O?EcZgf5bwXz%&q7JWi!P`BFy3nL$;8$k+Un+kR-?%WB8_r}HIUJOg{&9mizBk*+`jiG;0)S2miC4xc(5zhF-OUB))2F;e`L z`lkAM3ywdLBjH*xaf?4c=Xf!=>*1uEoo}!0NtvYX-*wY=%Dm2Gm~NKYO5wceL6LV7 ztbYTifYSiioJD>vMsqn1I(FTR{Zm~+FNPY60@J#bOt&t2oulP|l7aSKT^1N=S244? zzS<(m zXM=hgxOQsGU996e4glgZYPP0K7js|bQ(svqkK$gC!hKGmQVL$u3vSHfoY*kJMi&Zj zc5s=gog%ow)KIU#71!%H4d z^)wD*mcdE<(%sQ_+*MlPDh+UyI=D|W-S51f#usIZCB(m51nE-+R=)%9reF$bkoRnr4L zbGWf`M*^+7tC1eJ%pk>5Fp8sY?)FcXA~nuGX~z)NvrM?Ftr7aiO^awlt(F`O+VCwa z_9iJd2W_&gqL3|vHrE=+@Q#L#+H&=LYcep*YvQxm1#uO#)o z#14^0TMG+yqo5S)i?Ibo-pd^=OEb#h6|1G@P((xBwybcL^14VqD(a6 z5?U+kQ1+wLf1@~*7w9zUCcQXRa){I(KG~#U{SA?NfqEWUPAm4BY1gAumAx}kDkT3a zi<~(-8y7$Jx7{17uRQlSP2F2CVK|#LN1}a?mW3nl7pv5K<9AT^`s>2e*S{?mI3=6p zk;?HkV#nJmQsrM~x}Fj4Vhf%Qr_ED7$6jvDpFhW5m~XYZ zE&0xJt25tXaavqO7LUi{D!g|?$&!YadQZbzUrXr*S8>hq7N5T*baV>YE}O!p(mbK5 zsg4e@_2abciiTDGI)7VDxqo$YlP}=&#~GErfUCKwsczk!bm-tr@d>7OL+FxB8&8;r z&rq|$)9i0LJ!JYaQ zyUhq5O()N#B?X3SV$QtP?Q3aRz3#T*YVK0GM{=-=*T*C^4C|?C!VUiB)&9CBtkMXz zqhhtx_gb|v8589o1lutBmkKiapx20Kf&+?ETWHf$ax&| zHnW=lWZB*0l*Ql}eB;Vm4v*>Gx3u)5&rNDRx6iQ9I|w992Ttk5o2nfqVHcPBnTX`k z&#>tB$o8l6Fr_-64X5a}Rq6kTIW}|}_!K}qJy96K;=)-${x3{}jKh_f3~q@e+IQ&> p2Lf7AAU_&0Af|X`{tB>VI`V01^1z1$Cg6s}jtz-P(M@Qf_z!ZrF{l6l delta 2803 zcmb`JYiyHM7{}l9wjJ&EcI&o+9V@VI4ITSWtLPhzZehiCOpngAk)JDk2fNs;~(|q5hw)og*6jfG7F&ob#Of zdH&CN>u=ZkTeZ6#^zlxE#Ux36BuUbMhtX&hnIu5t;mSXR$S0dTDAhf_^lanZc2Nqu zvy>X-QpJv<7GOk_&Slw!jXLEmvQI+|nsR+^uNLDCRK_XzK{AohW*df~!~-(}mD$GW z@d_JW3smN%uj^%Cqajc^NXKhE4Af2am7p*YxPT5k1D*rZ0Qa7X{8=y=%m8&@5|{$G zozFM{<>$c*pd3^HH>d{Ohtn*S=fvxCkaJnI-MD)qnvykI@Z0UN+Z&;VWs4>0fz)@0uZepi2 zh~e--Ih`ylNLmJCz81bHRruy}0I$!U>iY{S34gGWlLEhFl2xzxGSJ!&^aW0k0*rur zr6NxPD?l1Z2WDUaGXdXgHW&m30=|w#$XN~sz$dXI9}WhCAz&yN0eF7&7g1`_+HE{? zEUe?ecu)+U0zKXjRA$=rFz~QMVt0?}Wvhgm$fX-Y2X!Xet}`2Q;*FaEmDP05u-(MV zFo{IFlg)>h)QF%mliCXNg^s*RxlwR4Uo+=?h18)`(8(DEYyzhQd4MOx zL>4MeX$!2~9n4kqS`3bv&ABZWN4%0)oVOfnypa12EuUbqaD}gpm6Yfd>(HE6?BD_` zh4bD@X@rf{!b;f$e83NaCYQp?v)?eJd;cC2_Fq^)9VWNJK~(TaWBQJ;SvL1x`G4EL zE9O~NH&6esd!`53uZbn(wL-~qfvygH4^o%4QPhxkfG>$v5j4>K^m08*FL5Msi@X`t zdRAnQ=_Yl;#Nz8Q-5_tKPvNy;jisRCd7PWOoj(9w<8ut74Mw*S$_LSmJEp)GeO^H@O;od_L+ZbSwP!_U}E)Q?w(P;Zk_OBZs_>L;A!u zoXaP!@==oiK8pHq^bA4M9SdpS$W>altEQ^mg7%G8dUVcKhK^Oc=(gReT8CX0L8nK@ ztEbXNXPLtB%ija^ifvZMn|q$RoTrU~=?0w z-Yy-BXiKA0S(B*nfmt>GlrPACrIjB3Xb$g{!_(ve+@I4HjBNs2!8Y(F$U9v5kqE3E z6Mj#ojIT#gq$N4z?&bReNr2>-FZBkJik0=q|v_G zX7#f*>t%8ry&XO!Q)HJ@b+$z`6nPhg^AT|%^1dAQ=#Mz2C-hLuuK+uXoym6;lObLK zqu}u8_rAx_nUCQlP&%wCd(9#x88b>1!+Z0xcpH_Oq$XiwXjH%8r>!2a8okN zt_<}jlU-~!I&QbAwlB_z^cEbF&&fo@VyWc6#1yK{7JgQqG5Fnaae@B)_PAI}B0rN} zIWybrkod9YyBLX2&{%x^3ng-XKZj18vCyb<8EWLLU(lk}E7g@Pdo<+y;djFfX`Qr8 zdPQ1IQ!hp3yCQtZM2EX7sP;}Da^K!hj?0}i1)7Z{QJ`xeHAhp`RaY*EaGRE%xniMt zSJP3x~NhE*FKVu+=>XYMV;aE@{wPih=`m1 zkTXpb8COj&shM5BbX|Q-echVym$|ylIL3DT-_pH>!tm~J$PeGwlJmC%{d9a^@st%W zyY5oK<C&Qc6Gk~4MPm!`$IwjvQZ0?_(9^3|a`f}gCdXz7 zZB7!!6zLd7;%7^+(@CF{6dx^?MVm%-c1C2ncz+LF?Ch_8eBZ6vV-Y1sOJt$dgeGN) z6CXx01RgAVf7(0TO!@W 147, 19 + + 276, 19 + + + 377, 19 + \ No newline at end of file diff --git a/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj b/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj index 59cc704..fbd48ff 100644 --- a/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj +++ b/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj @@ -53,6 +53,7 @@ + Form