示例#1
0
        //Real test Phase 1
        #region
        public void RealTestPhase1()
        {
            //Measurements 1200 is 2 minuten voor de test
            int measurements       = 1200;
            int currentMeasurement = 0;

            while (currentMeasurement <= measurements)
            {
                long          beginTime = DateTime.Now.Ticks;
                ErgometerData data      = client.GetErgoData();
                this.measurements.Add(data);
                currentRPM = data.RPM;
                if (currentMeasurement % 10 == 0)
                {
                    chatPanel.UpdatePreviousText("Huidige power: " + (data.Actual_Power) + " Huidige RPM: " + data.RPM + " Huidige hartslag: " + data.Pulse + "\r\n\r\n" + "Testphase 1: " + (measurements - currentMeasurement) / 10 + " seconden\r\n");
                    SendData(data);
                }
                if (currentMeasurement % 30 == 0 && data.Pulse < 130 && currentRPM >= 50 && currentRPM <= 60)
                {
                    client.SetPower(data.Actual_Power + 5);
                }
                if (HFAboveMaximum(data.Pulse))
                {
                    MaxHFReached = true;
                }
                if (data.Pulse >= 130 && !ReadyState130)
                {
                    ReadyState130 = true;
                    chatPanel.UpdateText("Ready state bereikt");
                }
                currentMeasurement++;
                chatPanel.Invalidate();
                Wait100Ms(beginTime);
            }
        }
示例#2
0
        //Cooling down
        #region
        public void CoolingDown()
        {
            currentRPM = 0;
            chatPanel.Invalidate();
            chatPanel.UpdateText("Power word naar 50 gezet");
            client.SetPower(50);
            //Measurements 600 is 1 minuten voor de cooling down
            int measurements       = 600;
            int currentMeasurement = 0;

            while (currentMeasurement <= measurements)
            {
                long          beginTime = DateTime.Now.Ticks;
                ErgometerData data      = client.GetErgoData();
                this.measurements.Add(data);
                if (currentMeasurement % 10 == 0)
                {
                    chatPanel.UpdatePreviousText("Cooling down: " + (measurements - currentMeasurement) / 10 + " seconden");
                    SendData(data);
                }
                if (HFAboveMaximum(data.Pulse))
                {
                    MaxHFReached = true;
                }
                currentMeasurement++;
                Wait100Ms(beginTime);
            }
        }
示例#3
0
        //Warming up
        #region
        public void WarmingUp()
        {
            chatPanel.UpdateText("Power word naar 50 gezet");
            client.SetPower(50);
            //Measurements 1200 is 2 minuten warming up
            int measurements       = 1200;
            int currentMeasurement = 0;

            while (currentMeasurement <= measurements)
            {
                long          beginTime = DateTime.Now.Ticks;
                ErgometerData data      = client.GetErgoData();
                this.measurements.Add(data);
                if (currentMeasurement % 10 == 0)
                {
                    chatPanel.UpdatePreviousText("Warming up nog: " + (measurements - currentMeasurement) / 10 + " seconden");
                    SendData(data);
                }
                if (HFAboveMaximum(data.Pulse))
                {
                    MaxHFReached = true;
                }
                currentMeasurement++;
                Wait100Ms(beginTime);
            }
        }
示例#4
0
        public void UpdateBikePanelInVR(ErgometerData ed)
        {
            if (ed.Actual_Power != null && ed.Speed != null && ed.Time != null && ed.RPM != null && ed.Distance != null && ed.Distance != null)
            {
                string text = "Power: " + ed.Actual_Power + "\\n" + "Speed: " + ed.Speed + "\\n" + "Time: " + ed.Time +
                              "\\n" + "RPM: " + ed.RPM + "\\n" + "Distance: " + Math.Round(ed.Distance, 2) + "\\n" +
                              "Pulse: " + ed.Pulse;

                session.Send(JsonConvert.SerializeObject(Commands.UpdateSpeed(tunnel, session.terrain.UuidCamera,
                                                                              (int)ed.Speed / 2)));
                session.Send(JsonConvert.SerializeObject(Commands.clearPanel(tunnel, session.terrain.UuidStatsPanel)));
                session.Send(
                    JsonConvert.SerializeObject(Commands.addTextPanel(tunnel, session.terrain.UuidStatsPanel, text)));
                session.Send(JsonConvert.SerializeObject(Commands.SwapPanel(tunnel, session.terrain.UuidStatsPanel)));
            }
        }
示例#5
0
        //Send data to server
        #region
        public void SendData(ErgometerData data)
        {
            dynamic ergometerdata = new
            {
                id      = "data",
                session = client.sessionID,
                data    = new
                {
                    power    = data.Actual_Power,
                    speed    = data.Speed,
                    time     = data.Time,
                    RPM      = data.RPM,
                    distance = data.Distance,
                    pulse    = data.Pulse
                }
            };

            client.Send(JsonConvert.SerializeObject(ergometerdata));
        }