コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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;
                }
            }
        }
コード例 #3
0
        /// <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)
                {
                }
            }
        }
コード例 #4
0
        public String Read()
        {
            string response = ConnectionUtils.ReadMessage(NetworkStream);

            return(response);
        }
コード例 #5
0
        /// <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);
        }