Changed server setup
This commit is contained in:
@@ -14,6 +14,9 @@ using System.IO;
|
|||||||
using ErgometerLibrary;
|
using ErgometerLibrary;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Timers;
|
||||||
|
using ErgometerLibrary;
|
||||||
|
using Timer = System.Timers.Timer;
|
||||||
|
|
||||||
namespace ErgometerApplication
|
namespace ErgometerApplication
|
||||||
{
|
{
|
||||||
@@ -22,15 +25,15 @@ namespace ErgometerApplication
|
|||||||
private ComPort comPort;
|
private ComPort comPort;
|
||||||
private List<Meting> _data;
|
private List<Meting> _data;
|
||||||
private int i = 0;
|
private int i = 0;
|
||||||
int sessionID;
|
|
||||||
NetCommand command;
|
NetCommand command;
|
||||||
|
private ServerCommunicator communicator = new ServerCommunicator();
|
||||||
List<Meting> readFile = new List<Meting>();
|
List<Meting> readFile = new List<Meting>();
|
||||||
System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
|
|
||||||
public Ergometer()
|
public Ergometer()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
comPort = new ComPort();
|
comPort = new ComPort();
|
||||||
_data = new List<Meting>();
|
_data = new List<Meting>();
|
||||||
|
communicator.data = _data;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void connectButton_Click(object sender, EventArgs e)
|
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()
|
bool ipIsOk = IPAddress.TryParse("127.0.0.1", out ipAddress); //GetIp()
|
||||||
if (!ipIsOk) { Console.WriteLine("ip adres kan niet geparsed worden."); Environment.Exit(1); }
|
if (!ipIsOk) { Console.WriteLine("ip adres kan niet geparsed worden."); Environment.Exit(1); }
|
||||||
client.Connect("127.0.0.1", 8888);
|
communicator.client = new TcpClient();
|
||||||
WriteServer("5»ses?");
|
communicator.client.Connect("127.0.0.1", 8888);
|
||||||
sessionID = int.Parse(ReadServer());
|
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)
|
private void statusButton_Click(object sender, EventArgs e)
|
||||||
@@ -103,12 +109,43 @@ namespace ErgometerApplication
|
|||||||
Console.WriteLine(response);
|
Console.WriteLine(response);
|
||||||
Meting m = Meting.Parse(response);
|
Meting m = Meting.Parse(response);
|
||||||
SaveData(m);
|
SaveData(m);
|
||||||
command = new NetCommand(m, sessionID);
|
command = new NetCommand(m, communicator.sessionId);
|
||||||
WriteServer(command.ToString());
|
communicator.writer.WriteLine(command.ToString());
|
||||||
richTextBox1.Text = m.ToString();
|
richTextBox1.Text = m.ToString();
|
||||||
WriteFile();
|
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)
|
private void resetButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
comPort.Write("RS");
|
comPort.Write("RS");
|
||||||
@@ -127,8 +164,8 @@ namespace ErgometerApplication
|
|||||||
Console.WriteLine(response);
|
Console.WriteLine(response);
|
||||||
Meting m = Meting.Parse(response);
|
Meting m = Meting.Parse(response);
|
||||||
SaveData(m);
|
SaveData(m);
|
||||||
command = new NetCommand(m, sessionID);
|
command = new NetCommand(m, communicator.sessionId);
|
||||||
WriteServer(command.ToString());
|
communicator.writer.WriteLine(command.ToString());
|
||||||
richTextBox1.Text = m.ToString();
|
richTextBox1.Text = m.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,8 +228,6 @@ namespace ErgometerApplication
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void readButton_Click(object sender, EventArgs e)
|
private void readButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ReadFile();
|
ReadFile();
|
||||||
@@ -265,20 +300,5 @@ namespace ErgometerApplication
|
|||||||
readFile = null;
|
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);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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<Meting> data { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user