Files
Tempering-Machine-Control-S…/DaireApplication/Loops/InteractiveUILoop.cs

101 lines
3.9 KiB
C#

using Avalonia.Media;
using Avalonia.Threading;
using AvaloniaApplication1.ViewModels;
using DaireApplication.DataBase;
using DaireApplication.Views;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace DaireApplication.Loops
{
public class InteractiveUILoop
{
public static async void Flashing(MainWindow _mainWindow)
{
while (true)
{
// Flashing Pre Heater on
if (_mainWindow.isFlashPreHeating)
{
Dispatcher.UIThread.Post(() =>
{
if (_mainWindow.PreHeatingBtn.Foreground == Brushes.Transparent)
{
_mainWindow.PreHeatingBtn.Foreground = Brushes.White;
}
else
{
_mainWindow.PreHeatingBtn.Foreground = Brushes.Transparent;
}
});
}
// Flashing Pre Heater off
if (!_mainWindow.isFlashPreHeating)
{
Dispatcher.UIThread.Post(() =>
{
_mainWindow.PreHeatingBtn.Foreground = Brushes.White;
});
}
// Flashing Mixer on
if (_mainWindow.startMixerMotorFlashing == 1)
{
Dispatcher.UIThread.Post(() =>
{
if (_mainWindow.ContentArea.Content is Settings result)
{
var motorLable = result.MixerSP.Children[1] as Avalonia.Controls.Label;
var motorRectangel = result.MixerSP.Children[2] as Avalonia.Controls.Shapes.Rectangle;
if (motorLable.Foreground.ToString() == "#ff231f20")
{
motorLable.Foreground = Brushes.Transparent ;
motorRectangel.Fill = Brushes.Transparent;
}
else
{
motorLable.Foreground = Brush.Parse("#ff231f20");
motorRectangel.Fill = Brush.Parse(_mainWindow.PassiveColor);
}
}
});
}
// Flashing Fountain on (only when not in pedal auto mode)
if (_mainWindow.startFountainMotorFlashing == 1 && !_mainWindow.isPedalAutoMode)
{
Dispatcher.UIThread.Post(() =>
{
if (_mainWindow.ContentArea.Content is Settings result)
{
var fountainLable = result.FountainSP.Children[1] as Avalonia.Controls.Label;
var fountainRectangel = result.FountainSP.Children[2] as Avalonia.Controls.Shapes.Rectangle;
if (fountainLable.Foreground.ToString() == "#ff231f20")
{
fountainLable.Foreground = Brushes.Transparent;
fountainRectangel.Fill = Brushes.Transparent;
}
else
{
fountainLable.Foreground = Brush.Parse("#ff231f20");
fountainRectangel.Fill = Brush.Parse(_mainWindow.PassiveColor);
}
}
});
}
Thread.Sleep(250);
}
}
}
}