Ejemplo n.º 1
0
        private void StartBikeSession()
        {
            DateTime startTime = DateTime.Now;
            bool     running   = true;

            while (running)
            {
                DateTime currentTime = DateTime.Now;
                if ((currentTime - startTime).Ticks / TimeSpan.TicksPerSecond >= 1)
                {
                    startTime   = currentTime;
                    currentData = bike.ReadData();

                    if (currentData == null)
                    {
                        continue;
                    }

                    OnBikeDataReceived?.Invoke(currentData);
                    if (bike is BikeSimulator)
                    {
                        ChangeBikeValues();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void handleData(DataPacket data)
        {
            switch (data.type)
            {
            case "LOGINRESPONSE":
            {
                DataPacket <LoginResponse> d = data.GetData <LoginResponse>();
                if (d.data.status == "OK" && !d.data.isClient)
                {
                    this.loggedIn = true;
                    OnLogin?.Invoke(this.loggedIn);
                    Console.WriteLine("You are logged in!");
                }
                else if (d.data.status == ("ERROR"))
                {
                    this.loggedIn = false;
                    OnLogin?.Invoke(this.loggedIn);
                    Console.WriteLine("Your username and/or password is not valid!");
                }
                break;
            }

            case "CHAT":
            {
                DataPacket <ChatPacket> d = data.GetData <ChatPacket>();

                OnChatReceived?.Invoke(d.sender, d.data.receiver, $"{d.sender}: {d.data.chatMessage}\r\n", d.data.isDoctorMessage);
                break;
            }

            case "RESPONSE_CLIENTLIST":
            {
                DataPacket <ClientListPacket> d = data.GetData <ClientListPacket>();
                OnClientListReceived?.Invoke(d.data.clientList);
                break;
            }

            case "BIKEDATA":
            {
                DataPacket <BikeDataPacket> d = data.GetData <BikeDataPacket>();
                OnBikeDataReceived?.Invoke(d);
                break;
            }

            case "RESPONSE_SESSIONSTATE":
            {
                DataPacket <ResponseSessionStatePacket> d = data.GetData <ResponseSessionStatePacket>();
                OnSessionStateReceived?.Invoke(d.data.receiver, d.data.startTimeSession, d.data.sessionState);
                break;
            }

            case "SESSIONSTATE_RESPONSE":
            {
                DataPacket <StartStopPacket> d = data.GetData <StartStopPacket>();
                OnSessionStateMessageReceived?.Invoke(d.sender, d.data.startSession);
                break;
            }

            case "RESPONSE_BIKE_STATE":
            {
                DataPacket <ResponseBikeState> d = data.GetData <ResponseBikeState>();
                OnBikeStateChanged?.Invoke(d.sender, d.data.bikeIsConnected);
                break;
            }

            case "SESSIONSTATE_EMERGENCYRESPONSE":
            {
                DataPacket <EmergencyResponsePacket> d = data.GetData <EmergencyResponsePacket>();
                OnEmergencyResponse?.Invoke(d.sender, d.data.state);
                break;
            }

            case "RESPONSE_TRAINING_LIST":
            {
                DataPacket <ResponseTrainingList> d = data.GetData <ResponseTrainingList>();
                this.OnTrainingListReceived?.Invoke(d.data.forClient, d.data.trainingList);
                break;
            }

            case "RESPONSE_TRAINING_DATA":
            {
                DataPacket <ResponseTrainingData> d = data.GetData <ResponseTrainingData>();
                this.OnTrainingDataReceived?.Invoke(d.data.forClient, d.data.trainingName, d.data.trainingData);
                break;
            }

            case "DISCONNECT_REQUEST":
            {
                DataPacket <ChatPacket> d = data.GetData <ChatPacket>();
                Disconnect();
                break;
            }

            default:
                Console.WriteLine("Type is not valid");
                break;
            }
        }