using System;
namespace RealTimeGraphX
{
/// <summary>
/// A (P)roportional, (I)ntegral, (D)erivative Controller
/// </summary>
/// <remarks>
/// The controller should be able to control any process with a
/// measureable value, a known ideal value and an input to the
/// process that will affect the measured value.
/// </remarks>
/// <see cref="https://en.wikipedia.org/wiki/PID_controller"/>
public sealed class PidController
{
private double processVariable = 0;
public PidController(double setPoint, double OutputMax, double OutputMin) : this(1.2, 0.5, 1, OutputMax, OutputMin)
{
SetPoint = setPoint;
}
public PidController(double GainProportional, double GainIntegral, double GainDerivative, double OutputMax, double OutputMin)
{
this.GainDerivative = GainDerivative;
this.GainIntegral = GainIntegral;
this.GainProportional = GainProportional;
this.OutputMax = OutputMax;
this.OutputMin = OutputMin;
}
/// <summary>
/// The controller output
/// </summary>
/// <param name="timeSinceLastUpdate">timespan of the elapsed time
/// since the previous time that ControlVariable was called</param>
/// <returns>Value of the variable that needs to be controlled</returns>
public double ControlVariable(TimeSpan timeSinceLastUpdate)
{
double error = SetPoint - ProcessVariable;
// integral term calculation
IntegralTerm += (GainIntegral * error * timeSinceLastUpdate.TotalSeconds);
IntegralTerm = Clamp(IntegralTerm);
// derivative term calculation
double dInput = processVariable - ProcessVariableLast;
double derivativeTerm = GainDerivative * (dInput / timeSinceLastUpdate.TotalSeconds);
// proportional term calcullation
double proportionalTerm = GainProportional * error;
double output = proportionalTerm + IntegralTerm - derivativeTerm;
output = Clamp(output);
return output;
}
/// <summary>
/// The derivative term is proportional to the rate of
/// change of the error
/// </summary>
public double GainDerivative { get; set; } = 0;
/// <summary>
/// The integral term is proportional to both the magnitude
/// of the error and the duration of the error
/// </summary>
public double GainIntegral { get; set; } = 0;
/// <summary>
/// The proportional term produces an output value that
/// is proportional to the current error value
/// </summary>
/// <remarks>
/// Tuning theory and industrial practice indicate that the
/// proportional term should contribute the bulk of the output change.
/// </remarks>
public double GainProportional { get; set; } = 0;
/// <summary>
/// The max output value the control device can accept.
/// </summary>
public double OutputMax { get; private set; } = 0;
/// <summary>
/// The minimum ouput value the control device can accept.
/// </summary>
public double OutputMin { get; private set; } = 0;
/// <summary>
/// Adjustment made by considering the accumulated error over time
/// </summary>
/// <remarks>
/// An alternative formulation of the integral action, is the
/// proportional-summation-difference used in discrete-time systems
/// </remarks>
public double IntegralTerm { get; private set; } = 0;
/// <summary>
/// The current value
/// </summary>
public double ProcessVariable
{
get { return processVariable; }
set
{
ProcessVariableLast = processVariable;
processVariable = value;pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}</ProjectGuid>
<OutputType>library</OutputType>
<RootNamespace>Tango.MachineStudio.DB</RootNamespace>
<AssemblyName>Tango.MachineStudio.DB</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\Build\Machine Studio\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\..\Build\Machine Studio\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Dragablz, Version=0.0.3.197, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Dragablz.0.0.3.197\lib\net45\Dragablz.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
</Reference>
<Reference Include="MaterialDesignColors, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\MaterialDesignColors.1.1.2\lib\net45\MaterialDesignColors.dll</HintPath>
</Reference>
<Reference Include="MaterialDesignThemes.Wpf, Version=2.3.1.953, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
</Reference>
<Reference Include="SimpleValidator, Version=0.6.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\SimpleValidator.0.6.1.0\lib\net40\SimpleValidator.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Data" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Expression.Blend.Sdk.1.0.2\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="WriteableBitmapEx.Wpf, Version=1.5.0.0, Culture=neutral, PublicKeyToken=50375ca6144f1c69, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\WriteableBitmapEx.1.5.0.0\lib\net40\WriteableBitmapEx.Wpf.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\Versioning\GlobalVersionInfo.cs">
<Link>GlobalVersionInfo.cs</Link>
</Compile>
<Compile Include="Converters\ByteArrayToFileSizeConverter.cs" />
<Compile Include="Converters\EntityFieldNameToFriendlyStringConverter.cs" />
<Compile Include="Converters\EventTypeActionsToStringConverter.cs" />
<Compile Include="Converters\LiquidTypeRmlsToStringConverter.cs" />
<Compile Include="Converters\RolesPermissionsToStringConverter.cs" />
<Compile Include="DBModule.cs" />
<Compile Include="Messages\CloseEntityEditViewMessage.cs" />
<Compile Include="Messages\OpenEntityEditViewMessage.cs" />
<Compile Include="ViewModels\ActionTypesViewVM.cs" />
<Compile Include="ViewModels\AddressesViewVM.cs" />
<Compile Include="ViewModels\ApplicationDisplayPanelVersionsViewVM.cs" />
<Compile Include="ViewModels\ApplicationFirmwareVersionsViewVM.cs" />
<Compile Include="ViewModels\ApplicationOsVersionsViewVM.cs" />
<Compile Include="ViewModels\CartridgeTypesViewVM.cs" />
<Compile Include="ViewModels\CatsViewVM.cs" />
<Compile Include="ViewModels\CctsViewVM.cs" />
<Compile Include="ViewModels\ConfigurationsViewVM.cs" />
<Compile Include="ViewModels\ContactsViewVM.cs" />
<Compile Include="ViewModels\EventTypesGroupsViewVM.cs" />
<Compile Include="ViewModels\HardwareDancerTypesViewVM.cs" />
<Compile Include="ViewModels\DbTableViewModel.cs" />
<Compile Include="ViewModels\DialogOpenMode.cs" />
<Compile Include="ViewModels\DispenserTypesViewVM.cs" />
<Compile Include="ViewModels\EmbeddedFirmwareVersionsViewVM.cs" />
<Compile Include="ViewModels\EventTypesViewVM.cs" />
<Compile Include="ViewModels\FiberShapesViewVM.cs" />
<Compile Include="ViewModels\FiberSynthsViewVM.cs" />
<Compile Include="ViewModels\HardwareVersionsViewVM.cs" />
<Compile Include="ViewModels\IdsPackFormulasViewVM.cs" />
<Compile Include="ViewModels\IdsPacksViewVM.cs" />
<Compile Include="ViewModels\LinearMassDensityUnitsViewVM.cs" />
<Compile Include="ViewModels\LiquidTypesRmlsViewVM.cs" />
<Compile Include="ViewModels\LiquidTypesViewVM.cs" />
<Compile Include="ViewModels\MachinesViewVM.cs" />
<Compile Include="ViewModels\MachineVersionsViewVM.cs" />
<Compile Include="ViewModels\MediaColorsViewVM.cs" />
<Compile Include="ViewModels\MediaConditionsViewVM.cs" />
<Compile Include="ViewModels\MediaMaterialsViewVM.cs" />
<Compile Include="ViewModels\MediaPurposesViewVM.cs" />
<Compile Include="ViewModels\MidTankTypesViewVM.cs" />
<Compile Include="ViewModels\HardwareMotorTypesViewVM.cs" />
<Compile Include="ViewModels\MultiComboVM.cs" />
<Compile Include="ViewModels\OrganizationsViewVM.cs" />
<Compile Include="ViewModels\PermissionsViewVM.cs" />
<Compile Include="ViewModels\HardwarePidControlTypesViewVM.cs" />
<Compile Include="ViewModels\ProcessParametersTablesViewVM.cs" />
<Compile Include="ViewModels\ProcessParametersTablesGroupsViewVM.cs" />
<Compile Include="ViewModels\RmlsViewVM.cs" />
<Compile Include="ViewModels\RolesViewVM.cs" />
<Compile Include="ViewModels\SpoolTypesViewVM.cs" />
<Compile Include="ViewModels\UsersViewVM.cs" />
<Compile Include="ViewModels\EntityViewModel.cs" />
<Compile Include="ViewModels\MainViewVM.cs" />
<Compile Include="ViewModelLocator.cs" />
<Compile Include="Views\DBViews\ActionTypesView.xaml.cs">
<DependentUpon>ActionTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ActionTypeView.xaml.cs">
<DependentUpon>ActionTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\SpoolTypesView.xaml.cs">
<DependentUpon>SpoolTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\SpoolTypeView.xaml.cs">
<DependentUpon>SpoolTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\EventTypesGroupsView.xaml.cs">
<DependentUpon>EventTypesGroupsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\EventTypesGroupView.xaml.cs">
<DependentUpon>EventTypesGroupView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwarePidControlTypesView.xaml.cs">
<DependentUpon>HardwarePidControlTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwareDancerTypesView.xaml.cs">
<DependentUpon>HardwareDancerTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwarePidControlTypeView.xaml.cs">
<DependentUpon>HardwarePidControlTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwareDancerTypeView.xaml.cs">
<DependentUpon>HardwareDancerTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwareMotorTypeView.xaml.cs">
<DependentUpon>HardwareMotorTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwareMotorTypesView.xaml.cs">
<DependentUpon>HardwareMotorTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\IdsPackFormulasView.xaml.cs">
<DependentUpon>IdsPackFormulasView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\IdsPackFormulaView.xaml.cs">
<DependentUpon>IdsPackFormulaView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ProcessParametersTablesGroupsView.xaml.cs">
<DependentUpon>ProcessParametersTablesGroupsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ProcessParametersTablesGroupView.xaml.cs">
<DependentUpon>ProcessParametersTablesGroupView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ProcessParametersTablesView.xaml.cs">
<DependentUpon>ProcessParametersTablesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ProcessParametersTableView.xaml.cs">
<DependentUpon>ProcessParametersTableView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MidTankTypesView.xaml.cs">
<DependentUpon>MidTankTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MidTankTypeView.xaml.cs">
<DependentUpon>MidTankTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\CatsView.xaml.cs">
<DependentUpon>CatsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\CctsView.xaml.cs">
<DependentUpon>CctsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\CatView.xaml.cs">
<DependentUpon>CatView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\CctView.xaml.cs">
<DependentUpon>CctView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\RmlView.xaml.cs">
<DependentUpon>RmlView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\RmlsView.xaml.cs">
<DependentUpon>RmlsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ContactView.xaml.cs">
<DependentUpon>ContactView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ContactsView.xaml.cs">
<DependentUpon>ContactsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaConditionsView.xaml.cs">
<DependentUpon>MediaConditionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaConditionView.xaml.cs">
<DependentUpon>MediaConditionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\LinearMassDensityUnitsView.xaml.cs">
<DependentUpon>LinearMassDensityUnitsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\LinearMassDensityUnitView.xaml.cs">
<DependentUpon>LinearMassDensityUnitView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\FiberShapesView.xaml.cs">
<DependentUpon>FiberShapesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\FiberShapeView.xaml.cs">
<DependentUpon>FiberShapeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\FiberSynthsView.xaml.cs">
<DependentUpon>FiberSynthsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\FiberSynthView.xaml.cs">
<DependentUpon>FiberSynthView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaPurposesView.xaml.cs">
<DependentUpon>MediaPurposesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaMaterialsView.xaml.cs">
<DependentUpon>MediaMaterialsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaColorView.xaml.cs">
<DependentUpon>MediaColorView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaPurposView.xaml.cs">
<DependentUpon>MediaPurposView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaMaterialView.xaml.cs">
<DependentUpon>MediaMaterialView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MediaColorsView.xaml.cs">
<DependentUpon>MediaColorsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\IdsPacksView.xaml.cs">
<DependentUpon>IdsPacksView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\CartridgeTypesView.xaml.cs">
<DependentUpon>CartridgeTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\DispenserTypesView.xaml.cs">
<DependentUpon>DispenserTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\CartridgeTypeView.xaml.cs">
<DependentUpon>CartridgeTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\DispenserTypeView.xaml.cs">
<DependentUpon>DispenserTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\IdsPackView.xaml.cs">
<DependentUpon>IdsPackView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\LiquidTypeView.xaml.cs">
<DependentUpon>LiquidTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\LiquidTypesView.xaml.cs">
<DependentUpon>LiquidTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwareVersionView.xaml.cs">
<DependentUpon>HardwareVersionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\EmbeddedFirmwareVersionView.xaml.cs">
<DependentUpon>EmbeddedFirmwareVersionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ApplicationOsVersionView.xaml.cs">
<DependentUpon>ApplicationOsVersionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ApplicationFirmwareVersionView.xaml.cs">
<DependentUpon>ApplicationFirmwareVersionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\HardwareVersionsView.xaml.cs">
<DependentUpon>HardwareVersionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\EmbeddedFirmwareVersionsView.xaml.cs">
<DependentUpon>EmbeddedFirmwareVersionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ApplicationOsVersionsView.xaml.cs">
<DependentUpon>ApplicationOsVersionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ApplicationFirmwareVersionsView.xaml.cs">
<DependentUpon>ApplicationFirmwareVersionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ConfigurationsView.xaml.cs">
<DependentUpon>ConfigurationsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ApplicationDisplayPanelVersionsView.xaml.cs">
<DependentUpon>ApplicationDisplayPanelVersionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MachineVersionsView.xaml.cs">
<DependentUpon>MachineVersionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ApplicationDisplayPanelVersionView.xaml.cs">
<DependentUpon>ApplicationDisplayPanelVersionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MachineVersionView.xaml.cs">
<DependentUpon>MachineVersionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\ConfigurationView.xaml.cs">
<DependentUpon>ConfigurationView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\PermissionView.xaml.cs">
<DependentUpon>PermissionView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\PermissionsView.xaml.cs">
<DependentUpon>PermissionsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\RoleView.xaml.cs">
<DependentUpon>RoleView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\RolesView.xaml.cs">
<DependentUpon>RolesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\AddressesView.xaml.cs">
<DependentUpon>AddressesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\AddressView.xaml.cs">
<DependentUpon>AddressView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MachinesView.xaml.cs">
<DependentUpon>MachinesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\MachineView.xaml.cs">
<DependentUpon>MachineView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\OrganizationsView.xaml.cs">
<DependentUpon>OrganizationsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\OrganizationView.xaml.cs">
<DependentUpon>OrganizationView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\EventTypesView.xaml.cs">
<DependentUpon>EventTypesView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\LiquidTypesRmlsView.xaml.cs">
<DependentUpon>LiquidTypesRmlsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\UsersView.xaml.cs">
<DependentUpon>UsersView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\EventTypeView.xaml.cs">
<DependentUpon>EventTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\LiquidTypesRmlView.xaml.cs">
<DependentUpon>LiquidTypesRmlView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\DBViews\UserView.xaml.cs">
<DependentUpon>UserView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\MainDBView.xaml.cs">
<DependentUpon>MainDBView.xaml</DependentUpon>
</Compile>
<Page Include="Controls\DbTableView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="Controls\DbTableView.xaml.cs">
<DependentUpon>DbTableView.xaml</DependentUpon>
</Compile>
<Compile Include="Controls\TableGrid.cs" />
<Compile Include="Converters\UsersRolesToStringConverter.cs" />
<Compile Include="CustomAttributes\DBViewAttribute.cs" />
<Compile Include="Managers\RegisteredView.cs" />
<Compile Include="Managers\ViewsManager.cs" />
<Page Include="Views\DBViews\ActionTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ActionTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\SpoolTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\SpoolTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\EventTypesGroupsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\EventTypesGroupView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwarePidControlTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwareDancerTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwarePidControlTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwareDancerTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwareMotorTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwareMotorTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\IdsPackFormulasView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\IdsPackFormulaView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ProcessParametersTablesGroupsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ProcessParametersTablesGroupView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ProcessParametersTablesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ProcessParametersTableView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MidTankTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MidTankTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\CatsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\CctsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\CatView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\CctView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\RmlView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\RmlsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ContactView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ContactsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaConditionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaConditionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\LinearMassDensityUnitsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\LinearMassDensityUnitView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\FiberShapesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\FiberShapeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\FiberSynthsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\FiberSynthView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaPurposesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaMaterialsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaColorView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaPurposView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaMaterialView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MediaColorsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\IdsPacksView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\CartridgeTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\DispenserTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\CartridgeTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\DispenserTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\IdsPackView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\LiquidTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\LiquidTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwareVersionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\EmbeddedFirmwareVersionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ApplicationOsVersionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ApplicationFirmwareVersionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\HardwareVersionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\EmbeddedFirmwareVersionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ApplicationOsVersionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ApplicationFirmwareVersionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ConfigurationsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ApplicationDisplayPanelVersionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MachineVersionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ApplicationDisplayPanelVersionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MachineVersionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\ConfigurationView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\PermissionView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\PermissionsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\RoleView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\RolesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\AddressesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\AddressView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MachinesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\MachineView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\OrganizationsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\OrganizationView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\EventTypesView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\LiquidTypesRmlsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\UsersView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\EventTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\LiquidTypesRmlView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\DBViews\UserView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\MainDBView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="App.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Tango.BL\Tango.BL.csproj">
<Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project>
<Name>Tango.BL</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Tango.ColorPicker\Tango.ColorPicker.csproj">
<Project>{a2f5af44-29ff-45d6-9d25-ecda5cce88b5}</Project>
<Name>Tango.ColorPicker</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Tango.Core\Tango.Core.csproj">
<Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
<Name>Tango.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Tango.DAL.Remote\Tango.DAL.Remote.csproj">
<Project>{38197109-8610-4d3f-92b9-16d48df94d7c}</Project>
<Name>Tango.DAL.Remote</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Tango.Integration\Tango.Integration.csproj">
<Project>{4206ac58-3b57-4699-8835-90bf6db01a61}</Project>
<Name>Tango.Integration</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Tango.SharedUI\Tango.SharedUI.csproj">
<Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
<Name>Tango.SharedUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
<Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
<Name>Tango.MachineStudio.Common</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Resource Include="Images\moduleImage.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Images\db.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Images\seamless-grid.jpg" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
<UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project>