diff options
33 files changed, 1519 insertions, 87 deletions
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf Binary files differindex bfed91e3b..e2f8dbfcc 100644 --- a/Software/DB/Tango.mdf +++ b/Software/DB/Tango.mdf diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf Binary files differindex 104430f7a..51a797193 100644 --- a/Software/DB/Tango_log.ldf +++ b/Software/DB/Tango_log.ldf diff --git a/Software/Graphics/balance.png b/Software/Graphics/balance.png Binary files differnew file mode 100644 index 000000000..46255b3ed --- /dev/null +++ b/Software/Graphics/balance.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj index 189c7ee0d..fa567697d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj @@ -134,6 +134,7 @@ <Compile Include="ViewModels\MultiComboVM.cs" /> <Compile Include="ViewModels\OrganizationsViewVM.cs" /> <Compile Include="ViewModels\PermissionsViewVM.cs" /> + <Compile Include="ViewModels\PidControlsViewVM.cs" /> <Compile Include="ViewModels\ProcessParametersTablesViewVM.cs" /> <Compile Include="ViewModels\ProcessParametersTablesGroupsViewVM.cs" /> <Compile Include="ViewModels\RmlsViewVM.cs" /> @@ -148,9 +149,15 @@ <Compile Include="Views\DBViews\ActionTypeView.xaml.cs"> <DependentUpon>ActionTypeView.xaml</DependentUpon> </Compile> + <Compile Include="Views\DBViews\PidControlsView.xaml.cs"> + <DependentUpon>PidControlsView.xaml</DependentUpon> + </Compile> <Compile Include="Views\DBViews\DancerTypesView.xaml.cs"> <DependentUpon>DancerTypesView.xaml</DependentUpon> </Compile> + <Compile Include="Views\DBViews\PidControlView.xaml.cs"> + <DependentUpon>PidControlView.xaml</DependentUpon> + </Compile> <Compile Include="Views\DBViews\DancerTypeView.xaml.cs"> <DependentUpon>DancerTypeView.xaml</DependentUpon> </Compile> @@ -402,10 +409,18 @@ <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page> + <Page Include="Views\DBViews\PidControlsView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="Views\DBViews\DancerTypesView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page> + <Page Include="Views\DBViews\PidControlView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="Views\DBViews\DancerTypeView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs index 13fd85122..0889be54e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs @@ -67,6 +67,8 @@ namespace Tango.MachineStudio.DB SimpleIoc.Default.Register<DancerTypesViewVM>(); SimpleIoc.Default.Register<HardwareVersionsDancerTypeViewVM>(); SimpleIoc.Default.Register<HardwareVersionsMotorTypesViewVM>(); + + SimpleIoc.Default.Register<PidControlsViewVM>(); } public static MainViewVM MainViewVM @@ -404,5 +406,13 @@ namespace Tango.MachineStudio.DB return ServiceLocator.Current.GetInstance<HardwareVersionsMotorTypesViewVM>(); } } + + public static PidControlsViewVM PidControlsViewVM + { + get + { + return ServiceLocator.Current.GetInstance<PidControlsViewVM>(); + } + } } }
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/PidControlsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/PidControlsViewVM.cs new file mode 100644 index 000000000..7fe342da5 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/PidControlsViewVM.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Integration.Observables; +using Tango.MachineStudio.Common.Notifications; +using Tango.SharedUI; + +namespace Tango.MachineStudio.DB.ViewModels +{ + public class PidControlsViewVM : DbTableViewModel<PidControl> + { + public PidControlsViewVM(INotificationProvider notification) : base(notification) + { + + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlView.xaml new file mode 100644 index 000000000..5459fbbff --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlView.xaml @@ -0,0 +1,73 @@ +<UserControl x:Class="Tango.MachineStudio.DB.Views.DBViews.PidControlView" + 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:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:controls="clr-namespace:Tango.MachineStudio.DB.Controls" + xmlns:colorPicker="clr-namespace:Tango;assembly=Tango.ColorPicker" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:vm="clr-namespace:Tango.MachineStudio.DB.ViewModels" + xmlns:local="clr-namespace:Tango.MachineStudio.DB.Views.DBViews" + mc:Ignorable="d" + d:DesignHeight="400" d:DesignWidth="300" d:DataContext="{d:DesignInstance Type=vm:PidControlsViewVM, IsDesignTimeCreatable=False}"> + + <Grid> + <controls:TableGrid> + <TextBlock Text="ID:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.ID}" IsReadOnly="True"></TextBox> + <TextBlock Text="GUID:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.Guid}" IsReadOnly="True"></TextBox> + <TextBlock Text="Last Updated:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.LastUpdated}" IsReadOnly="True"></TextBox> + <TextBlock Text="Code:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding EditEntity.Code,Mode=TwoWay}"></mahapps:NumericUpDown> + <TextBlock Text="Name:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.Name,Mode=TwoWay}"></TextBox> + <TextBlock Text="Description:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.Description,Mode=TwoWay}"></TextBox> + + <TextBlock Text="Output Proportional Power Limit:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.OutputProportionalPowerLimit,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Output Proportional Band:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.OutputProportionalBand,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Integral Time:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.IntegralTime,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Derivative Time:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.DerivativeTime,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Sensor Correction Adjustment:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.SensorCorrectionAdjustment,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Sensor Min Value:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.SensorMinValue,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Sensor Max Value:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.SensorMaxValue,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="SetPoint Ramp Rateor Soft Start Ramp:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.SetPointRampRateorSoftStartRamp,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Set Point Control Output Rate:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.SetPointControlOutputRate,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Control Output Type:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.ControlOutputType,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="SSR Control Output Type:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.SsrControlOutputType,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Output On/Off Hysteresis Value:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.OutputOnOffHysteresisValue,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="Process Variable Sampling Rate:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.ProcessVariableSamplingRate,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + + <TextBlock Text="PV Input Filter Factor Mode:" FontWeight="Bold"></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" Value="{Binding EditEntity.PvInputFilterFactorMode,Mode=TwoWay}" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown> + </controls:TableGrid> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlView.xaml.cs new file mode 100644 index 000000000..df45fb1ff --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.MachineStudio.DB.Views.DBViews +{ + /// <summary> + /// Interaction logic for MachineView.xaml + /// </summary> + public partial class PidControlView : UserControl + { + public PidControlView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlsView.xaml new file mode 100644 index 000000000..0a7d6d4df --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlsView.xaml @@ -0,0 +1,48 @@ +<UserControl x:Class="Tango.MachineStudio.DB.Views.DBViews.PidControlsView" + 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:global="clr-namespace:Tango.MachineStudio.DB" + xmlns:controls="clr-namespace:Tango.MachineStudio.DB.Controls" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:observables="clr-namespace:Tango.Integration.Observables;assembly=Tango.Integration" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + mc:Ignorable="d" + d:DesignHeight="720" d:DesignWidth="1280" Background="White" d:DataContext="{d:DesignInstance Type=observables:PidControl, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.PidControlsViewVM}"> + + <UserControl.Resources> + <converters:BooleanToYesNoConverter x:Key="BooleanToYesNoConverter" /> + </UserControl.Resources> + + <Grid> + <controls:DbTableView> + <DataGrid Background="Transparent" ItemsSource="{Binding Adapter.PidControlsViewSource}" SelectedItem="{Binding SelectedEntity}" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" IsReadOnly="True"> + <DataGrid.Columns> + <DataGridTextColumn Header="ID" Binding="{Binding ID}"></DataGridTextColumn> + <DataGridTextColumn Header="GUID" Binding="{Binding Guid}"></DataGridTextColumn> + <DataGridTextColumn Header="Code" Binding="{Binding Code}"></DataGridTextColumn> + <DataGridTextColumn Header="Name" Binding="{Binding Name}"></DataGridTextColumn> + + <DataGridTextColumn Header="Description" Binding="{Binding Description}"></DataGridTextColumn> + <DataGridTextColumn Header="Output Proportional Power Limit" Binding="{Binding OutputProportionalPowerLimit}"></DataGridTextColumn> + <DataGridTextColumn Header="Output Proportional Band" Binding="{Binding OutputProportionalBand}"></DataGridTextColumn> + + <DataGridTextColumn Header="Integral Time" Binding="{Binding IntegralTime}"></DataGridTextColumn> + <DataGridTextColumn Header="Derivative Time" Binding="{Binding DerivativeTime}"></DataGridTextColumn> + <DataGridTextColumn Header="Sensor Correction Adjustment" Binding="{Binding SensorCorrectionAdjustment}"></DataGridTextColumn> + <DataGridTextColumn Header="Sensor Min Value" Binding="{Binding SensorMinValue}"></DataGridTextColumn> + <DataGridTextColumn Header="Sensor Max Value" Binding="{Binding SensorMaxValue}"></DataGridTextColumn> + <DataGridTextColumn Header="SetPoint Ramp Rateor Soft Start Ramp" Binding="{Binding SetPointRampRateorSoftStartRamp}"></DataGridTextColumn> + <DataGridTextColumn Header="Set Point Control Output Rate" Binding="{Binding SetPointControlOutputRate}"></DataGridTextColumn> + <DataGridTextColumn Header="Control Output Type" Binding="{Binding ControlOutputType}"></DataGridTextColumn> + + <DataGridTextColumn Header="SSR Control Output Type" Binding="{Binding SsrControlOutputType}"></DataGridTextColumn> + <DataGridTextColumn Header="Output On/Off Hysteresis Value" Binding="{Binding OutputOnOffHysteresisValue}"></DataGridTextColumn> + <DataGridTextColumn Header="Process Variable Sampling Rate" Binding="{Binding ProcessVariableSamplingRate}"></DataGridTextColumn> + <DataGridTextColumn Header="PV Input Filter Factor Mode" Binding="{Binding PvInputFilterFactorMode}"></DataGridTextColumn> + </DataGrid.Columns> + </DataGrid> + </controls:DbTableView> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlsView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlsView.xaml.cs new file mode 100644 index 000000000..9ac44d396 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/PidControlsView.xaml.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.MachineStudio.DB.CustomAttributes; +using Tango.MachineStudio.DB.Managers; +using Tango.SharedUI.Controls; + +namespace Tango.MachineStudio.DB.Views.DBViews +{ + /// <summary> + /// Interaction logic for MachinesView.xaml + /// </summary> + [DBView] + public partial class PidControlsView : UserControl + { + public PidControlsView() : base() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/balance.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/balance.png Binary files differnew file mode 100644 index 000000000..46255b3ed --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/balance.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj index 15186d65b..12c32df08 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj @@ -155,5 +155,8 @@ <ItemGroup> <Resource Include="Images\compass.png" /> </ItemGroup> + <ItemGroup> + <Resource Include="Images\balance.png" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs index 4becc0b04..0da894aba 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs @@ -4,6 +4,7 @@ using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core.Commands; using Tango.Integration.Observables; using Tango.SharedUI; @@ -46,10 +47,20 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels set { _currentVersionDancerTypes = value; RaisePropertyChangedAuto(); } } + private ObservableCollection<PidControl> _currentVersionPidControls; + public ObservableCollection<PidControl> CurrentVersionPidControls + { + get { return _currentVersionPidControls; } + set { _currentVersionPidControls = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand SaveCommand { get; set; } public MainViewVM() { Adapter = ObservablesEntitiesAdapter.Instance; + + SaveCommand = new RelayCommand(Save); } private void OnSelectedVersionChanged() @@ -57,6 +68,7 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels CurrentVersion = SelectedVersion.Clone(); CurrentVersionDancerTypes = CurrentVersion.HardwareVersionsDancerTypes.Select(x => x.DancerType).ToObservableCollection(); CurrentVersionMotorTypes = CurrentVersion.HardwareVersionsMotorTypes.Select(x => x.MotorType).ToObservableCollection(); + CurrentVersionPidControls = CurrentVersion.HardwareVersionsPidControls.Select(x => x.PidControl).ToObservableCollection(); } public void OnRemoveDancer(DancerType dancerType) @@ -69,14 +81,41 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels CurrentVersionMotorTypes.Remove(motorType); } + public void OnRemovePidControl(PidControl pidControl) + { + CurrentVersionPidControls.Remove(pidControl); + } + public void OnMotorDrop(MotorType motorType) { - CurrentVersionMotorTypes.Add(motorType); + if (!CurrentVersionMotorTypes.Contains(motorType)) + { + CurrentVersionMotorTypes.Add(motorType); + } } public void OnDropDancer(DancerType dancerType) { - CurrentVersionDancerTypes.Add(dancerType); + if (!CurrentVersionDancerTypes.Contains(dancerType)) + { + CurrentVersionDancerTypes.Add(dancerType); + } + } + + public void OnDropPidControl(PidControl pidControl) + { + if (!CurrentVersionPidControls.Contains(pidControl)) + { + CurrentVersionPidControls.Add(pidControl); + } + } + + private void Save() + { + if (CurrentVersion != null) + { + + } } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml index 77ace3e63..e73ba2a1f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml @@ -60,10 +60,10 @@ </Image> <Canvas ClipToBounds="False" x:Name="canvas"> - <Border BorderThickness="2" BorderBrush="Gray" CornerRadius="0 0 20 20" Width="707" Height="132" Canvas.Left="50" Canvas.Top="378" Background="#ABFFFFFF"> + <Border BorderThickness="1" BorderBrush="Gray" CornerRadius="0 0 20 20" Width="707" Height="132" Canvas.Left="50" Canvas.Top="378" Background="#ABFFFFFF"> <Grid Style="{StaticResource droppableGrid}" dragAndDrop:DragAndDropService.Drop="OnDancerDrop"> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Silver" FontSize="20">DRAG & DROP DANCERS</TextBlock> - <ListBox x:Name="listDancers" ItemsSource="{Binding CurrentVersionDancerTypes}" Margin="0 5 0 0" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"> + <ListBox x:Name="listDancers" ItemContainerStyle="{StaticResource basicListBoxItem}" ItemsSource="{Binding CurrentVersionDancerTypes}" Margin="0 5 0 0" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Orientation="Horizontal" /> @@ -72,22 +72,23 @@ <ListBox.ItemTemplate> <DataTemplate DataType="{x:Type observables:DancerType}"> <Grid Style="{StaticResource draggableGrid}"> - <Grid.ToolTip> - <Border Padding="2"> - <ItemsControl ItemsSource="{Binding Parameters}"> - <ItemsControl.ItemTemplate> - <DataTemplate> - <TextBlock Margin="2"> - <Run Text="{Binding Name}" FontWeight="SemiBold"></Run> - : - <Run Text="{Binding Value}" FontStyle="Italic"></Run> - </TextBlock> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> - </Border> - </Grid.ToolTip> - <Border BorderBrush="Gray" Width="100" Height="100" BorderThickness="1" Background="White" Padding="2" IsHitTestVisible="False"> + <Border Margin="5" CornerRadius="5" Width="100" Height="100" BorderThickness="1" Padding="2" IsHitTestVisible="False"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="BorderBrush" Value="Silver"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> + <Setter Property="BorderBrush" Value="{StaticResource AccentColorBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Border.Style> + <Border.Background> + <LinearGradientBrush> + <GradientStop Color="White"/> + <GradientStop Color="#FFD6D6D6" Offset="1"/> + </LinearGradientBrush> + </Border.Background> <Grid> <StackPanel> <Image Source="../Images/compass.png" Width="32" Margin="5" /> @@ -102,10 +103,10 @@ </Grid> </Border> - <Border BorderThickness="2 2 2 0" BorderBrush="Gray" Width="576" Height="157" Canvas.Left="114" Canvas.Top="224" Background="#ABFFFFFF"> + <Border BorderThickness="1 1 1 0" BorderBrush="Gray" Width="576" Height="157" Canvas.Left="114" Canvas.Top="224" Background="#ABFFFFFF"> <Grid Style="{StaticResource droppableGrid}" dragAndDrop:DragAndDropService.Drop="OnMotorsDrop"> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Silver" FontSize="20">DRAG & DROP MOTORS</TextBlock> - <ListBox x:Name="listMotors" ItemsSource="{Binding CurrentVersionMotorTypes}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"> + <ListBox x:Name="listMotors" ItemContainerStyle="{StaticResource basicListBoxItem}" ItemsSource="{Binding CurrentVersionMotorTypes}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Orientation="Horizontal" /> @@ -129,7 +130,23 @@ </ItemsControl> </Border> </Grid.ToolTip> - <Border BorderBrush="Gray" Height="25" IsHitTestVisible="False" MaxWidth="100" BorderThickness="1" Background="White" Padding="2"> + <Border Margin="4" CornerRadius="3" Height="25" IsHitTestVisible="False" MaxWidth="100" BorderThickness="1" Padding="5 2 9 2"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="BorderBrush" Value="Silver"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> + <Setter Property="BorderBrush" Value="{StaticResource AccentColorBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Border.Style> + <Border.Background> + <LinearGradientBrush> + <GradientStop Color="White"/> + <GradientStop Color="#FFD6D6D6" Offset="1"/> + </LinearGradientBrush> + </Border.Background> <Grid> <StackPanel Orientation="Horizontal"> <Image Source="../Images/engine.png" Width="16" /> @@ -143,6 +160,49 @@ </ListBox> </Grid> </Border> + + <Border BorderThickness="1 1 1 0" BorderBrush="Gray" Width="545" Height="120" Canvas.Left="130" Canvas.Top="105" Background="#ABFFFFFF" CornerRadius="20 20 0 0" Padding="5"> + <Grid Style="{StaticResource droppableGrid}" dragAndDrop:DragAndDropService.Drop="OnPidControlDrop"> + <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Silver" FontSize="20">DRAG & DROP PID CONTROLS</TextBlock> + <ListBox x:Name="listPid" ItemContainerStyle="{StaticResource basicListBoxItem}" ItemsSource="{Binding CurrentVersionPidControls}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"> + <ListBox.ItemsPanel> + <ItemsPanelTemplate> + <WrapPanel Orientation="Horizontal" /> + </ItemsPanelTemplate> + </ListBox.ItemsPanel> + <ListBox.ItemTemplate> + <DataTemplate DataType="{x:Type observables:PidControl}"> + <Grid Style="{StaticResource draggableGrid}"> + <Border Margin="4" CornerRadius="3" Height="25" IsHitTestVisible="False" MaxWidth="100" BorderThickness="1" Padding="5 2 9 2"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="BorderBrush" Value="Silver"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> + <Setter Property="BorderBrush" Value="{StaticResource AccentColorBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Border.Style> + <Border.Background> + <LinearGradientBrush> + <GradientStop Color="White"/> + <GradientStop Color="#FFD6D6D6" Offset="1"/> + </LinearGradientBrush> + </Border.Background> + <Grid> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/balance.png" Width="16" /> + <TextBlock FontSize="8" Margin="5 0 0 0" TextTrimming="CharacterEllipsis" Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> + </StackPanel> + </Grid> + </Border> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Grid> + </Border> </Canvas> </Grid> </Viewbox> @@ -209,7 +269,11 @@ </ListBox.ItemTemplate> </ListBox> </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + </StackPanel> + </materialDesign:Card> + + <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> + <StackPanel> <Expander HorizontalAlignment="Stretch" Header="Dancers"> <ListBox ItemsSource="{Binding Adapter.DancerTypes}" HorizontalContentAlignment="Stretch"> <ListBox.ItemContainerStyle> @@ -240,8 +304,38 @@ <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> <StackPanel> + <Expander HorizontalAlignment="Stretch" Header="PID Controls"> + <ListBox ItemsSource="{Binding Adapter.PidControls}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/balance.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False" VerticalAlignment="Center"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + </StackPanel> + </materialDesign:Card> + + <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> + <StackPanel> <Grid> - <Expander HorizontalAlignment="Stretch" Header="Selected Motor Properties"> + <Expander HorizontalAlignment="Stretch" Header="Motor Properties"> <editors:ParameterizedEditor ParameterizedObject="{Binding ElementName=listMotors,Path=SelectedItem}" Padding="10"> <editors:ParameterizedEditor.ItemsPanel> <ItemsPanelTemplate> @@ -281,7 +375,7 @@ <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> <StackPanel> <Grid> - <Expander HorizontalAlignment="Stretch" Header="Selected Dancer Properties"> + <Expander HorizontalAlignment="Stretch" Header="Dancer Properties"> <editors:ParameterizedEditor ParameterizedObject="{Binding ElementName=listDancers,Path=SelectedItem}" Padding="10"> <editors:ParameterizedEditor.ItemsPanel> <ItemsPanelTemplate> @@ -317,11 +411,51 @@ </Grid> </StackPanel> </materialDesign:Card> + + <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> + <StackPanel> + <Grid> + <Expander HorizontalAlignment="Stretch" Header="PID Control Properties"> + <editors:ParameterizedEditor ParameterizedObject="{Binding ElementName=listPid,Path=SelectedItem}" Padding="10"> + <editors:ParameterizedEditor.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel></StackPanel> + </ItemsPanelTemplate> + </editors:ParameterizedEditor.ItemsPanel> + <editors:ParameterizedEditor.DoubleTemplate> + <DataTemplate> + <DockPanel> + <mahApps:NumericUpDown DockPanel.Dock="Right" Background="Transparent" BorderThickness="0 0 0 0" Value="{Binding Value,UpdateSourceTrigger=PropertyChanged}" HasDecimals="True" HorizontalContentAlignment="Center" Width="100" /> + <TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> + </DockPanel> + </DataTemplate> + </editors:ParameterizedEditor.DoubleTemplate> + <editors:ParameterizedEditor.Int32Template> + <DataTemplate> + <DockPanel> + <mahApps:NumericUpDown DockPanel.Dock="Right" Background="Transparent" BorderThickness="0 0 0 0" Value="{Binding Value,Converter={StaticResource DoubleToIntConverter},UpdateSourceTrigger=PropertyChanged}" HasDecimals="False" HorizontalContentAlignment="Center" Width="100" /> + <TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> + </DockPanel> + </DataTemplate> + </editors:ParameterizedEditor.Int32Template> + <editors:ParameterizedEditor.BooleanTemplate> + <DataTemplate> + <DockPanel Margin="0 5 0 0"> + <ToggleButton DockPanel.Dock="Right" Width="100" IsChecked="{Binding Value}" HorizontalAlignment="Right" /> + <TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock> + </DockPanel> + </DataTemplate> + </editors:ParameterizedEditor.BooleanTemplate> + </editors:ParameterizedEditor> + </Expander> + </Grid> + </StackPanel> + </materialDesign:Card> </StackPanel> </Grid> </ScrollViewer> - <Grid Grid.Row="1" Margin="10"> + <Grid Grid.Row="1" Margin="10 0 10 10"> <Button Height="Auto" Command="{Binding SaveCommand}" Margin="0 0 0 0"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Width="20" Height="20" VerticalAlignment="Center" Kind="ContentSaveSettings"></materialDesign:PackIcon> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml.cs index b06d3bd27..d18a8ac71 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml.cs @@ -57,6 +57,14 @@ namespace Tango.MachineStudio.HardwareDesigner.Views } } + private void OnPidControlDrop(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is PidControl) + { + _vm.OnDropPidControl(e.Draggable.DataContext as PidControl); + } + } + private void OnTrashDrop(object sender, DropEventArgs e) { if (e.Draggable.DataContext is MotorType) @@ -67,6 +75,10 @@ namespace Tango.MachineStudio.HardwareDesigner.Views { _vm.OnRemoveDancer(e.Draggable.DataContext as DancerType); } + else if (e.Draggable.DataContext is PidControl) + { + _vm.OnRemovePidControl(e.Draggable.DataContext as PidControl); + } } } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs index c3fddde5c..6e5371f37 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs @@ -20,6 +20,7 @@ namespace Tango.DAL.Remote.DB this.CONFIGURATIONS = new HashSet<CONFIGURATION>(); this.HARDWARE_VERSIONS_DANCER_TYPES = new HashSet<HARDWARE_VERSIONS_DANCER_TYPES>(); this.HARDWARE_VERSIONS_MOTOR_TYPES = new HashSet<HARDWARE_VERSIONS_MOTOR_TYPES>(); + this.HARDWARE_VERSIONS_PID_CONTROLS = new HashSet<HARDWARE_VERSIONS_PID_CONTROLS>(); } public int ID { get; set; } @@ -34,5 +35,7 @@ namespace Tango.DAL.Remote.DB public virtual ICollection<HARDWARE_VERSIONS_DANCER_TYPES> HARDWARE_VERSIONS_DANCER_TYPES { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<HARDWARE_VERSIONS_MOTOR_TYPES> HARDWARE_VERSIONS_MOTOR_TYPES { get; set; } + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] + public virtual ICollection<HARDWARE_VERSIONS_PID_CONTROLS> HARDWARE_VERSIONS_PID_CONTROLS { get; set; } } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS_PID_CONTROLS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS_PID_CONTROLS.cs new file mode 100644 index 000000000..2f70cf1d0 --- /dev/null +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS_PID_CONTROLS.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.DAL.Remote.DB +{ + using System; + using System.Collections.Generic; + + public partial class HARDWARE_VERSIONS_PID_CONTROLS + { + public int ID { get; set; } + public string GUID { get; set; } + public System.DateTime LAST_UPDATED { get; set; } + public string HARDWARE_VERSION_GUID { get; set; } + public string PID_CONTROL_GUID { get; set; } + + public virtual HARDWARE_VERSIONS HARDWARE_VERSIONS { get; set; } + public virtual PID_CONTROLS PID_CONTROLS { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/PID_CONTROLS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/PID_CONTROLS.cs new file mode 100644 index 000000000..2b98ebad3 --- /dev/null +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/PID_CONTROLS.cs @@ -0,0 +1,47 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.DAL.Remote.DB +{ + using System; + using System.Collections.Generic; + + public partial class PID_CONTROLS + { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public PID_CONTROLS() + { + this.HARDWARE_VERSIONS_PID_CONTROLS = new HashSet<HARDWARE_VERSIONS_PID_CONTROLS>(); + } + + public int ID { get; set; } + public string GUID { get; set; } + public System.DateTime LAST_UPDATED { get; set; } + public int CODE { get; set; } + public string NAME { get; set; } + public string DESCRIPTION { get; set; } + public int OUTPUT_PROPORTIONAL_POWER_LIMIT { get; set; } + public int OUTPUT_PROPORTIONAL_BAND { get; set; } + public int INTEGRAL_TIME { get; set; } + public int DERIVATIVE_TIME { get; set; } + public int SENSOR_CORRECTION_ADJUSTMENT { get; set; } + public int SENSOR_MIN_VALUE { get; set; } + public int SENSOR_MAX_VALUE { get; set; } + public int SET_POINT_RAMP_RATEOR_SOFT_START_RAMP { get; set; } + public int SET_POINT_CONTROL_OUTPUT_RATE { get; set; } + public int CONTROL_OUTPUT_TYPE { get; set; } + public int SSR_CONTROL_OUTPUT_TYPE { get; set; } + public int OUTPUT_ON_OFF_HYSTERESIS_VALUE { get; set; } + public int PROCESS_VARIABLE_SAMPLING_RATE { get; set; } + public int PV_INPUT_FILTER_FACTOR_MODE { get; set; } + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] + public virtual ICollection<HARDWARE_VERSIONS_PID_CONTROLS> HARDWARE_VERSIONS_PID_CONTROLS { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs index 5f73f3e16..f5eb58da6 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs @@ -50,6 +50,7 @@ namespace Tango.DAL.Remote.DB public virtual DbSet<HARDWARE_VERSIONS> HARDWARE_VERSIONS { get; set; } public virtual DbSet<HARDWARE_VERSIONS_DANCER_TYPES> HARDWARE_VERSIONS_DANCER_TYPES { get; set; } public virtual DbSet<HARDWARE_VERSIONS_MOTOR_TYPES> HARDWARE_VERSIONS_MOTOR_TYPES { get; set; } + public virtual DbSet<HARDWARE_VERSIONS_PID_CONTROLS> HARDWARE_VERSIONS_PID_CONTROLS { get; set; } public virtual DbSet<IDS_PACK_FORMULAS> IDS_PACK_FORMULAS { get; set; } public virtual DbSet<IDS_PACKS> IDS_PACKS { get; set; } public virtual DbSet<JOB_RUNS> JOB_RUNS { get; set; } @@ -70,6 +71,7 @@ namespace Tango.DAL.Remote.DB public virtual DbSet<MOTOR_TYPES> MOTOR_TYPES { get; set; } public virtual DbSet<ORGANIZATION> ORGANIZATIONS { get; set; } public virtual DbSet<PERMISSION> PERMISSIONS { get; set; } + public virtual DbSet<PID_CONTROLS> PID_CONTROLS { get; set; } public virtual DbSet<PROCESS_PARAMETERS_TABLES> PROCESS_PARAMETERS_TABLES { get; set; } public virtual DbSet<PROCESS_PARAMETERS_TABLES_GROUPS> PROCESS_PARAMETERS_TABLES_GROUPS { get; set; } public virtual DbSet<RML> RMLS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index 956538b65..2c57cb744 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -343,6 +343,16 @@ <Property Name="HARDWARE_VERSION_GUID" Type="varchar" MaxLength="36" Nullable="false" /> <Property Name="MOTOR_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" /> </EntityType> + <EntityType Name="HARDWARE_VERSIONS_PID_CONTROLS"> + <Key> + <PropertyRef Name="GUID" /> + </Key> + <Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" /> + <Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" /> + <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" /> + <Property Name="HARDWARE_VERSION_GUID" Type="varchar" MaxLength="36" Nullable="false" /> + <Property Name="PID_CONTROL_GUID" Type="varchar" MaxLength="36" Nullable="false" /> + </EntityType> <EntityType Name="IDS_PACK_FORMULAS"> <Key> <PropertyRef Name="GUID" /> @@ -593,6 +603,31 @@ <Property Name="NAME" Type="nvarchar" MaxLength="30" Nullable="false" /> <Property Name="DESCRIPTION" Type="nvarchar" MaxLength="100" Nullable="false" /> </EntityType> + <EntityType Name="PID_CONTROLS"> + <Key> + <PropertyRef Name="GUID" /> + </Key> + <Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" /> + <Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" /> + <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" /> + <Property Name="CODE" Type="int" Nullable="false" /> + <Property Name="NAME" Type="varchar" MaxLength="100" Nullable="false" /> + <Property Name="DESCRIPTION" Type="varchar" MaxLength="100" Nullable="false" /> + <Property Name="OUTPUT_PROPORTIONAL_POWER_LIMIT" Type="int" Nullable="false" /> + <Property Name="OUTPUT_PROPORTIONAL_BAND" Type="int" Nullable="false" /> + <Property Name="INTEGRAL_TIME" Type="int" Nullable="false" /> + <Property Name="DERIVATIVE_TIME" Type="int" Nullable="false" /> + <Property Name="SENSOR_CORRECTION_ADJUSTMENT" Type="int" Nullable="false" /> + <Property Name="SENSOR_MIN_VALUE" Type="int" Nullable="false" /> + <Property Name="SENSOR_MAX_VALUE" Type="int" Nullable="false" /> + <Property Name="SET_POINT_RAMP_RATEOR_SOFT_START_RAMP" Type="int" Nullable="false" /> + <Property Name="SET_POINT_CONTROL_OUTPUT_RATE" Type="int" Nullable="false" /> + <Property Name="CONTROL_OUTPUT_TYPE" Type="int" Nullable="false" /> + <Property Name="SSR_CONTROL_OUTPUT_TYPE" Type="int" Nullable="false" /> + <Property Name="OUTPUT_ON_OFF_HYSTERESIS_VALUE" Type="int" Nullable="false" /> + <Property Name="PROCESS_VARIABLE_SAMPLING_RATE" Type="int" Nullable="false" /> + <Property Name="PV_INPUT_FILTER_FACTOR_MODE" Type="int" Nullable="false" /> + </EntityType> <EntityType Name="PROCESS_PARAMETERS_TABLES"> <Key> <PropertyRef Name="GUID" /> @@ -1071,6 +1106,32 @@ </Dependent> </ReferentialConstraint> </Association> + <Association Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS"> + <End Role="HARDWARE_VERSIONS" Type="Self.HARDWARE_VERSIONS" Multiplicity="1" /> + <End Role="HARDWARE_VERSIONS_PID_CONTROLS" Type="Self.HARDWARE_VERSIONS_PID_CONTROLS" Multiplicity="*" /> + <ReferentialConstraint> + <Principal Role="HARDWARE_VERSIONS"> + <PropertyRef Name="GUID" /> + </Principal> + <Dependent Role="HARDWARE_VERSIONS_PID_CONTROLS"> + <PropertyRef Name="HARDWARE_VERSION_GUID" /> + </Dependent> + </ReferentialConstraint> + </Association> + <Association Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS"> + <End Role="PID_CONTROLS" Type="Self.PID_CONTROLS" Multiplicity="1"> + <OnDelete Action="Cascade" /> + </End> + <End Role="HARDWARE_VERSIONS_PID_CONTROLS" Type="Self.HARDWARE_VERSIONS_PID_CONTROLS" Multiplicity="*" /> + <ReferentialConstraint> + <Principal Role="PID_CONTROLS"> + <PropertyRef Name="GUID" /> + </Principal> + <Dependent Role="HARDWARE_VERSIONS_PID_CONTROLS"> + <PropertyRef Name="PID_CONTROL_GUID" /> + </Dependent> + </ReferentialConstraint> + </Association> <Association Name="FK_IDS_PACKS_CARTRIDGE_TYPES"> <End Role="CARTRIDGE_TYPES" Type="Self.CARTRIDGE_TYPES" Multiplicity="1" /> <End Role="IDS_PACKS" Type="Self.IDS_PACKS" Multiplicity="*" /> @@ -1619,6 +1680,7 @@ <EntitySet Name="HARDWARE_VERSIONS" EntityType="Self.HARDWARE_VERSIONS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="HARDWARE_VERSIONS_DANCER_TYPES" EntityType="Self.HARDWARE_VERSIONS_DANCER_TYPES" Schema="dbo" store:Type="Tables" /> <EntitySet Name="HARDWARE_VERSIONS_MOTOR_TYPES" EntityType="Self.HARDWARE_VERSIONS_MOTOR_TYPES" Schema="dbo" store:Type="Tables" /> + <EntitySet Name="HARDWARE_VERSIONS_PID_CONTROLS" EntityType="Self.HARDWARE_VERSIONS_PID_CONTROLS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="IDS_PACK_FORMULAS" EntityType="Self.IDS_PACK_FORMULAS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="IDS_PACKS" EntityType="Self.IDS_PACKS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="JOB_RUNS" EntityType="Self.JOB_RUNS" Schema="dbo" store:Type="Tables" /> @@ -1639,6 +1701,7 @@ <EntitySet Name="MOTOR_TYPES" EntityType="Self.MOTOR_TYPES" Schema="dbo" store:Type="Tables" /> <EntitySet Name="ORGANIZATIONS" EntityType="Self.ORGANIZATIONS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="PERMISSIONS" EntityType="Self.PERMISSIONS" Schema="dbo" store:Type="Tables" /> + <EntitySet Name="PID_CONTROLS" EntityType="Self.PID_CONTROLS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="PROCESS_PARAMETERS_TABLES" EntityType="Self.PROCESS_PARAMETERS_TABLES" Schema="dbo" store:Type="Tables" /> <EntitySet Name="PROCESS_PARAMETERS_TABLES_GROUPS" EntityType="Self.PROCESS_PARAMETERS_TABLES_GROUPS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="RMLS" EntityType="Self.RMLS" Schema="dbo" store:Type="Tables" /> @@ -1739,6 +1802,14 @@ <End Role="MOTOR_TYPES" EntitySet="MOTOR_TYPES" /> <End Role="HARDWARE_VERSIONS_MOTOR_TYPES" EntitySet="HARDWARE_VERSIONS_MOTOR_TYPES" /> </AssociationSet> + <AssociationSet Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS" Association="Self.FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS"> + <End Role="HARDWARE_VERSIONS" EntitySet="HARDWARE_VERSIONS" /> + <End Role="HARDWARE_VERSIONS_PID_CONTROLS" EntitySet="HARDWARE_VERSIONS_PID_CONTROLS" /> + </AssociationSet> + <AssociationSet Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS" Association="Self.FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS"> + <End Role="PID_CONTROLS" EntitySet="PID_CONTROLS" /> + <End Role="HARDWARE_VERSIONS_PID_CONTROLS" EntitySet="HARDWARE_VERSIONS_PID_CONTROLS" /> + </AssociationSet> <AssociationSet Name="FK_IDS_PACKS_CARTRIDGE_TYPES" Association="Self.FK_IDS_PACKS_CARTRIDGE_TYPES"> <End Role="CARTRIDGE_TYPES" EntitySet="CARTRIDGE_TYPES" /> <End Role="IDS_PACKS" EntitySet="IDS_PACKS" /> @@ -1934,6 +2005,7 @@ <EntitySet Name="HARDWARE_VERSIONS" EntityType="RemoteModel.HARDWARE_VERSIONS" /> <EntitySet Name="HARDWARE_VERSIONS_DANCER_TYPES" EntityType="RemoteModel.HARDWARE_VERSIONS_DANCER_TYPES" /> <EntitySet Name="HARDWARE_VERSIONS_MOTOR_TYPES" EntityType="RemoteModel.HARDWARE_VERSIONS_MOTOR_TYPES" /> + <EntitySet Name="HARDWARE_VERSIONS_PID_CONTROLS" EntityType="RemoteModel.HARDWARE_VERSIONS_PID_CONTROLS" /> <EntitySet Name="IDS_PACK_FORMULAS" EntityType="RemoteModel.IDS_PACK_FORMULAS" /> <EntitySet Name="IDS_PACKS" EntityType="RemoteModel.IDS_PACKS" /> <EntitySet Name="JOB_RUNS" EntityType="RemoteModel.JOB_RUNS" /> @@ -1954,6 +2026,7 @@ <EntitySet Name="MOTOR_TYPES" EntityType="RemoteModel.MOTOR_TYPES" /> <EntitySet Name="ORGANIZATIONS" EntityType="RemoteModel.ORGANIZATION" /> <EntitySet Name="PERMISSIONS" EntityType="RemoteModel.PERMISSION" /> + <EntitySet Name="PID_CONTROLS" EntityType="RemoteModel.PID_CONTROLS" /> <EntitySet Name="PROCESS_PARAMETERS_TABLES" EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" /> <EntitySet Name="PROCESS_PARAMETERS_TABLES_GROUPS" EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" /> <EntitySet Name="RMLS" EntityType="RemoteModel.RML" /> @@ -2098,10 +2171,18 @@ <End Role="HARDWARE_VERSIONS" EntitySet="HARDWARE_VERSIONS" /> <End Role="HARDWARE_VERSIONS_MOTOR_TYPES" EntitySet="HARDWARE_VERSIONS_MOTOR_TYPES" /> </AssociationSet> + <AssociationSet Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS" Association="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS"> + <End Role="HARDWARE_VERSIONS" EntitySet="HARDWARE_VERSIONS" /> + <End Role="HARDWARE_VERSIONS_PID_CONTROLS" EntitySet="HARDWARE_VERSIONS_PID_CONTROLS" /> + </AssociationSet> <AssociationSet Name="FK_HARDWARE_VERSIONS_MOTOR_TYPES_MOTOR_TYPES" Association="RemoteModel.FK_HARDWARE_VERSIONS_MOTOR_TYPES_MOTOR_TYPES"> <End Role="MOTOR_TYPES" EntitySet="MOTOR_TYPES" /> <End Role="HARDWARE_VERSIONS_MOTOR_TYPES" EntitySet="HARDWARE_VERSIONS_MOTOR_TYPES" /> </AssociationSet> + <AssociationSet Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS" Association="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS"> + <End Role="PID_CONTROLS" EntitySet="PID_CONTROLS" /> + <End Role="HARDWARE_VERSIONS_PID_CONTROLS" EntitySet="HARDWARE_VERSIONS_PID_CONTROLS" /> + </AssociationSet> <AssociationSet Name="FK_IDS_PACKS_IDS_PACK_FORMULAS" Association="RemoteModel.FK_IDS_PACKS_IDS_PACK_FORMULAS"> <End Role="IDS_PACK_FORMULAS" EntitySet="IDS_PACK_FORMULAS" /> <End Role="IDS_PACKS" EntitySet="IDS_PACKS" /> @@ -2580,6 +2661,7 @@ <NavigationProperty Name="CONFIGURATIONS" Relationship="RemoteModel.FK_CONFIGURATIONS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="CONFIGURATION" /> <NavigationProperty Name="HARDWARE_VERSIONS_DANCER_TYPES" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_DANCER_TYPES_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="HARDWARE_VERSIONS_DANCER_TYPES" /> <NavigationProperty Name="HARDWARE_VERSIONS_MOTOR_TYPES" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_MOTOR_TYPES_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="HARDWARE_VERSIONS_MOTOR_TYPES" /> + <NavigationProperty Name="HARDWARE_VERSIONS_PID_CONTROLS" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="HARDWARE_VERSIONS_PID_CONTROLS" /> </EntityType> <EntityType Name="HARDWARE_VERSIONS_DANCER_TYPES"> <Key> @@ -2605,6 +2687,18 @@ <NavigationProperty Name="HARDWARE_VERSIONS" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_MOTOR_TYPES_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS_MOTOR_TYPES" ToRole="HARDWARE_VERSIONS" /> <NavigationProperty Name="MOTOR_TYPES" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_MOTOR_TYPES_MOTOR_TYPES" FromRole="HARDWARE_VERSIONS_MOTOR_TYPES" ToRole="MOTOR_TYPES" /> </EntityType> + <EntityType Name="HARDWARE_VERSIONS_PID_CONTROLS"> + <Key> + <PropertyRef Name="GUID" /> + </Key> + <Property Name="ID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> + <Property Name="GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> + <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" /> + <Property Name="HARDWARE_VERSION_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> + <Property Name="PID_CONTROL_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> + <NavigationProperty Name="HARDWARE_VERSIONS" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS_PID_CONTROLS" ToRole="HARDWARE_VERSIONS" /> + <NavigationProperty Name="PID_CONTROLS" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS" FromRole="HARDWARE_VERSIONS_PID_CONTROLS" ToRole="PID_CONTROLS" /> + </EntityType> <EntityType Name="IDS_PACK_FORMULAS"> <Key> <PropertyRef Name="GUID" /> @@ -2900,6 +2994,32 @@ <Property Name="DESCRIPTION" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="true" /> <NavigationProperty Name="ROLES_PERMISSIONS" Relationship="RemoteModel.FK_ROLES_PERMISSIONS_PERMISSIONS" FromRole="PERMISSION" ToRole="ROLES_PERMISSIONS" /> </EntityType> + <EntityType Name="PID_CONTROLS"> + <Key> + <PropertyRef Name="GUID" /> + </Key> + <Property Name="ID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> + <Property Name="GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> + <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" /> + <Property Name="CODE" Type="Int32" Nullable="false" /> + <Property Name="NAME" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="false" /> + <Property Name="DESCRIPTION" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="false" /> + <Property Name="OUTPUT_PROPORTIONAL_POWER_LIMIT" Type="Int32" Nullable="false" /> + <Property Name="OUTPUT_PROPORTIONAL_BAND" Type="Int32" Nullable="false" /> + <Property Name="INTEGRAL_TIME" Type="Int32" Nullable="false" /> + <Property Name="DERIVATIVE_TIME" Type="Int32" Nullable="false" /> + <Property Name="SENSOR_CORRECTION_ADJUSTMENT" Type="Int32" Nullable="false" /> + <Property Name="SENSOR_MIN_VALUE" Type="Int32" Nullable="false" /> + <Property Name="SENSOR_MAX_VALUE" Type="Int32" Nullable="false" /> + <Property Name="SET_POINT_RAMP_RATEOR_SOFT_START_RAMP" Type="Int32" Nullable="false" /> + <Property Name="SET_POINT_CONTROL_OUTPUT_RATE" Type="Int32" Nullable="false" /> + <Property Name="CONTROL_OUTPUT_TYPE" Type="Int32" Nullable="false" /> + <Property Name="SSR_CONTROL_OUTPUT_TYPE" Type="Int32" Nullable="false" /> + <Property Name="OUTPUT_ON_OFF_HYSTERESIS_VALUE" Type="Int32" Nullable="false" /> + <Property Name="PROCESS_VARIABLE_SAMPLING_RATE" Type="Int32" Nullable="false" /> + <Property Name="PV_INPUT_FILTER_FACTOR_MODE" Type="Int32" Nullable="false" /> + <NavigationProperty Name="HARDWARE_VERSIONS_PID_CONTROLS" Relationship="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS" FromRole="PID_CONTROLS" ToRole="HARDWARE_VERSIONS_PID_CONTROLS" /> + </EntityType> <EntityType Name="PROCESS_PARAMETERS_TABLES"> <Key> <PropertyRef Name="GUID" /> @@ -3547,6 +3667,18 @@ </Dependent> </ReferentialConstraint> </Association> + <Association Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS"> + <End Type="RemoteModel.HARDWARE_VERSIONS" Role="HARDWARE_VERSIONS" Multiplicity="1" /> + <End Type="RemoteModel.HARDWARE_VERSIONS_PID_CONTROLS" Role="HARDWARE_VERSIONS_PID_CONTROLS" Multiplicity="*" /> + <ReferentialConstraint> + <Principal Role="HARDWARE_VERSIONS"> + <PropertyRef Name="GUID" /> + </Principal> + <Dependent Role="HARDWARE_VERSIONS_PID_CONTROLS"> + <PropertyRef Name="HARDWARE_VERSION_GUID" /> + </Dependent> + </ReferentialConstraint> + </Association> <Association Name="FK_HARDWARE_VERSIONS_MOTOR_TYPES_MOTOR_TYPES"> <End Type="RemoteModel.MOTOR_TYPES" Role="MOTOR_TYPES" Multiplicity="1" /> <End Type="RemoteModel.HARDWARE_VERSIONS_MOTOR_TYPES" Role="HARDWARE_VERSIONS_MOTOR_TYPES" Multiplicity="*" /> @@ -3559,6 +3691,20 @@ </Dependent> </ReferentialConstraint> </Association> + <Association Name="FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS"> + <End Type="RemoteModel.PID_CONTROLS" Role="PID_CONTROLS" Multiplicity="1"> + <OnDelete Action="Cascade" /> + </End> + <End Type="RemoteModel.HARDWARE_VERSIONS_PID_CONTROLS" Role="HARDWARE_VERSIONS_PID_CONTROLS" Multiplicity="*" /> + <ReferentialConstraint> + <Principal Role="PID_CONTROLS"> + <PropertyRef Name="GUID" /> + </Principal> + <Dependent Role="HARDWARE_VERSIONS_PID_CONTROLS"> + <PropertyRef Name="PID_CONTROL_GUID" /> + </Dependent> + </ReferentialConstraint> + </Association> <Association Name="FK_IDS_PACKS_IDS_PACK_FORMULAS"> <End Type="RemoteModel.IDS_PACK_FORMULAS" Role="IDS_PACK_FORMULAS" Multiplicity="1" /> <End Type="RemoteModel.IDS_PACKS" Role="IDS_PACKS" Multiplicity="*" /> @@ -4300,6 +4446,17 @@ </MappingFragment> </EntityTypeMapping> </EntitySetMapping> + <EntitySetMapping Name="HARDWARE_VERSIONS_PID_CONTROLS"> + <EntityTypeMapping TypeName="RemoteModel.HARDWARE_VERSIONS_PID_CONTROLS"> + <MappingFragment StoreEntitySet="HARDWARE_VERSIONS_PID_CONTROLS"> + <ScalarProperty Name="PID_CONTROL_GUID" ColumnName="PID_CONTROL_GUID" /> + <ScalarProperty Name="HARDWARE_VERSION_GUID" ColumnName="HARDWARE_VERSION_GUID" /> + <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> + <ScalarProperty Name="GUID" ColumnName="GUID" /> + <ScalarProperty Name="ID" ColumnName="ID" /> + </MappingFragment> + </EntityTypeMapping> + </EntitySetMapping> <EntitySetMapping Name="IDS_PACK_FORMULAS"> <EntityTypeMapping TypeName="RemoteModel.IDS_PACK_FORMULAS"> <MappingFragment StoreEntitySet="IDS_PACK_FORMULAS"> @@ -4570,6 +4727,32 @@ </MappingFragment> </EntityTypeMapping> </EntitySetMapping> + <EntitySetMapping Name="PID_CONTROLS"> + <EntityTypeMapping TypeName="RemoteModel.PID_CONTROLS"> + <MappingFragment StoreEntitySet="PID_CONTROLS"> + <ScalarProperty Name="PV_INPUT_FILTER_FACTOR_MODE" ColumnName="PV_INPUT_FILTER_FACTOR_MODE" /> + <ScalarProperty Name="PROCESS_VARIABLE_SAMPLING_RATE" ColumnName="PROCESS_VARIABLE_SAMPLING_RATE" /> + <ScalarProperty Name="OUTPUT_ON_OFF_HYSTERESIS_VALUE" ColumnName="OUTPUT_ON_OFF_HYSTERESIS_VALUE" /> + <ScalarProperty Name="SSR_CONTROL_OUTPUT_TYPE" ColumnName="SSR_CONTROL_OUTPUT_TYPE" /> + <ScalarProperty Name="CONTROL_OUTPUT_TYPE" ColumnName="CONTROL_OUTPUT_TYPE" /> + <ScalarProperty Name="SET_POINT_CONTROL_OUTPUT_RATE" ColumnName="SET_POINT_CONTROL_OUTPUT_RATE" /> + <ScalarProperty Name="SET_POINT_RAMP_RATEOR_SOFT_START_RAMP" ColumnName="SET_POINT_RAMP_RATEOR_SOFT_START_RAMP" /> + <ScalarProperty Name="SENSOR_MAX_VALUE" ColumnName="SENSOR_MAX_VALUE" /> + <ScalarProperty Name="SENSOR_MIN_VALUE" ColumnName="SENSOR_MIN_VALUE" /> + <ScalarProperty Name="SENSOR_CORRECTION_ADJUSTMENT" ColumnName="SENSOR_CORRECTION_ADJUSTMENT" /> + <ScalarProperty Name="DERIVATIVE_TIME" ColumnName="DERIVATIVE_TIME" /> + <ScalarProperty Name="INTEGRAL_TIME" ColumnName="INTEGRAL_TIME" /> + <ScalarProperty Name="OUTPUT_PROPORTIONAL_BAND" ColumnName="OUTPUT_PROPORTIONAL_BAND" /> + <ScalarProperty Name="OUTPUT_PROPORTIONAL_POWER_LIMIT" ColumnName="OUTPUT_PROPORTIONAL_POWER_LIMIT" /> + <ScalarProperty Name="DESCRIPTION" ColumnName="DESCRIPTION" /> + <ScalarProperty Name="NAME" ColumnName="NAME" /> + <ScalarProperty Name="CODE" ColumnName="CODE" /> + <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> + <ScalarProperty Name="GUID" ColumnName="GUID" /> + <ScalarProperty Name="ID" ColumnName="ID" /> + </MappingFragment> + </EntityTypeMapping> + </EntitySetMapping> <EntitySetMapping Name="PROCESS_PARAMETERS_TABLES"> <EntityTypeMapping TypeName="RemoteModel.PROCESS_PARAMETERS_TABLES"> <MappingFragment StoreEntitySet="PROCESS_PARAMETERS_TABLES"> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index 4238e03d4..6002a4773 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,67 +5,69 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1"> - <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="8" PointY="62.125" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="37.875" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="57.375" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="74.5" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="54.5" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="1.5" PointY="80.375" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="9.75" PointY="20" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="51.875" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="14.375" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="24.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="7.5" PointY="35.375" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="5.25" PointY="37.125" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="61.75" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="50.125" /> - <EntityTypeShape EntityType="RemoteModel.DANCER_TYPES" Width="1.5" PointX="1.5" PointY="84.125" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="8" PointY="43.125" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="71.625" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="77.5" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="8" PointY="5" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="10.25" PointY="5.125" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="21.125" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="27" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="68.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS_DANCER_TYPES" Width="1.5" PointX="3.75" PointY="68.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS_MOTOR_TYPES" Width="1.5" PointX="6.75" PointY="68.375" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="54.75" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="36.125" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="7.5" PointY="18.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="5.25" PointY="13.125" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="7" PointY="58.25" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="71.75" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="52.75" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="58.5" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="49.75" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="1.5" PointY="33.875" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="10.75" PointY="16.625" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="42.375" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="14.25" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="24.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="8.5" PointY="2" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="6.25" PointY="3.75" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="37.75" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="76" /> + <EntityTypeShape EntityType="RemoteModel.DANCER_TYPES" Width="1.5" PointX="5.5" PointY="45.25" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="8" PointY="48.5" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="61.5" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="55.625" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="7" PointY="54.125" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="9.25" PointY="54.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="10.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="18.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="30.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS_DANCER_TYPES" Width="1.5" PointX="7.75" PointY="25.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS_MOTOR_TYPES" Width="1.5" PointX="3.75" PointY="33.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="35.5" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="39.125" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="25" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="7.5" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="5.25" PointY="13" /> <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="7.375" /> <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="9.25" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="10.5" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="5.25" PointY="21" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="42.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="44.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="5.25" PointY="54.875" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="10.25" PointY="31.75" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="14.75" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="24" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="10.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="18.25" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="48.75" /> - <EntityTypeShape EntityType="RemoteModel.MOTOR_TYPES" Width="1.5" PointX="4.5" PointY="62.125" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="33.125" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="8" PointY="58.875" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="10.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="5.25" PointY="21.25" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="46.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="44.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="5.25" PointY="41.875" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="9.25" PointY="34.875" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="24" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="21.125" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="14.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="26.75" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="45.375" /> + <EntityTypeShape EntityType="RemoteModel.MOTOR_TYPES" Width="1.5" PointX="1.5" PointY="1.25" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="67" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="11" PointY="9.375" /> + <EntityTypeShape EntityType="RemoteModel.PID_CONTROLS" Width="1.5" PointX="4.5" PointY="49.25" /> <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="28.75" /> <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="30" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="11.875" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="8" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="10.25" PointY="0.875" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="7.5" PointY="22" /> - <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="0.75" PointY="0.875" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="2.75" PointY="0.875" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="0.75" PointY="3.875" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="2.75" PointY="3.875" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="4.75" PointY="0.875" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MOTORS" Width="1.5" PointX="4.75" PointY="5.875" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="10.75" PointY="8.875" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="3" PointY="24" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="10.25" PointY="27.75" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="3" PointY="20.875" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="11.75" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="11" PointY="13.25" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="13.25" PointY="13.375" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="7.5" PointY="18.625" /> + <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="3.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="5.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="2.75" PointY="7.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="10.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="10.75" PointY="4.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MOTORS" Width="1.5" PointX="12.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="12.75" PointY="4.75" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="3" PointY="20.5" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="13.25" PointY="21.25" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="3" PointY="65" /> <AssociationConnector Association="RemoteModel.FK_EVENTS_ACTIONS_ACTIONS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> @@ -98,7 +100,9 @@ <AssociationConnector Association="RemoteModel.FK_RML_FIBER_SYNTHESIS" /> <AssociationConnector Association="RemoteModel.FK_HARDWARE_VERSIONS_DANCER_TYPES_HARDWARE_VERSIONS" /> <AssociationConnector Association="RemoteModel.FK_HARDWARE_VERSIONS_MOTOR_TYPES_HARDWARE_VERSIONS" /> + <AssociationConnector Association="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_HARDWARE_VERSIONS" /> <AssociationConnector Association="RemoteModel.FK_HARDWARE_VERSIONS_MOTOR_TYPES_MOTOR_TYPES" /> + <AssociationConnector Association="RemoteModel.FK_HARDWARE_VERSIONS_PID_CONTROLS_PID_CONTROLS" /> <AssociationConnector Association="RemoteModel.FK_IDS_PACKS_IDS_PACK_FORMULAS" /> <AssociationConnector Association="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_LIQUIDS" /> <AssociationConnector Association="RemoteModel.FK_IDS_PACKS_MID_TANK_TYPES" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj index f66276545..f2432e22f 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj +++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj @@ -140,6 +140,9 @@ <Compile Include="DB\HARDWARE_VERSIONS_MOTOR_TYPES.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> + <Compile Include="DB\HARDWARE_VERSIONS_PID_CONTROLS.cs"> + <DependentUpon>RemoteADO.tt</DependentUpon> + </Compile> <Compile Include="DB\IDS_PACKS.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> @@ -200,6 +203,9 @@ <Compile Include="DB\PERMISSION.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> + <Compile Include="DB\PID_CONTROLS.cs"> + <DependentUpon>RemoteADO.tt</DependentUpon> + </Compile> <Compile Include="DB\PROCESS_PARAMETERS_TABLES.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Entities/HardwareVersion.cs b/Software/Visual_Studio/Tango.Integration/Observables/Entities/HardwareVersion.cs index 03e19f9ed..fe41140fd 100644 --- a/Software/Visual_Studio/Tango.Integration/Observables/Entities/HardwareVersion.cs +++ b/Software/Visual_Studio/Tango.Integration/Observables/Entities/HardwareVersion.cs @@ -111,6 +111,25 @@ namespace Tango.Integration.Observables } + protected ObservableCollection<HardwareVersionsPidControl> _hardwareversionspidcontrols; + /// <summary> + /// Gets or sets the hardwareversion hardware versions pid controls. + /// </summary> + + public virtual ObservableCollection<HardwareVersionsPidControl> HardwareVersionsPidControls + { + get + { + return _hardwareversionspidcontrols; + } + + set + { + _hardwareversionspidcontrols = value; RaisePropertyChanged(nameof(HardwareVersionsPidControls)); + } + + } + /// <summary> /// Initializes a new instance of the <see cref="HardwareVersion" /> class. /// </summary> @@ -123,6 +142,8 @@ namespace Tango.Integration.Observables HardwareVersionsMotorTypes = new ObservableCollection<HardwareVersionsMotorType>(); + HardwareVersionsPidControls = new ObservableCollection<HardwareVersionsPidControl>(); + } } } diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Entities/HardwareVersionsPidControl.cs b/Software/Visual_Studio/Tango.Integration/Observables/Entities/HardwareVersionsPidControl.cs new file mode 100644 index 000000000..75eedb23f --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/Observables/Entities/HardwareVersionsPidControl.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Xml.Serialization; +using Newtonsoft.Json; +using System.Linq; +using Tango.DAL.Remote.DB; + +namespace Tango.Integration.Observables +{ + [Table("HARDWARE_VERSIONS_PID_CONTROLS")] + public partial class HardwareVersionsPidControl : ObservableEntity<HardwareVersionsPidControl> + { + + protected String _hardwareversionguid; + /// <summary> + /// Gets or sets the hardwareversionspidcontrol hardware version guid. + /// </summary> + [Column("HARDWARE_VERSION_GUID")] + [ForeignKey("HardwareVersion")] + + public String HardwareVersionGuid + { + get + { + return _hardwareversionguid; + } + + set + { + _hardwareversionguid = value; RaisePropertyChanged(nameof(HardwareVersionGuid)); + } + + } + + protected String _pidcontrolguid; + /// <summary> + /// Gets or sets the hardwareversionspidcontrol pid control guid. + /// </summary> + [Column("PID_CONTROL_GUID")] + [ForeignKey("PidControl")] + + public String PidControlGuid + { + get + { + return _pidcontrolguid; + } + + set + { + _pidcontrolguid = value; RaisePropertyChanged(nameof(PidControlGuid)); + } + + } + + protected HardwareVersion _hardwareversion; + /// <summary> + /// Gets or sets the hardwareversionspidcontrol hardware versions. + /// </summary> + + [XmlIgnore] + [JsonIgnore] + public virtual HardwareVersion HardwareVersion + { + get + { + return _hardwareversion; + } + + set + { + _hardwareversion = value; RaisePropertyChanged(nameof(HardwareVersion)); + } + + } + + protected PidControl _pidcontrol; + /// <summary> + /// Gets or sets the hardwareversionspidcontrol pid controls. + /// </summary> + + [XmlIgnore] + [JsonIgnore] + public virtual PidControl PidControl + { + get + { + return _pidcontrol; + } + + set + { + _pidcontrol = value; RaisePropertyChanged(nameof(PidControl)); + } + + } + + /// <summary> + /// Initializes a new instance of the <see cref="HardwareVersionsPidControl" /> class. + /// </summary> + public HardwareVersionsPidControl() : base() + { + } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Entities/PidControl.cs b/Software/Visual_Studio/Tango.Integration/Observables/Entities/PidControl.cs new file mode 100644 index 000000000..7c8ac3bb3 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/Observables/Entities/PidControl.cs @@ -0,0 +1,386 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Xml.Serialization; +using Newtonsoft.Json; +using System.Linq; +using Tango.DAL.Remote.DB; + +namespace Tango.Integration.Observables +{ + [Table("PID_CONTROLS")] + public partial class PidControl : ObservableEntity<PidControl> + { + + protected Int32 _code; + /// <summary> + /// Gets or sets the pidcontrol code. + /// </summary> + [Column("CODE")] + + public Int32 Code + { + get + { + return _code; + } + + set + { + _code = value; RaisePropertyChanged(nameof(Code)); + } + + } + + protected String _name; + /// <summary> + /// Gets or sets the pidcontrol name. + /// </summary> + [Column("NAME")] + + public String Name + { + get + { + return _name; + } + + set + { + _name = value; RaisePropertyChanged(nameof(Name)); + } + + } + + protected String _description; + /// <summary> + /// Gets or sets the pidcontrol description. + /// </summary> + [Column("DESCRIPTION")] + + public String Description + { + get + { + return _description; + } + + set + { + _description = value; RaisePropertyChanged(nameof(Description)); + } + + } + + protected Int32 _outputproportionalpowerlimit; + /// <summary> + /// Gets or sets the pidcontrol output proportional power limit. + /// </summary> + [Column("OUTPUT_PROPORTIONAL_POWER_LIMIT")] + + public Int32 OutputProportionalPowerLimit + { + get + { + return _outputproportionalpowerlimit; + } + + set + { + _outputproportionalpowerlimit = value; RaisePropertyChanged(nameof(OutputProportionalPowerLimit)); + } + + } + + protected Int32 _outputproportionalband; + /// <summary> + /// Gets or sets the pidcontrol output proportional band. + /// </summary> + [Column("OUTPUT_PROPORTIONAL_BAND")] + + public Int32 OutputProportionalBand + { + get + { + return _outputproportionalband; + } + + set + { + _outputproportionalband = value; RaisePropertyChanged(nameof(OutputProportionalBand)); + } + + } + + protected Int32 _integraltime; + /// <summary> + /// Gets or sets the pidcontrol integral time. + /// </summary> + [Column("INTEGRAL_TIME")] + + public Int32 IntegralTime + { + get + { + return _integraltime; + } + + set + { + _integraltime = value; RaisePropertyChanged(nameof(IntegralTime)); + } + + } + + protected Int32 _derivativetime; + /// <summary> + /// Gets or sets the pidcontrol derivative time. + /// </summary> + [Column("DERIVATIVE_TIME")] + + public Int32 DerivativeTime + { + get + { + return _derivativetime; + } + + set + { + _derivativetime = value; RaisePropertyChanged(nameof(DerivativeTime)); + } + + } + + protected Int32 _sensorcorrectionadjustment; + /// <summary> + /// Gets or sets the pidcontrol sensor correction adjustment. + /// </summary> + [Column("SENSOR_CORRECTION_ADJUSTMENT")] + + public Int32 SensorCorrectionAdjustment + { + get + { + return _sensorcorrectionadjustment; + } + + set + { + _sensorcorrectionadjustment = value; RaisePropertyChanged(nameof(SensorCorrectionAdjustment)); + } + + } + + protected Int32 _sensorminvalue; + /// <summary> + /// Gets or sets the pidcontrol sensor min value. + /// </summary> + [Column("SENSOR_MIN_VALUE")] + + public Int32 SensorMinValue + { + get + { + return _sensorminvalue; + } + + set + { + _sensorminvalue = value; RaisePropertyChanged(nameof(SensorMinValue)); + } + + } + + protected Int32 _sensormaxvalue; + /// <summary> + /// Gets or sets the pidcontrol sensor max value. + /// </summary> + [Column("SENSOR_MAX_VALUE")] + + public Int32 SensorMaxValue + { + get + { + return _sensormaxvalue; + } + + set + { + _sensormaxvalue = value; RaisePropertyChanged(nameof(SensorMaxValue)); + } + + } + + protected Int32 _setpointramprateorsoftstartramp; + /// <summary> + /// Gets or sets the pidcontrol set point ramp rateor soft start ramp. + /// </summary> + [Column("SET_POINT_RAMP_RATEOR_SOFT_START_RAMP")] + + public Int32 SetPointRampRateorSoftStartRamp + { + get + { + return _setpointramprateorsoftstartramp; + } + + set + { + _setpointramprateorsoftstartramp = value; RaisePropertyChanged(nameof(SetPointRampRateorSoftStartRamp)); + } + + } + + protected Int32 _setpointcontroloutputrate; + /// <summary> + /// Gets or sets the pidcontrol set point control output rate. + /// </summary> + [Column("SET_POINT_CONTROL_OUTPUT_RATE")] + + public Int32 SetPointControlOutputRate + { + get + { + return _setpointcontroloutputrate; + } + + set + { + _setpointcontroloutputrate = value; RaisePropertyChanged(nameof(SetPointControlOutputRate)); + } + + } + + protected Int32 _controloutputtype; + /// <summary> + /// Gets or sets the pidcontrol control output type. + /// </summary> + [Column("CONTROL_OUTPUT_TYPE")] + + public Int32 ControlOutputType + { + get + { + return _controloutputtype; + } + + set + { + _controloutputtype = value; RaisePropertyChanged(nameof(ControlOutputType)); + } + + } + + protected Int32 _ssrcontroloutputtype; + /// <summary> + /// Gets or sets the pidcontrol ssr control output type. + /// </summary> + [Column("SSR_CONTROL_OUTPUT_TYPE")] + + public Int32 SsrControlOutputType + { + get + { + return _ssrcontroloutputtype; + } + + set + { + _ssrcontroloutputtype = value; RaisePropertyChanged(nameof(SsrControlOutputType)); + } + + } + + protected Int32 _outputonoffhysteresisvalue; + /// <summary> + /// Gets or sets the pidcontrol output on off hysteresis value. + /// </summary> + [Column("OUTPUT_ON_OFF_HYSTERESIS_VALUE")] + + public Int32 OutputOnOffHysteresisValue + { + get + { + return _outputonoffhysteresisvalue; + } + + set + { + _outputonoffhysteresisvalue = value; RaisePropertyChanged(nameof(OutputOnOffHysteresisValue)); + } + + } + + protected Int32 _processvariablesamplingrate; + /// <summary> + /// Gets or sets the pidcontrol process variable sampling rate. + /// </summary> + [Column("PROCESS_VARIABLE_SAMPLING_RATE")] + + public Int32 ProcessVariableSamplingRate + { + get + { + return _processvariablesamplingrate; + } + + set + { + _processvariablesamplingrate = value; RaisePropertyChanged(nameof(ProcessVariableSamplingRate)); + } + + } + + protected Int32 _pvinputfilterfactormode; + /// <summary> + /// Gets or sets the pidcontrol pv input filter factor mode. + /// </summary> + [Column("PV_INPUT_FILTER_FACTOR_MODE")] + + public Int32 PvInputFilterFactorMode + { + get + { + return _pvinputfilterfactormode; + } + + set + { + _pvinputfilterfactormode = value; RaisePropertyChanged(nameof(PvInputFilterFactorMode)); + } + + } + + protected ObservableCollection<HardwareVersionsPidControl> _hardwareversionspidcontrols; + /// <summary> + /// Gets or sets the pidcontrol hardware versions pid controls. + /// </summary> + + public virtual ObservableCollection<HardwareVersionsPidControl> HardwareVersionsPidControls + { + get + { + return _hardwareversionspidcontrols; + } + + set + { + _hardwareversionspidcontrols = value; RaisePropertyChanged(nameof(HardwareVersionsPidControls)); + } + + } + + /// <summary> + /// Initializes a new instance of the <see cref="PidControl" /> class. + /// </summary> + public PidControl() : base() + { + + HardwareVersionsPidControls = new ObservableCollection<HardwareVersionsPidControl>(); + + } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/DancerTypes.cs b/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/DancerTypes.cs index 1f2130d1a..59183419d 100644 --- a/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/DancerTypes.cs +++ b/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/DancerTypes.cs @@ -10,10 +10,22 @@ namespace Tango.Integration.Observables { /// <summary> - /// (LEFT_DANCER) + /// (Middle Dancer) /// </summary> - [Description("LEFT_DANCER")] - LEFT_DANCER = 0, + [Description("Middle Dancer")] + MiddleDancer = 1, + + /// <summary> + /// (Left Dancer) + /// </summary> + [Description("Left Dancer")] + LeftDancer = 0, + + /// <summary> + /// (Right Dancer) + /// </summary> + [Description("Right Dancer")] + RightDancer = 2, } } diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/MotorTypes.cs b/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/MotorTypes.cs index 8a545b264..ec7bbb90e 100644 --- a/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/MotorTypes.cs +++ b/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/MotorTypes.cs @@ -8,5 +8,30 @@ namespace Tango.Integration.Observables { public enum MotorTypes { + + /// <summary> + /// (Winder Motor) + /// </summary> + [Description("Winder Motor")] + WinderMotor = 2, + + /// <summary> + /// (Feeder Motor) + /// </summary> + [Description("Feeder Motor")] + FeederMotor = 0, + + /// <summary> + /// (Dryer Motor) + /// </summary> + [Description("Dryer Motor")] + DryerMotor = 0, + + /// <summary> + /// (Pooler Motor) + /// </summary> + [Description("Pooler Motor")] + PoolerMotor = 1, + } } diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/PidControls.cs b/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/PidControls.cs new file mode 100644 index 000000000..76a079484 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/Observables/Enumerations/PidControls.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.ComponentModel; + +namespace Tango.Integration.Observables +{ + public enum PidControls + { + + /// <summary> + /// (MixerHeater) + /// </summary> + [Description("MixerHeater")] + MixerHeater = 7, + + /// <summary> + /// (WasteControl) + /// </summary> + [Description("WasteControl")] + WasteControl = 8, + + /// <summary> + /// (MotorWinder) + /// </summary> + [Description("MotorWinder")] + MotorWinder = 12, + + /// <summary> + /// (MotorFeeder) + /// </summary> + [Description("MotorFeeder")] + MotorFeeder = 10, + + /// <summary> + /// (MotorDryer) + /// </summary> + [Description("MotorDryer")] + MotorDryer = 9, + + /// <summary> + /// (DryerHeater200w1) + /// </summary> + [Description("DryerHeater200w1")] + DryerHeater200w1 = 1, + + /// <summary> + /// (MotorPooler) + /// </summary> + [Description("MotorPooler")] + MotorPooler = 11, + + /// <summary> + /// (HeadHeaterZ4) + /// </summary> + [Description("HeadHeaterZ4")] + HeadHeaterZ4 = 6, + + /// <summary> + /// (DryerHeater1000w) + /// </summary> + [Description("DryerHeater1000w")] + DryerHeater1000w = 0, + + /// <summary> + /// (HeadHeaterZ3) + /// </summary> + [Description("HeadHeaterZ3")] + HeadHeaterZ3 = 5, + + /// <summary> + /// (HeadHeaterZ1) + /// </summary> + [Description("HeadHeaterZ1")] + HeadHeaterZ1 = 3, + + /// <summary> + /// (HeadHeaterZ2) + /// </summary> + [Description("HeadHeaterZ2")] + HeadHeaterZ2 = 4, + + /// <summary> + /// (DryerHeater400) + /// </summary> + [Description("DryerHeater400")] + DryerHeater400 = 13, + + /// <summary> + /// (DryerHeater200w2) + /// </summary> + [Description("DryerHeater200w2")] + DryerHeater200w2 = 2, + + } +} diff --git a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs index b29bfabbf..213f79ef7 100644 --- a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs +++ b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs @@ -221,6 +221,14 @@ namespace Tango.Integration.Observables } /// <summary> + /// Gets or sets the HardwareVersionsPidControls. + /// </summary> + public DbSet<HardwareVersionsPidControl> HardwareVersionsPidControls + { + get; set; + } + + /// <summary> /// Gets or sets the IdsPackFormulas. /// </summary> public DbSet<IdsPackFormula> IdsPackFormulas @@ -381,6 +389,14 @@ namespace Tango.Integration.Observables } /// <summary> + /// Gets or sets the PidControls. + /// </summary> + public DbSet<PidControl> PidControls + { + get; set; + } + + /// <summary> /// Gets or sets the ProcessParametersTables. /// </summary> public DbSet<ProcessParametersTable> ProcessParametersTables diff --git a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapter.cs b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapter.cs index 640e34436..6d6c7c2cb 100644 --- a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapter.cs +++ b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapter.cs @@ -279,10 +279,14 @@ namespace Tango.Integration.Observables MotorTypes = Context.MotorTypes.ToObservableCollection(); + PidControls = Context.PidControls.ToObservableCollection(); + HardwareVersionsDancerTypes = Context.HardwareVersionsDancerTypes.ToObservableCollection(); HardwareVersionsMotorTypes = Context.HardwareVersionsMotorTypes.ToObservableCollection(); + HardwareVersionsPidControls = Context.HardwareVersionsPidControls.ToObservableCollection(); + InitCollectionSources(); //var action = ActionTypes.First(); diff --git a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs index 3e4a34798..d7c714274 100644 --- a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs +++ b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs @@ -906,6 +906,42 @@ namespace Tango.Integration.Observables } + private ObservableCollection<HardwareVersionsPidControl> _hardwareversionspidcontrols; + /// <summary> + /// Gets or sets the HardwareVersionsPidControls. + /// </summary> + public ObservableCollection<HardwareVersionsPidControl> HardwareVersionsPidControls + { + get + { + return _hardwareversionspidcontrols; + } + + set + { + _hardwareversionspidcontrols = value; RaisePropertyChanged(nameof(HardwareVersionsPidControls)); + } + + } + + private ICollectionView _hardwareversionspidcontrolsViewSource; + /// <summary> + /// Gets or sets the HardwareVersionsPidControls View Source. + ///</summary> + public ICollectionView HardwareVersionsPidControlsViewSource + { + get + { + return _hardwareversionspidcontrolsViewSource; + } + + set + { + _hardwareversionspidcontrolsViewSource = value; RaisePropertyChanged(nameof(HardwareVersionsPidControlsViewSource)); + } + + } + private ObservableCollection<IdsPackFormula> _idspackformulas; /// <summary> /// Gets or sets the IdsPackFormulas. @@ -1626,6 +1662,42 @@ namespace Tango.Integration.Observables } + private ObservableCollection<PidControl> _pidcontrols; + /// <summary> + /// Gets or sets the PidControls. + /// </summary> + public ObservableCollection<PidControl> PidControls + { + get + { + return _pidcontrols; + } + + set + { + _pidcontrols = value; RaisePropertyChanged(nameof(PidControls)); + } + + } + + private ICollectionView _pidcontrolsViewSource; + /// <summary> + /// Gets or sets the PidControls View Source. + ///</summary> + public ICollectionView PidControlsViewSource + { + get + { + return _pidcontrolsViewSource; + } + + set + { + _pidcontrolsViewSource = value; RaisePropertyChanged(nameof(PidControlsViewSource)); + } + + } + private ObservableCollection<ProcessParametersTable> _processparameterstables; /// <summary> /// Gets or sets the ProcessParametersTables. @@ -2258,6 +2330,8 @@ namespace Tango.Integration.Observables HardwareVersionsMotorTypesViewSource = CreateCollectionView(HardwareVersionsMotorTypes); + HardwareVersionsPidControlsViewSource = CreateCollectionView(HardwareVersionsPidControls); + IdsPackFormulasViewSource = CreateCollectionView(IdsPackFormulas); IdsPacksViewSource = CreateCollectionView(IdsPacks); @@ -2298,6 +2372,8 @@ namespace Tango.Integration.Observables PermissionsViewSource = CreateCollectionView(Permissions); + PidControlsViewSource = CreateCollectionView(PidControls); + ProcessParametersTablesViewSource = CreateCollectionView(ProcessParametersTables); ProcessParametersTablesGroupsViewSource = CreateCollectionView(ProcessParametersTablesGroups); diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Partials/HardwareVersion.cs b/Software/Visual_Studio/Tango.Integration/Observables/Partials/HardwareVersion.cs index c150f85e5..6674c0d8b 100644 --- a/Software/Visual_Studio/Tango.Integration/Observables/Partials/HardwareVersion.cs +++ b/Software/Visual_Studio/Tango.Integration/Observables/Partials/HardwareVersion.cs @@ -13,6 +13,7 @@ namespace Tango.Integration.Observables var cloned = base.Clone(); cloned.HardwareVersionsMotorTypes = HardwareVersionsMotorTypes.ToObservableCollection(); cloned.HardwareVersionsDancerTypes = HardwareVersionsDancerTypes.ToObservableCollection(); + cloned.HardwareVersionsPidControls = HardwareVersionsPidControls.ToObservableCollection(); return cloned; } } diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj index cf7c041fd..d08655a29 100644 --- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj +++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj @@ -114,10 +114,12 @@ <Compile Include="Observables\Entities\HardwareVersion.cs" /> <Compile Include="Observables\Entities\HardwareVersionsDancerType.cs" /> <Compile Include="Observables\Entities\HardwareVersionsMotorType.cs" /> + <Compile Include="Observables\Entities\HardwareVersionsPidControl.cs" /> <Compile Include="Observables\Entities\IdsPack.cs" /> <Compile Include="Observables\Entities\IdsPackFormula.cs" /> <Compile Include="Observables\Entities\MachineStudioVersion.cs" /> <Compile Include="Observables\Entities\MotorType.cs" /> + <Compile Include="Observables\Entities\PidControl.cs" /> <Compile Include="Observables\Entities\TechDispenser.cs" /> <Compile Include="Observables\Entities\TechHeater.cs" /> <Compile Include="Observables\Entities\TechIo.cs" /> |
