Added login, connecting and showing data
This commit is contained in:
Binary file not shown.
@@ -43,13 +43,13 @@ namespace ErgometerApplication
|
|||||||
this.labelUsername = new System.Windows.Forms.Label();
|
this.labelUsername = new System.Windows.Forms.Label();
|
||||||
this.labelHallo = new System.Windows.Forms.Label();
|
this.labelHallo = new System.Windows.Forms.Label();
|
||||||
|
|
||||||
this.heartBeat = new PanelClientData("Hartslag");
|
this.heartBeat = new PanelClientData("Hartslag", 0, 250);
|
||||||
this.RPM = new PanelClientData("RPM");
|
this.RPM = new PanelClientData("RPM", 0, 100);
|
||||||
this.speed = new PanelClientData("Snelheid");
|
this.speed = new PanelClientData("Snelheid", 0, 500);
|
||||||
this.distance = new PanelClientData("Afstand (km)");
|
this.distance = new PanelClientData("Afstand (km)", 0, 1000);
|
||||||
this.power = new PanelClientData("Weerstand");
|
this.power = new PanelClientData("Weerstand", 25, 400);
|
||||||
this.energy = new PanelClientData("Energie");
|
this.energy = new PanelClientData("Energie", 0, 200);
|
||||||
this.actualpower = new PanelClientData("Absolute Weerstand");
|
this.actualpower = new PanelClientData("Absolute Weerstand", 0, 400);
|
||||||
|
|
||||||
this.panelClientContainer.SuspendLayout();
|
this.panelClientContainer.SuspendLayout();
|
||||||
this.panelTopBar.SuspendLayout();
|
this.panelTopBar.SuspendLayout();
|
||||||
|
|||||||
@@ -27,11 +27,21 @@ namespace ErgometerApplication
|
|||||||
|
|
||||||
private void updateTimer_Tick(object sender, EventArgs e)
|
private void updateTimer_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("Trying to send data....");
|
||||||
if(MainClient.Doctor.Connected)
|
if(MainClient.Doctor.Connected)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("Sending data");
|
||||||
MainClient.ComPort.Write("ST");
|
MainClient.ComPort.Write("ST");
|
||||||
string response = MainClient.ComPort.Read();
|
string response = MainClient.ComPort.Read();
|
||||||
MainClient.SaveMeting(response);
|
Meting m = MainClient.SaveMeting(response);
|
||||||
|
|
||||||
|
heartBeat.updateValue(m.HeartBeat);
|
||||||
|
RPM.updateValue(m.RPM);
|
||||||
|
speed.updateValue(m.Speed);
|
||||||
|
distance.updateValue(m.Distance);
|
||||||
|
power.updateValue(m.Power);
|
||||||
|
energy.updateValue(m.Energy);
|
||||||
|
actualpower.updateValue(m.ActualPower);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,10 +72,20 @@ namespace ErgometerApplication
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ */
|
{ */
|
||||||
MainClient.Connect(SerialPort.GetPortNames()[0], username, password);
|
if(MainClient.Connect(SerialPort.GetPortNames()[0], username, password))
|
||||||
panelClientContainer.BringToFront();
|
{
|
||||||
this.labelUsername.Text = panelLogin.textBoxUsername.Text;
|
panelClientContainer.BringToFront();
|
||||||
panelTopBar.Visible = true;
|
this.labelUsername.Text = panelLogin.textBoxUsername.Text;
|
||||||
|
panelTopBar.Visible = true;
|
||||||
|
updateTimer.Start();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
panelLogin.lblVerification.Text = "De inloggegevens zijn onjuist.";
|
||||||
|
panelLogin.lblVerification.ForeColor = Color.Red;
|
||||||
|
panelLogin.lblVerification.Visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -112,6 +132,7 @@ namespace ErgometerApplication
|
|||||||
panelLogin.BringToFront();
|
panelLogin.BringToFront();
|
||||||
panelTopBar.Visible = false;
|
panelTopBar.Visible = false;
|
||||||
sessionLogout();
|
sessionLogout();
|
||||||
|
updateTimer.Stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
//using ErgometerLibrary;
|
|
||||||
namespace ErgometerApplication
|
|
||||||
{
|
|
||||||
class DataSaving
|
|
||||||
{
|
|
||||||
//List<Meting> local_data = null;
|
|
||||||
//private List<Meting> ReadFile()
|
|
||||||
//{
|
|
||||||
// string path;
|
|
||||||
// OpenFileDialog file = new OpenFileDialog();
|
|
||||||
// file.Filter = "Ergometer files(*.ergo) | *.ergo | All files(*.*) | *.*";
|
|
||||||
// if (file.ShowDialog() == DialogResult.OK)
|
|
||||||
// {
|
|
||||||
// path = file.FileName;
|
|
||||||
// List<Meting> readFile = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Meting>>(System.IO.File.ReadAllText(path));
|
|
||||||
// return readFile;
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
//private List<Meting> SaveData(Meting meting, List<Meting> _data)
|
|
||||||
//{
|
|
||||||
// List<Meting> local_data = _data;
|
|
||||||
// local_data.Add(meting);
|
|
||||||
// return local_data;
|
|
||||||
//}
|
|
||||||
//private void WriteFile(List<Meting> _data)
|
|
||||||
//{
|
|
||||||
// string json = Newtonsoft.Json.JsonConvert.SerializeObject(_data);
|
|
||||||
// string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ErgometerSessionData.ergo");
|
|
||||||
// System.IO.File.WriteAllText(path, json);
|
|
||||||
// Console.WriteLine("Writing file: " + path);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -70,8 +70,6 @@
|
|||||||
<Compile Include="PanelLogin.cs">
|
<Compile Include="PanelLogin.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ServerCommunicator.cs" />
|
|
||||||
<Compile Include="DataSaving.cs" />
|
|
||||||
<Compile Include="ClientApplicatie.cs">
|
<Compile Include="ClientApplicatie.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ namespace ErgometerApplication
|
|||||||
public static List<Meting> Metingen { get; }
|
public static List<Meting> Metingen { get; }
|
||||||
|
|
||||||
public static int Session;
|
public static int Session;
|
||||||
|
public static bool Loggedin;
|
||||||
|
|
||||||
public static string HOST = "127.0.0.1";
|
public static string HOST = "127.0.0.1";
|
||||||
public static int PORT = 8888;
|
public static int PORT = 8888;
|
||||||
@@ -28,10 +29,37 @@ namespace ErgometerApplication
|
|||||||
Metingen = new List<Meting>();
|
Metingen = new List<Meting>();
|
||||||
|
|
||||||
Session = 0;
|
Session = 0;
|
||||||
|
Loggedin = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Connect(string comport, string name, string password)
|
public static bool Connect(string comport, string name, string password)
|
||||||
{
|
{
|
||||||
|
if (!Doctor.Connected)
|
||||||
|
{
|
||||||
|
Doctor.Connect(HOST, PORT);
|
||||||
|
|
||||||
|
NetCommand net = NetHelper.ReadNetCommand(Doctor);
|
||||||
|
if (net.Type == NetCommand.CommandType.SESSION)
|
||||||
|
Session = net.Session;
|
||||||
|
else
|
||||||
|
throw new Exception("Session not assigned");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(! Loggedin)
|
||||||
|
{
|
||||||
|
NetCommand command = new NetCommand(name, false, password, Session);
|
||||||
|
NetHelper.SendNetCommand(Doctor, command);
|
||||||
|
|
||||||
|
NetCommand response = NetHelper.ReadNetCommand(Doctor);
|
||||||
|
if (response.Type == NetCommand.CommandType.RESPONSE && response.Response == NetCommand.ResponseType.LOGINWRONG)
|
||||||
|
{
|
||||||
|
Loggedin = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loggedin = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!ComPort.IsOpen())
|
if (!ComPort.IsOpen())
|
||||||
{
|
{
|
||||||
if (ComPort.Connect(comport))
|
if (ComPort.Connect(comport))
|
||||||
@@ -52,25 +80,8 @@ namespace ErgometerApplication
|
|||||||
else
|
else
|
||||||
throw new Exception("Comport was unable to connect");
|
throw new Exception("Comport was unable to connect");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
throw new Exception("Comport is already connected");
|
|
||||||
|
|
||||||
|
return true;
|
||||||
if(!Doctor.Connected)
|
|
||||||
{
|
|
||||||
Doctor.Connect(HOST, PORT);
|
|
||||||
|
|
||||||
NetCommand net = NetHelper.ReadNetCommand(Doctor);
|
|
||||||
if (net.Type == NetCommand.CommandType.SESSION)
|
|
||||||
Session = net.Session;
|
|
||||||
else
|
|
||||||
throw new Exception("Session not assigned");
|
|
||||||
|
|
||||||
NetCommand command = new NetCommand(name, false, password, Session);
|
|
||||||
NetHelper.SendNetCommand(Doctor, command);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
throw new Exception("Client is already connected");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Disconnect()
|
public static void Disconnect()
|
||||||
@@ -84,19 +95,16 @@ namespace ErgometerApplication
|
|||||||
else
|
else
|
||||||
throw new Exception("Comport was unable to disconnect");
|
throw new Exception("Comport was unable to disconnect");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
throw new Exception("Comport is already closed");
|
|
||||||
|
|
||||||
if (Doctor.Connected)
|
if (Doctor.Connected)
|
||||||
{
|
{
|
||||||
NetHelper.SendNetCommand(Doctor, new NetCommand(NetCommand.CommandType.LOGOUT, Session));
|
NetHelper.SendNetCommand(Doctor, new NetCommand(NetCommand.CommandType.LOGOUT, Session));
|
||||||
|
Loggedin = false;
|
||||||
Doctor.Close();
|
Doctor.Close();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
throw new Exception("Client is already disconnected");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SaveMeting(string meting)
|
public static Meting SaveMeting(string meting)
|
||||||
{
|
{
|
||||||
Meting m = Meting.Parse(meting);
|
Meting m = Meting.Parse(meting);
|
||||||
Metingen.Add(m);
|
Metingen.Add(m);
|
||||||
@@ -104,6 +112,8 @@ namespace ErgometerApplication
|
|||||||
{
|
{
|
||||||
NetHelper.SendNetCommand(Doctor, new NetCommand(m, Session));
|
NetHelper.SendNetCommand(Doctor, new NetCommand(m, Session));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return m;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,14 @@ namespace ErgometerApplication
|
|||||||
public ProgressBar progressBarMeting;
|
public ProgressBar progressBarMeting;
|
||||||
public Label metingName;
|
public Label metingName;
|
||||||
|
|
||||||
public PanelClientData(string name) : base()
|
private int min;
|
||||||
|
private int max;
|
||||||
|
|
||||||
|
public PanelClientData(string name, int min, int max) : base()
|
||||||
{
|
{
|
||||||
|
this.min = min;
|
||||||
|
this.max = max;
|
||||||
|
|
||||||
this.metingName = new System.Windows.Forms.Label();
|
this.metingName = new System.Windows.Forms.Label();
|
||||||
this.progressBarMeting = new System.Windows.Forms.ProgressBar();
|
this.progressBarMeting = new System.Windows.Forms.ProgressBar();
|
||||||
this.labelMetingCurrentValue = new System.Windows.Forms.Label();
|
this.labelMetingCurrentValue = new System.Windows.Forms.Label();
|
||||||
@@ -47,7 +53,7 @@ namespace ErgometerApplication
|
|||||||
this.progressBarMeting.Name = "progressBarMeting";
|
this.progressBarMeting.Name = "progressBarMeting";
|
||||||
this.progressBarMeting.Size = new System.Drawing.Size(183, 23);
|
this.progressBarMeting.Size = new System.Drawing.Size(183, 23);
|
||||||
this.progressBarMeting.TabIndex = 1;
|
this.progressBarMeting.TabIndex = 1;
|
||||||
this.progressBarMeting.Value = 50;
|
this.progressBarMeting.Value = 0;
|
||||||
//
|
//
|
||||||
// labelMetingCurrentValue
|
// labelMetingCurrentValue
|
||||||
//
|
//
|
||||||
@@ -58,7 +64,7 @@ namespace ErgometerApplication
|
|||||||
this.labelMetingCurrentValue.Name = "labelMetingCurrentValue";
|
this.labelMetingCurrentValue.Name = "labelMetingCurrentValue";
|
||||||
this.labelMetingCurrentValue.Size = new System.Drawing.Size(57, 32);
|
this.labelMetingCurrentValue.Size = new System.Drawing.Size(57, 32);
|
||||||
this.labelMetingCurrentValue.TabIndex = 2;
|
this.labelMetingCurrentValue.TabIndex = 2;
|
||||||
this.labelMetingCurrentValue.Text = "255";
|
this.labelMetingCurrentValue.Text = "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setText(string text)
|
public void setText(string text)
|
||||||
@@ -69,19 +75,30 @@ namespace ErgometerApplication
|
|||||||
public void updateValue(int value)
|
public void updateValue(int value)
|
||||||
{
|
{
|
||||||
this.labelMetingCurrentValue.Text = value.ToString();
|
this.labelMetingCurrentValue.Text = value.ToString();
|
||||||
this.progressBarMeting.Value = value;
|
this.progressBarMeting.Value = ValueToPercentage(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateValue(double value)
|
public void updateValue(double value)
|
||||||
{
|
{
|
||||||
this.labelMetingCurrentValue.Text = value.ToString();
|
this.labelMetingCurrentValue.Text = value.ToString();
|
||||||
this.progressBarMeting.Value = (int)value;
|
this.progressBarMeting.Value = ValueToPercentage((int)value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateValue(decimal value)
|
public void updateValue(decimal value)
|
||||||
{
|
{
|
||||||
this.labelMetingCurrentValue.Text = value.ToString();
|
this.labelMetingCurrentValue.Text = value.ToString();
|
||||||
this.progressBarMeting.Value = (int)value;
|
this.progressBarMeting.Value = ValueToPercentage((int)value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int ValueToPercentage(int value)
|
||||||
|
{
|
||||||
|
if (value < min)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (value > max)
|
||||||
|
return 100;
|
||||||
|
|
||||||
|
return ((value - min) * 100) / (max - min);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
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 int sessionId { get; set; }
|
|
||||||
// public List<Meting> data { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
Reference in New Issue
Block a user