<UserControl xmlns:Control="clr-namespace:MECF.Framework.UI.Core.Control;assembly=MECF.Framework.UI.Core" x:Class="CyberX8_Themes.UserControls.TemperatureControllerControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:CyberX8_Themes.UserControls" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" xmlns:converters="clr-namespace:CyberX8_Themes.Converters" mc:Ignorable="d" Name="self" d:DesignHeight="500" d:DesignWidth="500"> <UserControl.Resources> <converters:BoolToColor x:Key="boolToColor"/> <converters:BoolToRedColor x:Key="boolToRedColor"/> </UserControl.Resources> <GroupBox Header="{Binding ElementName=self,Path=ModuleTitle}" Background="{DynamicResource Table_BD_Title}" BorderBrush="DarkGray" Height="500"> <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition Height="130"/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="30"/> <RowDefinition Height="60"/> <RowDefinition Height="40"/> <RowDefinition/> </Grid.RowDefinitions> <Grid Grid.Row="0" Margin="0,5,0,0"> <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=IsConnected, Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left"/> <Label Height="30" Width="70" Content="{Binding ElementName=self,Path=ModuleName}" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="28,0,0,0"/> <TextBlock Width="100" VerticalAlignment="Center" Text="{Binding ElementName=self,Path=DisableStatus}" Background="Black" Foreground="Lime" FontSize="16" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,180,0"/> <Button IsEnabled="{Binding IsEnable}" Style="{StaticResource SysBtnStyle}" Content="Disable" Click="Disable_Click" HorizontalAlignment="Right" Width="70" Margin="0,0,80,0"></Button> <Button IsEnabled="{Binding IsEnable}" Style="{StaticResource SysBtnStyle}" Content="Enable" Click="Enable_Click" HorizontalAlignment="Right" Width="70" Margin="0,0,5,0"></Button> </Grid> <Grid Grid.Row="1"> <Label Height="30" Content="State" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left"/> <TextBlock Width="110" VerticalAlignment="Center" Text="{Binding ElementName=self,Path=Status}" Background="Black" Foreground="Lime" FontSize="16" FontWeight="Bold" HorizontalAlignment="Left" Margin="44,0,0,0"/> <TextBlock Width="100" VerticalAlignment="Center" Text="{Binding ElementName=self,Path=AutoStatus}" Background="Black" Foreground="Lime" FontSize="16" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,180,0"/> <Label Height="30" Content="OperationMode" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="313,2,0,0"/> </Grid> <Grid Grid.Row="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="189*"/> <ColumnDefinition Width="55*"/> </Grid.ColumnDefinitions> <Label Height="30" Content="Set Point" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left"/> <Control:NumbericUpDown IsEnabled="{Binding IsEnable}" Height="30" Width="70" IncrementValue="1" Margin="67,15,0,15" HorizontalAlignment="Left" Value="{Binding ElementName=self,Path=SetPointValue,Mode=TwoWay}"/> <Label Height="30" Content="℃" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="139,0,0,0"/> <Button Style="{StaticResource SysBtnStyle}" IsEnabled="{Binding IsApplyEnable}" Content="Apply" Click="Apply_Click" HorizontalAlignment="Left" Width="70" Height="30" Margin="174,15,0,15"></Button> <Ellipse Margin="0,10,10,34" Width="16" Height="16" Fill="{Binding ElementName=self,Path=TemperatureReached, Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Right" Grid.Column="1"/> <Label Content="Temperature Reached" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0,5,30,0" Grid.ColumnSpan="2"/> <Ellipse Margin="0,34,10,10" Width="16" Height="16" Fill="{Binding ElementName=self,Path=DeltaExceeded, Converter={StaticResource boolToRedColor}}" Stroke="Silver" HorizontalAlignment="Right" Grid.Column="1"/> <Label Content="Delta Exceeded" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0,29,30,0" Grid.ColumnSpan="2"/> </Grid> <Grid Grid.Row="3"> <Label Height="30" Content="Set Point Limits:" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left"/> <Control:NumbericUpDown IsEnabled="{Binding IsEnable}" Height="30" Width="70" IncrementValue="1" Margin="107,0,0,0" HorizontalAlignment="Left" Value="{Binding ElementName=self,Path=SetPointMinValue,Mode=TwoWay}"/> <Label Height="30" Content="℃" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="179,0,0,0"/> <Control:NumbericUpDown IsEnabled="{Binding IsEnable}" Height="30" Width="70" IncrementValue="1" Margin="357,0,0,0" HorizontalAlignment="Left" Value="{Binding ElementName=self,Path=SetPointMaxValue,Mode=TwoWay}"/> <Label Height="30" Content="℃" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="427,0,0,0"/> <TextBlock Width="100" VerticalAlignment="Center" Text="{Binding ElementName=self,Path=TargetTemperatureValue,StringFormat=\{0:F2\}}" Background="Black" Foreground="Lime" FontSize="16" FontWeight="Bold" HorizontalAlignment="Left" Margin="210,0,0,0" /> <Label Height="30" Content="℃" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="307,0,0,0"/> </Grid> <Grid Grid.Row="4"> <Label Content="Reservior" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,70,0,0"/> <TextBlock Width="50" VerticalAlignment="Top" Text="{Binding ElementName=self,Path=ReserviorValue,StringFormat=\{0:F2\}}" Background="Black" Foreground="Lime" FontSize="16" FontWeight="Bold" HorizontalAlignment="Left" Margin="67,72,0,0" /> <Label Content="℃" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="113,70,0,0"/> <Label Content="Heat Exch" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,120,0,0"/> <TextBlock Width="50" VerticalAlignment="Top" Text="{Binding ElementName=self,Path=HeatExchangerValue,StringFormat=\{0:F2\}}" Background="Black" Foreground="Lime" FontSize="16" FontWeight="Bold" HorizontalAlignment="Left" Margin="67,122,0,0" /> <Label Content="℃" VerticalContentAlignment="Center" HorizontalContentAlignment="Left" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="113,120,0,0"/> <lvc:CartesianChart LegendLocation="Top" Hoverable="True" Margin="140,0,0,0" > <lvc:CartesianChart.Series> <lvc:LineSeries Title="Reservior series" Width="1" Values="{Binding ReserviorSeries}" Stroke="Blue" LineSmoothness="1"/> <lvc:LineSeries Title="Heat Exch" Width="1" Values="{Binding HeatExchangerSeries}" Stroke="Green" LineSmoothness="1"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis Labels="{Binding LabelSeries}" FontSize="15" Foreground="Black" ShowLabels="False"> <lvc:Axis.Separator> <lvc:Separator Step="1"/> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisX> </lvc:CartesianChart> </Grid> </Grid> <GroupBox Header="Alarm" Grid.Row="1"> <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <WrapPanel Grid.Row="0" Grid.Column="0" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=AutoTuning, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Auto Tuning" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="0" Grid.Column="1" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=Fan, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Fan" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="0" Grid.Column="2" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=RemoteOff, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Remote Off" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="1" Grid.Column="0" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=AutoTuning, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Ext Sensor Failure" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="1" Grid.Column="1" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=HighTempCutoff, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="High Temp Cuteoff" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="1" Grid.Column="2" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=LowTempCutoff, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Low Temp Cuteoff" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="2" Grid.Column="0" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=OutputFailure, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Output Failure" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="2" Grid.Column="1" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=IntSensorFailure, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Int Sensor Failure" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="2" Grid.Column="2" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=TempLimitWarn, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Temp Limit Warn" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="3" Grid.Column="0" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=PowerFailure, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Power Failure" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="3" Grid.Column="1" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=Leak, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Leak" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> <WrapPanel Grid.Row="3" Grid.Column="2" > <Ellipse Margin="5,0" Width="16" Height="16" Fill="{Binding ElementName=self,Path=Thermostat, Converter={StaticResource boolToRedColor}}" Stroke="Silver"/> <Label Height="40" Content="Thermostat" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/> </WrapPanel> </Grid> </GroupBox> </Grid> </GroupBox> </UserControl>