// private static string RoomName = "dining-room"; // private static string RoomName = "kitchen"; // private static string RoomName = "basement"; static void Main(string[] args) { var sensorReadingIntervalMilliseconds = 1000; var readings = new HomeAutomationReadings(); var joystickEvents = Joystick.Events .Subscribe(p => { if (p.Key == JoystickKey.Enter && p.State == JoystickKeyState.Release) { IsGarageDoorOpen = !IsGarageDoorOpen; if (IsGarageDoorOpen) { Console.WriteLine("Garage door is open"); } else { Console.WriteLine("Garage door is closed"); } } }); using (var settings = RTIMUSettings.CreateDefault()) { while (true) { var temperature = GetTemperatureReading(settings); var humidity = GetHumidityReading(settings); var pressure = GetPressureReading(settings); var garageDoor = GetGarageDoorReading(); readings.TemperatureReading.Value = temperature.value; readings.HumidityReading.Value = humidity.value; readings.PressureReading.Value = pressure.value; readings.GarageDoorReading.Value = garageDoor.value; Console.WriteLine(JsonSerializer.Serialize(temperature)); Console.WriteLine(JsonSerializer.Serialize(humidity)); Console.WriteLine(JsonSerializer.Serialize(pressure)); Console.WriteLine(JsonSerializer.Serialize(garageDoor)); var pixelList = new List <CellColor>(); AddPixelsForReading(pixelList, readings.TemperatureReading.Quadrant, readings.TemperatureReading.GetColor()); AddPixelsForReading(pixelList, readings.HumidityReading.Quadrant, readings.HumidityReading.GetColor()); AddPixelsForReading(pixelList, readings.PressureReading.Quadrant, readings.PressureReading.GetColor()); AddPixelsForReading(pixelList, readings.GarageDoorReading.Quadrant, readings.GarageDoorReading.GetColor()); var immutablePixels = new Sense.Led.Pixels(ImmutableList.Create(pixelList.ToArray())); Sense.Led.LedMatrix.SetPixels(immutablePixels); Sense.Led.LedMatrix.SetLowLight(true); Thread.Sleep(sensorReadingIntervalMilliseconds); } } }
private static void DisplaySensorReadings(RedisValue message) { var sensorType = JsonSerializer.Deserialize <SensorType>(message.ToString()); if (sensorType.sensor == "temperature") { var reading = JsonSerializer.Deserialize <SensorReading <float> >(message.ToString()); readings.TemperatureReading.Value = reading.value; Console.WriteLine($"Temperature {readings.TemperatureReading.Value}"); } else if (sensorType.sensor == "humidity") { var reading = JsonSerializer.Deserialize <SensorReading <float> >(message.ToString()); readings.HumidityReading.Value = reading.value; Console.WriteLine($"Humidity {readings.TemperatureReading.Value}"); } else if (sensorType.sensor == "pressure") { var reading = JsonSerializer.Deserialize <SensorReading <float> >(message.ToString()); readings.PressureReading.Value = reading.value; Console.WriteLine($"Pressure {readings.TemperatureReading.Value}"); } else if (sensorType.sensor == "garage-door") { var reading = JsonSerializer.Deserialize <SensorReading <bool> >(message.ToString()); readings.GarageDoorReading.Value = reading.value; Console.WriteLine($"Garage Door {readings.TemperatureReading.Value}"); } else { Console.WriteLine($"Received unknown sensor: {sensorType.sensor}"); } var pixelList = new List <CellColor>(); AddPixelsForReading(pixelList, readings.TemperatureReading.Quadrant, readings.TemperatureReading.GetColor()); AddPixelsForReading(pixelList, readings.HumidityReading.Quadrant, readings.HumidityReading.GetColor()); AddPixelsForReading(pixelList, readings.PressureReading.Quadrant, readings.PressureReading.GetColor()); AddPixelsForReading(pixelList, readings.GarageDoorReading.Quadrant, readings.GarageDoorReading.GetColor()); var immutablePixels = new Sense.Led.Pixels(ImmutableList.Create(pixelList.ToArray())); Sense.Led.LedMatrix.SetPixels(immutablePixels); Sense.Led.LedMatrix.SetLowLight(true); }