Example #1
0
        void sensorEmulateTimer_Tick(object sender, EventArgs e)
        {
            if (iotKitHWStatus == null)
            {
                return;
            }
            long currentTick = DateTime.Now.Ticks;

            switch (temperatureSensorStatus)
            {
            case TemperatureSensorStatus.TouchedAndWarmed:
            case TemperatureSensorStatus.Untouched:
                iotKitHWStatus.CurrentTemperature += iotKitHWStatus.TemperatureWhiteNoise * (0.5 - sensorValueRandom.NextDouble());
                break;

            case TemperatureSensorStatus.Touching:
                deltaTemp = (iotKitHWStatus.TargetMaxTemperature - iotKitHWStatus.TrueTemperature) / (iotKitHWStatus.ChangeDurationSec * TimeSpan.FromSeconds(1).Ticks / (sensorEmulateInterval.Ticks));
                temperatureSensorStatus = TemperatureSensorStatus.TouchedAndWarming;
                break;

            case TemperatureSensorStatus.TouchedAndWarming:
                iotKitHWStatus.TrueTemperature += deltaTemp;
                if (iotKitHWStatus.TrueTemperature >= iotKitHWStatus.TargetMaxTemperature)
                {
                    temperatureSensorStatus      = TemperatureSensorStatus.TouchedAndWarmed;
                    cbTempSensorStatus.IsEnabled = true;
                }
                iotKitHWStatus.CurrentTemperature = iotKitHWStatus.TrueTemperature + iotKitHWStatus.TemperatureWhiteNoise * (0.5 - sensorValueRandom.NextDouble());
                break;

            case  TemperatureSensorStatus.Untouching:
                deltaTemp = (iotKitHWStatus.TargetMinTemperature - iotKitHWStatus.TrueTemperature) / (iotKitHWStatus.ChangeDurationSec * TimeSpan.FromSeconds(1).Ticks / (sensorEmulateInterval.Ticks));
                temperatureSensorStatus = TemperatureSensorStatus.UntouchedAndCooling;
                break;

            case TemperatureSensorStatus.UntouchedAndCooling:
                iotKitHWStatus.TrueTemperature += deltaTemp;
                if (iotKitHWStatus.TrueTemperature <= iotKitHWStatus.TargetMinTemperature)
                {
                    temperatureSensorStatus      = TemperatureSensorStatus.Untouched;
                    cbTempSensorStatus.IsEnabled = true;
                }
                iotKitHWStatus.CurrentTemperature = iotKitHWStatus.TrueTemperature + iotKitHWStatus.TemperatureWhiteNoise * (0.5 - sensorValueRandom.NextDouble());
                break;
            }

            iotKitHWStatus.CurrentAccelX = iotKitHWStatus.TrueAccelX + iotKitHWStatus.AccelWhiteNoiseLevel * (0.5 - sensorValueRandom.NextDouble());
            iotKitHWStatus.CurrentAccelY = iotKitHWStatus.TrueAccelY + iotKitHWStatus.AccelWhiteNoiseLevel * (0.5 - sensorValueRandom.NextDouble());
            iotKitHWStatus.CurrentAccelZ = iotKitHWStatus.TrueAccelZ + iotKitHWStatus.AccelWhiteNoiseLevel * (0.5 - sensorValueRandom.NextDouble());
        }
Example #2
0
 private void cbTempSensorStatus_CheckedChanged(object sender, RoutedEventArgs e)
 {
     timeOfTemperatureSensorStatusChanged = DateTime.Now.Ticks;
     if (((CheckBox)sender).IsChecked.Value)
     {
         if (temperatureSensorStatus == TemperatureSensorStatus.Untouched)
         {
             temperatureSensorStatus      = TemperatureSensorStatus.Touching;
             ((CheckBox)sender).IsEnabled = false;
         }
     }
     else
     {
         if (temperatureSensorStatus == TemperatureSensorStatus.TouchedAndWarmed)
         {
             temperatureSensorStatus      = TemperatureSensorStatus.Untouching;
             ((CheckBox)sender).IsEnabled = false;
         }
     }
 }