コード例 #1
0
 /// <summary>
 ///     update the statistics
 /// </summary>
 /// <param name="bikeEvent">BikeStatEvent bikeEvent</param>
 public void UpdatePanel(BikeStatEvent bikeEvent)
 {
     bpm      = bikeEvent.values.ElementAt((int)Stats.StatName.HEARTBEAT);
     rpm      = bikeEvent.values.ElementAt((int)Stats.StatName.RPM);
     speed    = bikeEvent.values.ElementAt((int)Stats.StatName.SPEED);
     distance = bikeEvent.values.ElementAt((int)Stats.StatName.DISTANCE);
     power    = bikeEvent.values.ElementAt((int)Stats.StatName.PROGRAMWATTAGE);
     energy   = bikeEvent.values.ElementAt((int)Stats.StatName.ENERGY);
     timeD    = bikeEvent.values.ElementAt((int)Stats.StatName.TIME);
     ap       = bikeEvent.values.ElementAt((int)Stats.StatName.WATTAGE);
 }
コード例 #2
0
 /// <summary>
 ///     update the BikeStatEvent
 /// </summary>
 /// <param name="e"></param>
 public void updateStat(BikeStatEvent e)
 {
     if ((last == null) ||
         (e.getValues()[(int)Stats.StatName.TIME] != last.getValues()[(int)Stats.StatName.TIME]))
     {
         sendData(e);
         last = e;
         if (training != null)
         {
             var power = training.registerBikeEvent(e);
             if (power != -1)
             {
                 bike.connector.sendData("PW " + power);
             }
         }
     }
 }
コード例 #3
0
        /// <summary>
        ///     first check the bikevent with the predefined checks (for calculating averages or setting power)
        ///     Then return the programmed wattage with offset (when below or above threshold)
        /// </summary>
        /// <param name="bikeEvent">Parameter is the latest bikeevent, if bikeevent == null then returns -1 (errorvalue)</param>
        /// <returns></returns>
        public double registerBikeEvent(BikeStatEvent bikeEvent)
        {
            if (bikeEvent == null)
            {
                return(-1);
            }
            foreach (var check in checks)
            {
                var value = check.Invoke(bikeEvent);
                if (value != null)
                {
                    switch (value.value)
                    {
                    case TrainingCheckValue.TypeTrainingValue.DOCTOR_MSG:
                        actionListener.Invoke(value.data + "");
                        break;

                    case TrainingCheckValue.TypeTrainingValue.AVERAGE_CALC:
                        averages[(int)value.averageIndex] += (int)value.data;
                        break;

                    case TrainingCheckValue.TypeTrainingValue.DEFAULT_POWER:
                        if (powerOffset != 0)
                        {
                            powerOffset -= 1;
                        }
                        break;

                    case TrainingCheckValue.TypeTrainingValue.HIGHER_POWER:
                        powerOffset += (int)value.data;
                        break;
                    }
                }
            }
            var power = getPower((int)bikeEvent.values[(int)Stats.StatName.TIME]);

            if (power != lastPower)
            {
                lastPower = power;
                return(power);
            }
            return(-1);
        }
コード例 #4
0
 /// <summary>
 ///     add new data to a following patient
 /// </summary>
 private void updateGraphPatientData(BikeStatEvent bikeEvent)
 {
     if ((bikeEvent.type != BikeStatEvent.StatTypes.CURRENT_STATISTICS) || (bikeEvent.source != selectedFilter))
     {
         return;
     }
     if (InvokeRequired)
     {
         Invoke(new MethodInvoker(delegate { updateGraphPatientData(bikeEvent); }));
     }
     else
     {
         graphPatientData.Series["Heartbeat"].Points.Add(bikeEvent.values[(int)Stats.StatName.HEARTBEAT]);
         graphPatientData.Series["RPM"].Points.Add(bikeEvent.values[(int)Stats.StatName.RPM]);
         graphPatientData.Series["Actual power"].Points.Add(bikeEvent.values[(int)Stats.StatName.WATTAGE]);
         graphPatientData.Series["HeartBeatAverage"].Points.Add(heartbeatAverageValue);
         updateGraphScrollBar();
     }
     updateGraphAvrageHeartBeatLine();
 }
コード例 #5
0
        public void updateLabels(BikeStatEvent bikeEvent)
        {
            Console.WriteLine("CLIENT IS CHANGING " + bikeEvent);
            if (bikeEvent.type != current)
            {
                return;
            }
            if (bikeEvent.source != selectedFilter)
            {
                return;
            }
            if (InvokeRequired)
            {
                Invoke(new MethodInvoker(delegate { updateLabels(bikeEvent); }));
            }
            else
            {
                var values = bikeEvent.values;
                var gap    = "     ";

                heartbeatLabel.Text = values[(int)Stats.StatName.HEARTBEAT] + gap + "beats/minute" +
                                      Stats.getPrefix(current, (int)Stats.StatName.HEARTBEAT);
                RPMLabel.Text = values[(int)Stats.StatName.RPM] + gap + "rounds/minute" +
                                Stats.getPrefix(current, (int)Stats.StatName.RPM);
                speedLabel.Text = values[(int)Stats.StatName.SPEED] + gap + "km/hour" +
                                  Stats.getPrefix(current, (int)Stats.StatName.SPEED);
                distanceLabel.Text = values[(int)Stats.StatName.DISTANCE] + gap + "km" +
                                     Stats.getPrefix(current, (int)Stats.StatName.DISTANCE);
                powerLabel.Text = values[(int)Stats.StatName.PROGRAMWATTAGE] + gap + "watt" +
                                  Stats.getPrefix(current, (int)Stats.StatName.PROGRAMWATTAGE);
                energyLabel.Text = values[(int)Stats.StatName.ENERGY] + gap + "kilo joule" +
                                   Stats.getPrefix(current, (int)Stats.StatName.ENERGY);
                timeLabel.Text = values[(int)Stats.StatName.TIME] + gap + "seconds" +
                                 Stats.getPrefix(current, (int)Stats.StatName.TIME);
                acPowerLabel.Text = values[(int)Stats.StatName.WATTAGE] + gap + "watt" +
                                    Stats.getPrefix(current, (int)Stats.StatName.WATTAGE);
            }
        }