private void CC2650Sensor_SensorValueChanged(object sender, SensorValueChangedEventArgs e) { switch (e.Origin) { case SensorName.Accelerometer: double[] accValues = Accelerometer.CalculateCoordinates(e.RawData, 1 / 64.0); lock (lastSensorReading) { lastSensorReading.AccelX = accValues[0]; lastSensorReading.AccelY = accValues[1]; lastSensorReading.AccelZ = accValues[2]; } break; case SensorName.HumiditySensor: double rh = HumiditySensor.CalculateHumidityInPercent(e.RawData); lock (lastSensorReading) { lastSensorReading.Humidity = rh; } break; case SensorName.PressureSensor: double hp = (PressureSensor.CalculatePressure(e.RawData)); lock (lastSensorReading) { lastSensorReading.Pressure = hp; } break; case SensorName.SimpleKeyService: bool leftKey = false; if (SimpleKeyService.LeftKeyHit(e.RawData)) { leftKey = true; } bool rightKey = false; if (SimpleKeyService.RightKeyHit(e.RawData)) { rightKey = true; } lock (lastSensorReading) { lastSensorReading.LeftKey = leftKey; lastSensorReading.RightKey = rightKey; } break; case SensorName.TemperatureSensor: double ambient = IRTemperatureSensor.CalculateAmbientTemperature(e.RawData, TemperatureScale.Celsius); double target = IRTemperatureSensor.CalculateTargetTemperature(e.RawData, ambient, TemperatureScale.Celsius); lock (lastSensorReading) { lastSensorReading.ATemperature = ambient; lastSensorReading.OTemperature = target; } break; } }
private void CC2650Sensor_SensorValueChanged(object sender, SensorValueChangedEventArgs e) { //Debug.WriteLine("*CC2650Sensor_SensorValueChanged:" + e.Origin); switch (e.Origin) { case SensorName.Accelerometer: float[] accValues = Accelerometer.CalculateCoordinates(e.RawData, AccelRange); lock (lastSensorReading) { lastSensorReading.AccelX = accValues[0]; lastSensorReading.AccelY = accValues[1]; lastSensorReading.AccelZ = accValues[2]; lastSensorReading.GyroX = accValues[3]; lastSensorReading.GyroY = accValues[4]; lastSensorReading.GyroZ = accValues[5]; lastSensorReading.MagX = accValues[6]; lastSensorReading.MagY = accValues[7]; lastSensorReading.MagZ = accValues[8]; } break; case SensorName.HumiditySensor: double rh = HumiditySensor.CalculateHumidityInPercent(e.RawData); double rt = HumiditySensor.CalculateHumidityTempareture(e.RawData, TemparetureScale); lock (lastSensorReading) { lastSensorReading.Humidity = rh; lastSensorReading.HTemperature = rt; } break; case SensorName.LightSensor: double rl = LightSensor.CalculateLightnessInLux(e.RawData); lock (lastSensorReading) { lastSensorReading.Lightness = rl; } //Special service for Battery here! Task <byte[]> task = Task.Run(() => BatteryLevel.GetLevel()); byte[] bytes = task.Result; if (bytes != null) { double bl = BatteryLevel.CalculateBatteryInPercent(bytes); //Debug.WriteLine("Battery Level:" + (int) bl); lock (lastSensorReading) { lastSensorReading.BatteryLevel = bl; } } break; case SensorName.PressureSensor: double hp = (PressureSensor.CalculatePressure(e.RawData)); double ht = (PressureSensor.CalculatePressureTempareture(e.RawData, TemparetureScale)); lock (lastSensorReading) { lastSensorReading.Pressure = hp; lastSensorReading.PTemperature = ht; } break; case SensorName.BatteryLevel: Debug.WriteLine("Battery Level Service is not here."); break; case SensorName.SimpleKeyService: bool leftKey = false; if (SimpleKeyService.LeftKeyHit(e.RawData)) { leftKey = true; //Debug.WriteLine("leftKey"); } bool rightKey = false; if (SimpleKeyService.RightKeyHit(e.RawData)) { rightKey = true; //Debug.WriteLine("rightKey"); } lock (lastSensorReading) { lastSensorReading.LeftKey = leftKey; lastSensorReading.RightKey = rightKey; } break; case SensorName.TemperatureSensor: double ambient = IRTemperatureSensor.CalculateAmbientTemperature(e.RawData, TemparetureScale); double target = IRTemperatureSensor.CalculateTargetTemperature(e.RawData, ambient, TemparetureScale); lock (lastSensorReading) { lastSensorReading.ATemperature = ambient; lastSensorReading.OTemperature = target; } break; } }