public string SendAndReceive(String message) { String command = ""; ConnectionUtils.SendMessage(NetworkStream, message); dynamic json = JsonConvert.DeserializeObject(message); command = json.id; string response = ConnectionUtils.ReadMessage(NetworkStream); return(response); }
/// <summary> /// This method is running the thread started by the ServerConnect() method /// It listens to incoming messages and enters the switch case which switches on the id from the message /// </summary> public void MethodThread() { Console.WriteLine("started listening"); Boolean connected = false; while (!connected) { dynamic jsonReceive = JsonConvert.DeserializeObject(ConnectionUtils.ReadMessage(stream)); string id = jsonReceive.id; switch (id) { case "LoginResponse": Boolean response = jsonReceive.response; if (!response) { errorLabel.Invoke(new MethodInvoker(delegate { errorLabel.Text = "The credentials you supplied were not correct."; })); } else { Thread t = new Thread(new ThreadStart(ThreadProc)); t.Start(); login.Invoke(new MethodInvoker(delegate { login.Close(); })); connected = true; SendAdd(); } break; } } Boolean finished = false; while (!finished) { dynamic jsonReceive = JsonConvert.DeserializeObject(ConnectionUtils.ReadMessage(stream)); string id = jsonReceive.id; switch (id) { case "Ack": Console.WriteLine("Bike added"); Console.WriteLine(jsonReceive); List <string> bikeNames = GetBikeNames(jsonReceive); Console.WriteLine("BIKENAMES: " + bikeNames.Count); patientNames = GetPatientNames(jsonReceive); Console.WriteLine("AANTAL PATIENTEN: " + patientNames.Count); if (machineNames == null) { machineNames = new List <string>(); machineNames = bikeNames; } else { machineNames.Concat(bikeNames); } Form1.patients = patientNames; Form1.getNames(); Console.WriteLine("IS FORM NULL: " + form == null); Thread t2 = new Thread(new ThreadStart(StartUpdate)); t2.Start(); break; case "PatientNames": Console.WriteLine("PATIENTS: " + jsonReceive); this.patientNames = GetPatientNames(jsonReceive); this.patientNames.Concat(patientNames); foreach (Patient patient in this.patientNames) { Console.WriteLine(patient.age.ToString()); } break; case "SendNewName": string newClient = jsonReceive.name; Console.WriteLine("name: " + newClient); if (machineNames == null) { machineNames = new List <string>(); machineNames.Add(newClient); } else { machineNames.Add(newClient); } if (form != null) { Console.WriteLine("updated"); form.Invoke((MethodInvoker) delegate() { form.UpdateForm(machineNames, patientNames); Console.WriteLine("BIKENAMES: " + machineNames.Count); }); } break; case "Bike": JObject data = (JObject)jsonReceive; bikeInfoData = data.ToObject <RootObjectSendBikeInfo>(); if (AvansAstrand != null) { AvansAstrand.FillChart(); } //Console.WriteLine(bikeInfoData.data); break; case "HistoryData": Console.WriteLine("RECEIVED HISTORY: " + jsonReceive); SetHistoryData(jsonReceive); break; case "Astrand": string AInfo = jsonReceive.info; string AName = jsonReceive.name; int value = jsonReceive.value; AvansAstrand.SetInfo(AInfo, AName, value); break; case "Time": string time = jsonReceive.time; string TName = jsonReceive.name; AvansAstrand.SetTime(time, TName); break; case "VO2": string VName = jsonReceive.name; double Vo2 = jsonReceive.VO2; if (AvansAstrand.machineName == VName) { AvansAstrand.Invoke(new MethodInvoker(delegate { AvansAstrand.Vo2.Text = Vo2.ToString(); })); } break; } } }
/// <summary> /// This method is running the thread started by the ServerConnect() method /// It listens to incoming messages and enters the switch case which switches on the id from the message /// </summary> public void MethodThread() { Console.WriteLine("started listening"); while (true) { try { dynamic jsonRecieve = JsonConvert.DeserializeObject(ConnectionUtils.ReadMessage(stream)); string id = jsonRecieve.id; switch (id) { case "Ack": Console.WriteLine("Bike added"); break; case "Change": int distance = jsonRecieve.data.distance; int requestedPower = jsonRecieve.data.requestedPower; string time = jsonRecieve.data.time; SimulatorGUI.ChangeBikeValues(distance, requestedPower, time); break; case "ChangeTime": Console.WriteLine("Changed time"); string timeChange = jsonRecieve.time; SimulatorGUI.ChangeTime(timeChange); break; case "ChangePower": int rqPower = jsonRecieve.requestedPower; SimulatorGUI.ChangePower(rqPower); break; case "Message": Console.WriteLine("JSON: " + jsonRecieve); string message = jsonRecieve.message; int value = jsonRecieve.value; Console.WriteLine("Recieved message: " + message); if (value == 1) { SimulatorGUI.tempMessage = message; } else { SimulatorGUI.warningMessage = message; } break; case "PersonalMessage": string messageP = jsonRecieve.message; Console.WriteLine("Personal message: " + messageP); SimulatorGUI.tempMessage = messageP; break; case "EmergencyStop": Console.WriteLine("Emergency stop!"); SimulatorGUI.ChangeBikeValues(25); SimulatorGUI.emergencyStop = true; break; case "Time": string timeT = jsonRecieve.time; SimulatorGUI.time = timeT; break; } } catch (Exception e) { } } }
public String Read() { string response = ConnectionUtils.ReadMessage(NetworkStream); return(response); }
/// <summary> /// The method that will be launched by the thread. It also hold all of the logic of the HandleClient class. /// </summary> public void Run() { this.Stream = Client.GetStream(); bool done = false; while (!done) { string nonCheckedString = ConnectionUtils.ReadMessage(this.Stream); if (!string.IsNullOrEmpty(nonCheckedString)) { dynamic jsonReceive = JsonConvert.DeserializeObject(nonCheckedString); string id = jsonReceive.id; switch (id) { case "AddClient": CheckName(jsonReceive); Console.WriteLine("Accepted client: {0}, Name: {1}", DateTime.Now, this.Name); break; case "AddUser": AddPatient(jsonReceive); break; case "Bike": AddDataBikeInfo(jsonReceive); break; case "Change": SendChange(jsonReceive); break; case "ChangeTime": SendChange(jsonReceive); break; case "ChangePower": SendChange(jsonReceive); break; case "PersonalMessage": string name = jsonReceive.name; NetworkStream streamP = clientList[name].Stream; string messageP = jsonReceive.message; string json = jsonConnector.getJson(jsonConnector.SendMessage(messageP, 1)); ConnectionUtils.SendMessage(streamP, json); break; case "EmergencyStop": string name2 = jsonReceive.name; NetworkStream streamES = clientList[name2].Stream; string json2 = jsonConnector.getJson(jsonReceive); ConnectionUtils.SendMessage(streamES, json2); break; case "Login": CheckLogin(jsonReceive); break; case "StartSession": clientList[machine].StartSession(jsonReceive, this.date, this.nameOfPatient); break; case "AccesHistory": Console.WriteLine(jsonReceive); SendHistory(jsonReceive); break; case "AddPatient": AddPatient(jsonReceive); break; case "Combo": Combine(jsonReceive); break; case "PatientNames": this.patients = JsonConvert.DeserializeObject <List <Patient> >(jsonReceive.data.ToString()); File.WriteAllText("../../res/PatientData.json", JsonConvert.SerializeObject(this.patients)); break; case "StartAstrand": string AaName = jsonReceive.name; Patient p = jsonReceive.patient.ToObject <Patient>(); Server.StartAstrand(machine, p, clientList[AaName].Stream, clientList["doctor"].Stream); break; } } } RemoveName(); this.Client.Close(); Console.WriteLine("Client {0} closed", this.Name); this.Stream.Close(); Console.WriteLine("Networkstream closed of client {0}", this.Name); }