aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-09-17 18:01:34 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-09-17 18:01:34 +0300
commitfccf28feafb784d16603a8ce1cdeddc57be9471d (patch)
tree5805f33af71e78be124d1a58a0b90414484d33f2 /Software
parent09d6814981ea6103f27843aef998ae261269c632 (diff)
downloadTango-fccf28feafb784d16603a8ce1cdeddc57be9471d.tar.gz
Tango-fccf28feafb784d16603a8ce1cdeddc57be9471d.zip
Started working on tech heaters.
Diffstat (limited to 'Software')
-rw-r--r--Software/DB/Tango.mdfbin75497472 -> 75497472 bytes
-rw-r--r--Software/DB/Tango_log.ldfbin15400960 -> 15400960 bytes
-rw-r--r--Software/Graphics/heater-controller.pngbin0 -> 1136 bytes
-rw-r--r--Software/PMR/Messages/Diagnostics/HeaterState.proto16
-rw-r--r--Software/PMR/Messages/Diagnostics/HeaterType.proto31
-rw-r--r--Software/PMR/Messages/Diagnostics/SetHeaterStateRequest.proto13
-rw-r--r--Software/PMR/Messages/Diagnostics/SetHeaterStateResponse.proto9
-rw-r--r--Software/PMR/Messages/Diagnostics/StartDiagnosticsResponse.proto4
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml94
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml.cs102
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/heater-controller.pngbin0 -> 1136 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj13
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs82
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs1
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs101
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs6
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs47
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesContext.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesStaticCollections.cs1
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Tango.BL.csproj3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx36
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram133
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs24
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj5
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterState.cs303
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs51
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateRequest.cs218
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateResponse.cs131
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/StartDiagnosticsResponse.cs43
-rw-r--r--Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj6
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs23
34 files changed, 1502 insertions, 79 deletions
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf
index f6cd64958..799dc0f37 100644
--- a/Software/DB/Tango.mdf
+++ b/Software/DB/Tango.mdf
Binary files differ
diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf
index bbc28ea0b..ab520a1f0 100644
--- a/Software/DB/Tango_log.ldf
+++ b/Software/DB/Tango_log.ldf
Binary files differ
diff --git a/Software/Graphics/heater-controller.png b/Software/Graphics/heater-controller.png
new file mode 100644
index 000000000..71d6698ec
--- /dev/null
+++ b/Software/Graphics/heater-controller.png
Binary files differ
diff --git a/Software/PMR/Messages/Diagnostics/HeaterState.proto b/Software/PMR/Messages/Diagnostics/HeaterState.proto
new file mode 100644
index 000000000..2227dea7c
--- /dev/null
+++ b/Software/PMR/Messages/Diagnostics/HeaterState.proto
@@ -0,0 +1,16 @@
+syntax = "proto3";
+
+import "HeaterType.proto";
+
+package Tango.PMR.Diagnostics;
+option java_package = "com.twine.tango.pmr.diagnostics";
+
+message HeaterState
+{
+ HeaterType HeaterType = 1;
+ double SetPoint = 2;
+ double CurrentValue = 3;
+ bool IsActive = 4;
+ bool IsRampingUp = 5;
+ bool IsInSetPoint = 6;
+} \ No newline at end of file
diff --git a/Software/PMR/Messages/Diagnostics/HeaterType.proto b/Software/PMR/Messages/Diagnostics/HeaterType.proto
new file mode 100644
index 000000000..156152d6c
--- /dev/null
+++ b/Software/PMR/Messages/Diagnostics/HeaterType.proto
@@ -0,0 +1,31 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Tango PMR Generator
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated. Do not modify!
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+syntax = "proto3";
+
+package Tango.PMR.Diagnostics;
+option java_package = "com.twine.tango.pmr.diagnostics";
+
+enum HeaterType
+{
+
+ HeaterZone1 = 0;
+
+ HeaterZone2 = 1;
+
+ HeaterZone3 = 2;
+
+ HeaterZone4 = 3;
+
+ HeaterZone5 = 4;
+
+ HeaterZone6 = 5;
+
+}
diff --git a/Software/PMR/Messages/Diagnostics/SetHeaterStateRequest.proto b/Software/PMR/Messages/Diagnostics/SetHeaterStateRequest.proto
new file mode 100644
index 000000000..e1553d50a
--- /dev/null
+++ b/Software/PMR/Messages/Diagnostics/SetHeaterStateRequest.proto
@@ -0,0 +1,13 @@
+syntax = "proto3";
+
+import "HeaterType.proto";
+
+package Tango.PMR.Diagnostics;
+option java_package = "com.twine.tango.pmr.diagnostics";
+
+message SetHeaterStateRequest
+{
+ HeaterType HeaterType = 1;
+ double SetPoint = 2;
+ bool IsActive = 3;
+} \ No newline at end of file
diff --git a/Software/PMR/Messages/Diagnostics/SetHeaterStateResponse.proto b/Software/PMR/Messages/Diagnostics/SetHeaterStateResponse.proto
new file mode 100644
index 000000000..876abd9fc
--- /dev/null
+++ b/Software/PMR/Messages/Diagnostics/SetHeaterStateResponse.proto
@@ -0,0 +1,9 @@
+syntax = "proto3";
+
+package Tango.PMR.Diagnostics;
+option java_package = "com.twine.tango.pmr.diagnostics";
+
+message SetHeaterStateResponse
+{
+
+} \ No newline at end of file
diff --git a/Software/PMR/Messages/Diagnostics/StartDiagnosticsResponse.proto b/Software/PMR/Messages/Diagnostics/StartDiagnosticsResponse.proto
index 2f03d00fd..cb1ff43b7 100644
--- a/Software/PMR/Messages/Diagnostics/StartDiagnosticsResponse.proto
+++ b/Software/PMR/Messages/Diagnostics/StartDiagnosticsResponse.proto
@@ -3,6 +3,7 @@ syntax = "proto3";
import "DigitalInterfaceState.proto";
import "ValueComponentState.proto";
import "DiagnosticsMonitors.proto";
+import "HeaterState.proto";
package Tango.PMR.Diagnostics;
option java_package = "com.twine.tango.pmr.diagnostics";
@@ -17,4 +18,7 @@ message StartDiagnosticsResponse
//Value Components Effective Values
repeated ValueComponentState ComponentsStates = 3;
+
+ //Heaters States
+ repeated HeaterState HeatersStates = 4;
} \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml
new file mode 100644
index 000000000..f72c5ad08
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml
@@ -0,0 +1,94 @@
+<local:ElementEditor x:Class="Tango.MachineStudio.Technician.Editors.HeaterElementEditor"
+ 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:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:items="clr-namespace:Tango.MachineStudio.Technician.TechItems"
+ xmlns:converters="clr-namespace:Tango.Editors.Converters;assembly=Tango.Editors"
+ xmlns:visuals="clr-namespace:Tango.Visuals;assembly=Tango.Visuals"
+ xmlns:local="clr-namespace:Tango.Editors;assembly=Tango.Editors"
+ mc:Ignorable="d" Background="Transparent" ClipToBounds="False" BorderThickness="0" MinWidth="1" MinHeight="1" RenderTransformOrigin="0.5,0.5" d:DataContext="{d:DesignInstance Type=items:HeaterItem, IsDesignTimeCreatable=False}" Height="99.188" Width="163.459">
+
+ <UserControl.Resources>
+ <converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"></converters:BoolToVisibilityConverter>
+ <sharedConverters:BooleanInverseConverter x:Key="BooleanInverseConverter" />
+
+ <!--Theme-->
+ <SolidColorBrush x:Key="BorderBrush" Color="Transparent"></SolidColorBrush>
+ <SolidColorBrush x:Key="CornersBrush" Color="Red"></SolidColorBrush>
+ </UserControl.Resources>
+
+ <UserControl.RenderTransform>
+ <RotateTransform Angle="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=Angle}"></RotateTransform>
+ </UserControl.RenderTransform>
+
+ <Grid>
+
+
+ <!--Content-->
+ <Grid>
+
+ <Image Source="../Images/blower-big.png"></Image>
+
+ <Border Margin="0 0 0 -23" VerticalAlignment="Bottom">
+ <TextBlock Text="{Binding HardwareBlowerType.Description}" FontSize="14" Foreground="DimGray" HorizontalAlignment="Center"></TextBlock>
+ </Border>
+ </Grid>
+ <!--Content-->
+
+
+ <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}">
+ <Border.Style>
+ <Style TargetType="Border">
+ <Setter Property="Visibility" Value="Collapsed"></Setter>
+ <Style.Triggers>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" />
+ <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" />
+ </MultiDataTrigger.Conditions>
+
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </MultiDataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Border.Style>
+ <Grid>
+ <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter>
+
+ <Thumb Opacity="0" DragDelta="MoveDrag" DragStarted="DragStarted" DragCompleted="OnDragEnded"></Thumb>
+ <Thumb HorizontalAlignment="Left" Cursor="SizeWE" Opacity="0" DragDelta="DragLeft" DragStarted="DragStarted" DragCompleted="OnDragEnded"></Thumb>
+ <Thumb HorizontalAlignment="Right" Cursor="SizeWE" Opacity="0" DragDelta="DragRight" DragStarted="DragStarted" DragCompleted="OnDragEnded"></Thumb>
+ <Thumb VerticalAlignment="Top" Cursor="SizeNS" Opacity="0" DragDelta="DragTop" DragStarted="DragStarted" DragCompleted="OnDragEnded"></Thumb>
+ <Thumb VerticalAlignment="Bottom" Cursor="SizeNS" Opacity="0" DragDelta="DragBottom" DragStarted="DragStarted" DragCompleted="OnDragEnded"></Thumb>
+
+ <Grid ClipToBounds="False" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0 -20 0 0" Width="10" Height="10">
+ <Ellipse Stroke="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=CornersBrush,TargetNullValue={StaticResource CornersBrush},FallbackValue={StaticResource CornersBrush}}" StrokeThickness="2"></Ellipse>
+ <Rectangle HorizontalAlignment="Center" VerticalAlignment="Stretch" Margin="0 10 0 -8" StrokeThickness="1" Stroke="Red"></Rectangle>
+ <Thumb Opacity="0" DragDelta="DragAngle" DragStarted="DragStarted" Cursor="Arrow" DragCompleted="OnDragEnded"></Thumb>
+ </Grid>
+
+ <Grid Width="10" Height="10" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="-8 -8 0 0">
+ <Border BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=CornersBrush,TargetNullValue={StaticResource CornersBrush},FallbackValue={StaticResource CornersBrush}}" BorderThickness="2 2 0 0"></Border>
+ <Thumb Opacity="0" DragDelta="DragTopLeft" DragStarted="DragStarted" Cursor="SizeNWSE" DragCompleted="OnDragEnded"></Thumb>
+ </Grid>
+
+ <Grid Width="10" Height="10" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 -8 -8 0">
+ <Border BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=CornersBrush,TargetNullValue={StaticResource CornersBrush},FallbackValue={StaticResource CornersBrush}}" BorderThickness="0 2 2 0"></Border>
+ <Thumb Opacity="0" DragDelta="DragTopRight" DragStarted="DragStarted" Cursor="SizeNESW" DragCompleted="OnDragEnded"></Thumb>
+ </Grid>
+
+ <Grid Width="10" Height="10" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0 0 -8 -8">
+ <Border BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=CornersBrush,TargetNullValue={StaticResource CornersBrush},FallbackValue={StaticResource CornersBrush}}" BorderThickness="0 0 2 2"></Border>
+ <Thumb Opacity="0" DragDelta="DragBottomRight" DragStarted="DragStarted" Cursor="SizeNWSE" DragCompleted="OnDragEnded"></Thumb>
+ </Grid>
+
+ <Grid Width="10" Height="10" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="-8 0 0 -8">
+ <Border BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=CornersBrush,TargetNullValue={StaticResource CornersBrush},FallbackValue={StaticResource CornersBrush}}" BorderThickness="2 0 0 2"></Border>
+ <Thumb Opacity="0" DragDelta="DragBottomLeft" DragStarted="DragStarted" Cursor="SizeNESW" DragCompleted="OnDragEnded"></Thumb>
+ </Grid>
+ </Grid>
+ </Border>
+ </Grid>
+</local:ElementEditor>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml.cs
new file mode 100644
index 000000000..b0b28454a
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/HeaterElementEditor.xaml.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.Editors;
+using Tango.BL.Entities;
+using Tango.MachineStudio.Technician.TechItems;
+using Tango.Core;
+
+namespace Tango.MachineStudio.Technician.Editors
+{
+ [ContentProperty("InnerContent")]
+ public partial class HeaterElementEditor : ElementEditor
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MonitorElementEditor"/> class.
+ /// </summary>
+ public HeaterElementEditor()
+ : base()
+ {
+ InitializeComponent();
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MonitorElementEditor"/> class.
+ /// </summary>
+ /// <param name="frameworkElement">The framework element.</param>
+ public HeaterElementEditor(HeaterItem heaterItem)
+ : this()
+ {
+ HeaterItem = heaterItem;
+ DataContext = HeaterItem;
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MonitorElementEditor"/> class.
+ /// </summary>
+ /// <param name="frameworkElement">The framework element.</param>
+ /// <param name="bounds">The bounds.</param>
+ public HeaterElementEditor(HeaterItem heaterItem, Rect bounds)
+ : this(heaterItem)
+ {
+ Left = bounds.Left;
+ Top = bounds.Top;
+ Width = bounds.Width;
+ Height = bounds.Height;
+ }
+
+ private HeaterItem _heaterItem;
+ public HeaterItem HeaterItem
+ {
+ get { return _heaterItem; }
+ set { _heaterItem = value; RaisePropertyChanged(nameof(HeaterItem)); }
+ }
+
+
+ /// <summary>
+ /// Clones this instance.
+ /// </summary>
+ /// <returns></returns>
+ public override IElementEditor Clone()
+ {
+ try
+ {
+ var clonedItem = HeaterItem.Clone() as HeaterItem;
+ HeaterElementEditor cloned = new HeaterElementEditor(clonedItem);
+ cloned.Top = Top;
+ cloned.Left = Left;
+ cloned.Width = Width;
+ cloned.Height = Height;
+ cloned.Angle = Angle;
+ return cloned;
+ }
+ catch (Exception ex)
+ {
+ throw new InvalidOperationException("Could not clone this editor. You may have to create a custom editor and implement a custom Clone method.", ex);
+ }
+ }
+
+ /// <summary>
+ /// Gets the hosted element.
+ /// </summary>
+ [ParameterIgnore]
+ public override Object HostedElement
+ {
+ get { return HeaterItem; }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/heater-controller.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/heater-controller.png
new file mode 100644
index 000000000..71d6698ec
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/heater-controller.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj
index 73039bc4b..21fcf3e24 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj
@@ -100,6 +100,9 @@
<Compile Include="Converters\TechIosToDigitalInsConverter.cs" />
<Compile Include="Converters\TechIosToDigitalOutsConverter.cs" />
<Compile Include="Converters\TransitionLinkConverter.cs" />
+ <Compile Include="Editors\HeaterElementEditor.xaml.cs">
+ <DependentUpon>HeaterElementEditor.xaml</DependentUpon>
+ </Compile>
<Compile Include="Editors\TextElementEditor.xaml.cs">
<DependentUpon>TextElementEditor.xaml</DependentUpon>
</Compile>
@@ -233,6 +236,7 @@
<Compile Include="TechItems\ControllerItem.cs" />
<Compile Include="TechItems\DigitalInItem.cs" />
<Compile Include="TechItems\DigitalOutItem.cs" />
+ <Compile Include="TechItems\HeaterItem.cs" />
<Compile Include="TechItems\JobRunnerItem.cs" />
<Compile Include="TechItems\MeterItem.cs" />
<Compile Include="TechItems\MotorActionType.cs" />
@@ -258,6 +262,10 @@
<Compile Include="Views\MachineTechView.xaml.cs">
<DependentUpon>MachineTechView.xaml</DependentUpon>
</Compile>
+ <Page Include="Editors\HeaterElementEditor.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
<Page Include="Editors\TextElementEditor.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -634,10 +642,13 @@
<ItemGroup>
<Resource Include="Images\text.png" />
</ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\heater-controller.png" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <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> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs
new file mode 100644
index 000000000..e1221e1f2
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs
@@ -0,0 +1,82 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media;
+using System.Xml.Serialization;
+using Tango.BL.Entities;
+using Tango.PMR.Diagnostics;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.MachineStudio.Technician.TechItems
+{
+ /// <summary>
+ /// Represents a heater controller.
+ /// </summary>
+ /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" />
+ [TechItem(10)]
+ public class HeaterItem : TechItem
+ {
+ private TechHeater _techHeater;
+ /// <summary>
+ /// Gets or sets the db tech monitor.
+ /// </summary>
+ [XmlIgnore]
+ public TechHeater TechHeater
+ {
+ get { return _techHeater; }
+ set { _techHeater = value; RaisePropertyChangedAuto(); TechName = _techHeater != null ? _techHeater.Description : null; ItemGuid = value != null ? value.Guid : null; }
+ }
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HeaterItem"/> class.
+ /// </summary>
+ public HeaterItem() : base()
+ {
+ Name = "Heater Controller";
+ Color = Colors.White;
+ Description = "Heater Controller";
+ Image = ResourceHelper.GetImageFromResources("Images/heater-controller.png");
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="HeaterItem"/> class.
+ /// </summary>
+ /// <param name="TechHeater">The db tech monitor.</param>
+ public HeaterItem(TechHeater techHeater) : this()
+ {
+ TechHeater = techHeater;
+ }
+
+ private HeaterState _heaterState;
+ /// <summary>
+ /// Gets or sets the state of the heater.
+ /// </summary>
+ public HeaterState HeaterState
+ {
+ get { return _heaterState; }
+ set { _heaterState = value; RaisePropertyChangedAuto(); }
+ }
+
+ private double _setPoint;
+ /// <summary>
+ /// Gets or sets the set point.
+ /// </summary>
+ public double SetPoint
+ {
+ get { return _setPoint; }
+ set { _setPoint = value; RaisePropertyChangedAuto(); }
+ }
+
+ /// <summary>
+ /// Clones this instance.
+ /// </summary>
+ /// <returns></returns>
+ public override TechItem Clone()
+ {
+ HeaterItem cloned = base.Clone() as HeaterItem;
+ cloned.TechHeater = TechHeater;
+ return cloned;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs
index 04b6c1fab..0d7568d68 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs
@@ -39,6 +39,7 @@ namespace Tango.MachineStudio.Technician.TechItems
[XmlInclude(typeof(ProcessParametersItem))]
[XmlInclude(typeof(JobRunnerItem))]
[XmlInclude(typeof(TextItem))]
+ [XmlInclude(typeof(HeaterItem))]
public abstract class TechItem : ExtendedObject
{
/// <summary>
diff --git a/Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs b/Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs
new file mode 100644
index 000000000..5ebf86451
--- /dev/null
+++ b/Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs
@@ -0,0 +1,101 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Tango Observables Generator
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated. Do not modify!
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+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;
+using Tango.Core;
+
+namespace Tango.BL.Entities
+{
+ [Table("TECH_HEATERS")]
+ public partial class TechHeater : ObservableEntity<TechHeater>
+ {
+
+ protected Int32 _code;
+
+ /// <summary>
+ /// Gets or sets the techheater code.
+ /// </summary>
+
+ [Column("CODE")]
+
+ public Int32 Code
+ {
+ get
+ {
+ return _code;
+ }
+
+ set
+ {
+ _code = value; RaisePropertyChanged(nameof(Code));
+ }
+
+ }
+
+ protected String _name;
+
+ /// <summary>
+ /// Gets or sets the techheater name.
+ /// </summary>
+
+ [Column("NAME")]
+
+ public String Name
+ {
+ get
+ {
+ return _name;
+ }
+
+ set
+ {
+ _name = value; RaisePropertyChanged(nameof(Name));
+ }
+
+ }
+
+ protected String _description;
+
+ /// <summary>
+ /// Gets or sets the techheater description.
+ /// </summary>
+
+ [Column("DESCRIPTION")]
+
+ public String Description
+ {
+ get
+ {
+ return _description;
+ }
+
+ set
+ {
+ _description = value; RaisePropertyChanged(nameof(Description));
+ }
+
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TechHeater" /> class.
+ /// </summary>
+ public TechHeater() : base()
+ {
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
index 7d1b7cda3..b4fc2b82a 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
@@ -908,6 +908,12 @@ namespace Tango.BL.Enumerations
MotorDispenser7UnderVoltage = 155,
/// <summary>
+ /// ( Motor Dispenser 8 Under Voltage)
+ /// </summary>
+ [Description(" Motor Dispenser 8 Under Voltage")]
+ MotorDispenser8UnderVoltage = 156,
+
+ /// <summary>
/// (Occurs a request has been sent to the machine or external bridge service)
/// </summary>
[Description("Occurs a request has been sent to the machine or external bridge service")]
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs b/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs
index 075422bb7..45e72beee 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs
@@ -1,3 +1,13 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Tango Observables Generator
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated. Do not modify!
+// </auto-generated>
+//------------------------------------------------------------------------------
+
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -8,5 +18,42 @@ namespace Tango.BL.Enumerations
{
public enum TechHeaters
{
+
+ /// <summary>
+ /// (Heater Zone 1)
+ /// </summary>
+ [Description("Heater Zone 1")]
+ HeaterZone1 = 0,
+
+ /// <summary>
+ /// (Heater Zone 2)
+ /// </summary>
+ [Description("Heater Zone 2")]
+ HeaterZone2 = 1,
+
+ /// <summary>
+ /// (Heater Zone 3)
+ /// </summary>
+ [Description("Heater Zone 3")]
+ HeaterZone3 = 2,
+
+ /// <summary>
+ /// (Heater Zone 4)
+ /// </summary>
+ [Description("Heater Zone 4")]
+ HeaterZone4 = 3,
+
+ /// <summary>
+ /// (Heater Zone 5)
+ /// </summary>
+ [Description("Heater Zone 5")]
+ HeaterZone5 = 4,
+
+ /// <summary>
+ /// (Heater Zone 6)
+ /// </summary>
+ [Description("Heater Zone 6")]
+ HeaterZone6 = 5,
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs
index b9c11fc8d..0c8557173 100644
--- a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs
+++ b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs
@@ -575,6 +575,14 @@ namespace Tango.BL
}
/// <summary>
+ /// Gets or sets the TechHeaters.
+ /// </summary>
+ public DbSet<TechHeater> TechHeaters
+ {
+ get; set;
+ }
+
+ /// <summary>
/// Gets or sets the TechIos.
/// </summary>
public DbSet<TechIo> TechIos
diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs
index 9d564192e..dbe06364a 100644
--- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs
+++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs
@@ -2501,6 +2501,42 @@ namespace Tango.BL
}
+ private ObservableCollection<TechHeater> _techheaters;
+ /// <summary>
+ /// Gets or sets the TechHeaters.
+ /// </summary>
+ public ObservableCollection<TechHeater> TechHeaters
+ {
+ get
+ {
+ return _techheaters;
+ }
+
+ set
+ {
+ _techheaters = value; RaisePropertyChanged(nameof(TechHeaters));
+ }
+
+ }
+
+ private ICollectionView _techheatersViewSource;
+ /// <summary>
+ /// Gets or sets the TechHeaters View Source.
+ ///</summary>
+ public ICollectionView TechHeatersViewSource
+ {
+ get
+ {
+ return _techheatersViewSource;
+ }
+
+ set
+ {
+ _techheatersViewSource = value; RaisePropertyChanged(nameof(TechHeatersViewSource));
+ }
+
+ }
+
private ObservableCollection<TechIo> _techios;
/// <summary>
/// Gets or sets the TechIos.
@@ -2861,6 +2897,8 @@ namespace Tango.BL
TechDispensersViewSource = CreateCollectionView(TechDispensers);
+ TechHeatersViewSource = CreateCollectionView(TechHeaters);
+
TechIosViewSource = CreateCollectionView(TechIos);
TechMonitorsViewSource = CreateCollectionView(TechMonitors);
diff --git a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollections.cs b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollections.cs
index 4820c784b..c6b120ea4 100644
--- a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollections.cs
+++ b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollections.cs
@@ -78,6 +78,7 @@ namespace Tango.BL
TechIos = db.TechIos.ToObservableCollection();
TechMonitors = db.TechMonitors.ToObservableCollection();
TechValves = db.TechValves.ToObservableCollection();
+ TechHeaters = db.TechHeaters.ToObservableCollection();
Machines = db.Machines.Include(x => x.Organization).ToObservableCollection();
diff --git a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs
index 38db29aab..911a6421e 100644
--- a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs
+++ b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs
@@ -2501,6 +2501,42 @@ namespace Tango.BL
}
+ private ObservableCollection<TechHeater> _techheaters;
+ /// <summary>
+ /// Gets or sets the TechHeaters.
+ /// </summary>
+ public ObservableCollection<TechHeater> TechHeaters
+ {
+ get
+ {
+ return _techheaters;
+ }
+
+ set
+ {
+ _techheaters = value; RaisePropertyChanged(nameof(TechHeaters));
+ }
+
+ }
+
+ private ICollectionView _techheatersViewSource;
+ /// <summary>
+ /// Gets or sets the TechHeaters View Source.
+ ///</summary>
+ public ICollectionView TechHeatersViewSource
+ {
+ get
+ {
+ return _techheatersViewSource;
+ }
+
+ set
+ {
+ _techheatersViewSource = value; RaisePropertyChanged(nameof(TechHeatersViewSource));
+ }
+
+ }
+
private ObservableCollection<TechIo> _techios;
/// <summary>
/// Gets or sets the TechIos.
@@ -2861,6 +2897,8 @@ namespace Tango.BL
TechDispensersViewSource = CreateCollectionView(TechDispensers);
+ TechHeatersViewSource = CreateCollectionView(TechHeaters);
+
TechIosViewSource = CreateCollectionView(TechIos);
TechMonitorsViewSource = CreateCollectionView(TechMonitors);
diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj
index a9894d79c..932a0279f 100644
--- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj
+++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj
@@ -126,6 +126,7 @@
<Compile Include="Entities\Sysdiagram.cs" />
<Compile Include="Entities\TangoVersion.cs" />
<Compile Include="Entities\TechController.cs" />
+ <Compile Include="Entities\TechHeater.cs" />
<Compile Include="Enumerations\ActionTypes.cs" />
<Compile Include="Enumerations\ColorCatalogs.cs" />
<Compile Include="Enumerations\DancerTypes.cs" />
@@ -334,7 +335,7 @@
</Target>
<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" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
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 4e056c513..a20e01387 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
@@ -94,6 +94,7 @@ namespace Tango.DAL.Remote.DB
public virtual DbSet<TANGO_VERSIONS> TANGO_VERSIONS { get; set; }
public virtual DbSet<TECH_CONTROLLERS> TECH_CONTROLLERS { get; set; }
public virtual DbSet<TECH_DISPENSERS> TECH_DISPENSERS { get; set; }
+ public virtual DbSet<TECH_HEATERS> TECH_HEATERS { get; set; }
public virtual DbSet<TECH_IOS> TECH_IOS { get; set; }
public virtual DbSet<TECH_MONITORS> TECH_MONITORS { get; set; }
public virtual DbSet<TECH_VALVES> TECH_VALVES { 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 7942f3f2b..1609463e7 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -983,6 +983,17 @@
<Property Name="NAME" Type="varchar" MaxLength="100" Nullable="false" />
<Property Name="DESCRIPTION" Type="varchar" MaxLength="100" Nullable="false" />
</EntityType>
+ <EntityType Name="TECH_HEATERS">
+ <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" />
+ </EntityType>
<EntityType Name="TECH_IOS">
<Key>
<PropertyRef Name="GUID" />
@@ -2209,6 +2220,7 @@
<EntitySet Name="TANGO_VERSIONS" EntityType="Self.TANGO_VERSIONS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="TECH_CONTROLLERS" EntityType="Self.TECH_CONTROLLERS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="TECH_DISPENSERS" EntityType="Self.TECH_DISPENSERS" Schema="dbo" store:Type="Tables" />
+ <EntitySet Name="TECH_HEATERS" EntityType="Self.TECH_HEATERS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="TECH_IOS" EntityType="Self.TECH_IOS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="TECH_MONITORS" EntityType="Self.TECH_MONITORS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="TECH_VALVES" EntityType="Self.TECH_VALVES" Schema="dbo" store:Type="Tables" />
@@ -2622,6 +2634,7 @@
<EntitySet Name="TANGO_VERSIONS" EntityType="RemoteModel.TANGO_VERSIONS" />
<EntitySet Name="TECH_CONTROLLERS" EntityType="RemoteModel.TECH_CONTROLLERS" />
<EntitySet Name="TECH_DISPENSERS" EntityType="RemoteModel.TECH_DISPENSERS" />
+ <EntitySet Name="TECH_HEATERS" EntityType="RemoteModel.TECH_HEATERS" />
<EntitySet Name="TECH_IOS" EntityType="RemoteModel.TECH_IOS" />
<EntitySet Name="TECH_MONITORS" EntityType="RemoteModel.TECH_MONITORS" />
<EntitySet Name="TECH_VALVES" EntityType="RemoteModel.TECH_VALVES" />
@@ -4094,6 +4107,17 @@
<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" />
</EntityType>
+ <EntityType Name="TECH_HEATERS">
+ <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" />
+ </EntityType>
<EntityType Name="TECH_IOS">
<Key>
<PropertyRef Name="GUID" />
@@ -6314,6 +6338,18 @@
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
+ <EntitySetMapping Name="TECH_HEATERS">
+ <EntityTypeMapping TypeName="RemoteModel.TECH_HEATERS">
+ <MappingFragment StoreEntitySet="TECH_HEATERS">
+ <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="TECH_IOS">
<EntityTypeMapping TypeName="RemoteModel.TECH_IOS">
<MappingFragment StoreEntitySet="TECH_IOS">
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 49224a7c9..27afb3f0f 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,80 +5,81 @@
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1">
- <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="5.25" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="0.75" PointY="55.375" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="0.75" PointY="44.25" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="38.5" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="0.75" PointY="41.375" />
- <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="15.75" PointY="18.5" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="32.5" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="13.25" PointY="25.875" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="3.75" PointY="30.375" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="3.75" PointY="51.625" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="3.75" PointY="64.625" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="3.75" PointY="57.375" />
+ <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="15" PointY="15.125" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="6" PointY="70.875" />
<EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="19.5" />
<EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="40.5" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="13.5" PointY="25.625" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="3" PointY="47" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3" PointY="40.75" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="0.75" PointY="59.625" />
- <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="26.5" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="3" PointY="26.125" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="35.5" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="5.25" PointY="4.375" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="7.5" PointY="3.25" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_CATEGORIES" Width="1.5" PointX="3" PointY="8.5" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_GROUPS" Width="1.5" PointX="3" PointY="5.375" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="12.5" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="26.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="3.75" PointY="65.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="6" PointY="51.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="5.75" PointY="36.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="8" PointY="39.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="6.75" PointY="69.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="9" PointY="55.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.75" PointY="61.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="10" PointY="43.375" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="9.75" PointY="65.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="12" PointY="52" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="6.75" PointY="65.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="9" PointY="51.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="47.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="3.75" PointY="69.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6" PointY="55.625" />
- <EntityTypeShape EntityType="RemoteModel.HTML_PAGES" Width="1.5" PointX="3" PointY="2.125" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="62.5" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="29.75" />
- <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="13.5" PointY="18.125" />
- <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="16.375" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="23.375" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="12.75" PointY="10.375" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="6" PointY="11.5" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="6" PointY="56.875" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="3.75" PointY="26.25" />
+ <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="8.25" PointY="14.75" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="6" PointY="33.125" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="3.75" PointY="54.5" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="13.25" PointY="29" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="15.5" PointY="29.875" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_CATEGORIES" Width="1.5" PointX="11" PointY="29.875" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_GROUPS" Width="1.5" PointX="11" PointY="26.75" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="32.5" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="26.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="3.75" PointY="67.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="6" PointY="62.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="6.75" PointY="52.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="9" PointY="56.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="6.75" PointY="77.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="9" PointY="64.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="9.75" PointY="70.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="12" PointY="58.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="9.75" PointY="52.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="12" PointY="51.25" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="6.75" PointY="73.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="9" PointY="60.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="3.75" PointY="60.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="3.75" PointY="71.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6" PointY="66.75" />
+ <EntityTypeShape EntityType="RemoteModel.HTML_PAGES" Width="1.5" PointX="11" PointY="32.875" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="6" PointY="24.5" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="8.25" PointY="34.875" />
+ <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="12.75" PointY="21.625" />
+ <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="10.5" PointY="16.375" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="29.625" />
<EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="12.625" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="19.875" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="7.5" PointY="9.75" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3" PointY="36.5" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="5.25" PointY="12" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="15.875" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="10.5" PointY="37.125" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="6" PointY="8" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="8.25" PointY="18" />
<EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="10.5" PointY="12.875" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="7.5" PointY="13.375" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="32.125" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="15.5" PointY="24.375" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="12.5" />
<EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="20" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="15.375" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="29.25" />
- <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="29.375" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3" PointY="57.5" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="8.25" PointY="6.625" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="15.875" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="23.75" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="6" PointY="36.375" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="6" PointY="28.5" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="11.25" PointY="45" />
<EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="44.625" />
<EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="46.125" />
<EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="17.125" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="8.25" PointY="34.625" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="10.5" PointY="34.625" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="13.5" PointY="21.375" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="3" PointY="50.625" />
- <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="9.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="7.5" PointY="30" />
- <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="10.75" PointY="3.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="10.75" PointY="7.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="12.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="12.75" PointY="5.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="12.75" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="5.25" PointY="23.625" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="10.5" PointY="29.625" />
- <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="23.375" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="11.25" PointY="40.875" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="13.5" PointY="41" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="12.75" PointY="18.125" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="3.375" />
+ <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="0.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="17.5" PointY="19.25" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="2.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="0.75" PointY="4.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="2.75" PointY="4.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="0.75" PointY="7.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="2.75" PointY="7.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="8.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="8.25" PointY="29" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="13.5" PointY="33.875" />
+ <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="8.25" PointY="25.875" />
<AssociationConnector Association="RemoteModel.FK_EVENTS_ACTIONS_ACTIONS" />
<AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" />
<AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs
new file mode 100644
index 000000000..b37a0c5a1
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs
@@ -0,0 +1,24 @@
+//------------------------------------------------------------------------------
+// <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 TECH_HEATERS
+ {
+ 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; }
+ }
+}
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 c242d3837..a6fdd02d0 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
+++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
@@ -288,6 +288,9 @@
<Compile Include="DB\TECH_DISPENSERS.cs">
<DependentUpon>RemoteADO.tt</DependentUpon>
</Compile>
+ <Compile Include="DB\TECH_HEATERS.cs">
+ <DependentUpon>RemoteADO.tt</DependentUpon>
+ </Compile>
<Compile Include="DB\TECH_IOS.cs">
<DependentUpon>RemoteADO.tt</DependentUpon>
</Compile>
@@ -356,7 +359,7 @@
</Target>
<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" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterState.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterState.cs
new file mode 100644
index 000000000..ac653f694
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterState.cs
@@ -0,0 +1,303 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: HeaterState.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Diagnostics {
+
+ /// <summary>Holder for reflection information generated from HeaterState.proto</summary>
+ public static partial class HeaterStateReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for HeaterState.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static HeaterStateReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChFIZWF0ZXJTdGF0ZS5wcm90bxIVVGFuZ28uUE1SLkRpYWdub3N0aWNzGhBI",
+ "ZWF0ZXJUeXBlLnByb3RvIqkBCgtIZWF0ZXJTdGF0ZRI1CgpIZWF0ZXJUeXBl",
+ "GAEgASgOMiEuVGFuZ28uUE1SLkRpYWdub3N0aWNzLkhlYXRlclR5cGUSEAoI",
+ "U2V0UG9pbnQYAiABKAESFAoMQ3VycmVudFZhbHVlGAMgASgBEhAKCElzQWN0",
+ "aXZlGAQgASgIEhMKC0lzUmFtcGluZ1VwGAUgASgIEhQKDElzSW5TZXRQb2lu",
+ "dBgGIAEoCEIhCh9jb20udHdpbmUudGFuZ28ucG1yLmRpYWdub3N0aWNzYgZw",
+ "cm90bzM="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.HeaterTypeReflection.Descriptor, },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.HeaterState), global::Tango.PMR.Diagnostics.HeaterState.Parser, new[]{ "HeaterType", "SetPoint", "CurrentValue", "IsActive", "IsRampingUp", "IsInSetPoint" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class HeaterState : pb::IMessage<HeaterState> {
+ private static readonly pb::MessageParser<HeaterState> _parser = new pb::MessageParser<HeaterState>(() => new HeaterState());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<HeaterState> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Diagnostics.HeaterStateReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public HeaterState() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public HeaterState(HeaterState other) : this() {
+ heaterType_ = other.heaterType_;
+ setPoint_ = other.setPoint_;
+ currentValue_ = other.currentValue_;
+ isActive_ = other.isActive_;
+ isRampingUp_ = other.isRampingUp_;
+ isInSetPoint_ = other.isInSetPoint_;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public HeaterState Clone() {
+ return new HeaterState(this);
+ }
+
+ /// <summary>Field number for the "HeaterType" field.</summary>
+ public const int HeaterTypeFieldNumber = 1;
+ private global::Tango.PMR.Diagnostics.HeaterType heaterType_ = 0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Tango.PMR.Diagnostics.HeaterType HeaterType {
+ get { return heaterType_; }
+ set {
+ heaterType_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "SetPoint" field.</summary>
+ public const int SetPointFieldNumber = 2;
+ private double setPoint_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double SetPoint {
+ get { return setPoint_; }
+ set {
+ setPoint_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "CurrentValue" field.</summary>
+ public const int CurrentValueFieldNumber = 3;
+ private double currentValue_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double CurrentValue {
+ get { return currentValue_; }
+ set {
+ currentValue_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "IsActive" field.</summary>
+ public const int IsActiveFieldNumber = 4;
+ private bool isActive_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool IsActive {
+ get { return isActive_; }
+ set {
+ isActive_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "IsRampingUp" field.</summary>
+ public const int IsRampingUpFieldNumber = 5;
+ private bool isRampingUp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool IsRampingUp {
+ get { return isRampingUp_; }
+ set {
+ isRampingUp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "IsInSetPoint" field.</summary>
+ public const int IsInSetPointFieldNumber = 6;
+ private bool isInSetPoint_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool IsInSetPoint {
+ get { return isInSetPoint_; }
+ set {
+ isInSetPoint_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as HeaterState);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(HeaterState other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (HeaterType != other.HeaterType) return false;
+ if (SetPoint != other.SetPoint) return false;
+ if (CurrentValue != other.CurrentValue) return false;
+ if (IsActive != other.IsActive) return false;
+ if (IsRampingUp != other.IsRampingUp) return false;
+ if (IsInSetPoint != other.IsInSetPoint) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HeaterType != 0) hash ^= HeaterType.GetHashCode();
+ if (SetPoint != 0D) hash ^= SetPoint.GetHashCode();
+ if (CurrentValue != 0D) hash ^= CurrentValue.GetHashCode();
+ if (IsActive != false) hash ^= IsActive.GetHashCode();
+ if (IsRampingUp != false) hash ^= IsRampingUp.GetHashCode();
+ if (IsInSetPoint != false) hash ^= IsInSetPoint.GetHashCode();
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (HeaterType != 0) {
+ output.WriteRawTag(8);
+ output.WriteEnum((int) HeaterType);
+ }
+ if (SetPoint != 0D) {
+ output.WriteRawTag(17);
+ output.WriteDouble(SetPoint);
+ }
+ if (CurrentValue != 0D) {
+ output.WriteRawTag(25);
+ output.WriteDouble(CurrentValue);
+ }
+ if (IsActive != false) {
+ output.WriteRawTag(32);
+ output.WriteBool(IsActive);
+ }
+ if (IsRampingUp != false) {
+ output.WriteRawTag(40);
+ output.WriteBool(IsRampingUp);
+ }
+ if (IsInSetPoint != false) {
+ output.WriteRawTag(48);
+ output.WriteBool(IsInSetPoint);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (HeaterType != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) HeaterType);
+ }
+ if (SetPoint != 0D) {
+ size += 1 + 8;
+ }
+ if (CurrentValue != 0D) {
+ size += 1 + 8;
+ }
+ if (IsActive != false) {
+ size += 1 + 1;
+ }
+ if (IsRampingUp != false) {
+ size += 1 + 1;
+ }
+ if (IsInSetPoint != false) {
+ size += 1 + 1;
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(HeaterState other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HeaterType != 0) {
+ HeaterType = other.HeaterType;
+ }
+ if (other.SetPoint != 0D) {
+ SetPoint = other.SetPoint;
+ }
+ if (other.CurrentValue != 0D) {
+ CurrentValue = other.CurrentValue;
+ }
+ if (other.IsActive != false) {
+ IsActive = other.IsActive;
+ }
+ if (other.IsRampingUp != false) {
+ IsRampingUp = other.IsRampingUp;
+ }
+ if (other.IsInSetPoint != false) {
+ IsInSetPoint = other.IsInSetPoint;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ heaterType_ = (global::Tango.PMR.Diagnostics.HeaterType) input.ReadEnum();
+ break;
+ }
+ case 17: {
+ SetPoint = input.ReadDouble();
+ break;
+ }
+ case 25: {
+ CurrentValue = input.ReadDouble();
+ break;
+ }
+ case 32: {
+ IsActive = input.ReadBool();
+ break;
+ }
+ case 40: {
+ IsRampingUp = input.ReadBool();
+ break;
+ }
+ case 48: {
+ IsInSetPoint = input.ReadBool();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs
new file mode 100644
index 000000000..7ffdd7130
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs
@@ -0,0 +1,51 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: HeaterType.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Diagnostics {
+
+ /// <summary>Holder for reflection information generated from HeaterType.proto</summary>
+ public static partial class HeaterTypeReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for HeaterType.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static HeaterTypeReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChBIZWF0ZXJUeXBlLnByb3RvEhVUYW5nby5QTVIuRGlhZ25vc3RpY3MqcgoK",
+ "SGVhdGVyVHlwZRIPCgtIZWF0ZXJab25lMRAAEg8KC0hlYXRlclpvbmUyEAES",
+ "DwoLSGVhdGVyWm9uZTMQAhIPCgtIZWF0ZXJab25lNBADEg8KC0hlYXRlclpv",
+ "bmU1EAQSDwoLSGVhdGVyWm9uZTYQBUIhCh9jb20udHdpbmUudGFuZ28ucG1y",
+ "LmRpYWdub3N0aWNzYgZwcm90bzM="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.HeaterType), }, null));
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum HeaterType {
+ [pbr::OriginalName("HeaterZone1")] HeaterZone1 = 0,
+ [pbr::OriginalName("HeaterZone2")] HeaterZone2 = 1,
+ [pbr::OriginalName("HeaterZone3")] HeaterZone3 = 2,
+ [pbr::OriginalName("HeaterZone4")] HeaterZone4 = 3,
+ [pbr::OriginalName("HeaterZone5")] HeaterZone5 = 4,
+ [pbr::OriginalName("HeaterZone6")] HeaterZone6 = 5,
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateRequest.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateRequest.cs
new file mode 100644
index 000000000..ce64f14f9
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateRequest.cs
@@ -0,0 +1,218 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SetHeaterStateRequest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Diagnostics {
+
+ /// <summary>Holder for reflection information generated from SetHeaterStateRequest.proto</summary>
+ public static partial class SetHeaterStateRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for SetHeaterStateRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static SetHeaterStateRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChtTZXRIZWF0ZXJTdGF0ZVJlcXVlc3QucHJvdG8SFVRhbmdvLlBNUi5EaWFn",
+ "bm9zdGljcxoQSGVhdGVyVHlwZS5wcm90byJyChVTZXRIZWF0ZXJTdGF0ZVJl",
+ "cXVlc3QSNQoKSGVhdGVyVHlwZRgBIAEoDjIhLlRhbmdvLlBNUi5EaWFnbm9z",
+ "dGljcy5IZWF0ZXJUeXBlEhAKCFNldFBvaW50GAIgASgBEhAKCElzQWN0aXZl",
+ "GAMgASgIQiEKH2NvbS50d2luZS50YW5nby5wbXIuZGlhZ25vc3RpY3NiBnBy",
+ "b3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.HeaterTypeReflection.Descriptor, },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.SetHeaterStateRequest), global::Tango.PMR.Diagnostics.SetHeaterStateRequest.Parser, new[]{ "HeaterType", "SetPoint", "IsActive" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class SetHeaterStateRequest : pb::IMessage<SetHeaterStateRequest> {
+ private static readonly pb::MessageParser<SetHeaterStateRequest> _parser = new pb::MessageParser<SetHeaterStateRequest>(() => new SetHeaterStateRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<SetHeaterStateRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Diagnostics.SetHeaterStateRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public SetHeaterStateRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public SetHeaterStateRequest(SetHeaterStateRequest other) : this() {
+ heaterType_ = other.heaterType_;
+ setPoint_ = other.setPoint_;
+ isActive_ = other.isActive_;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public SetHeaterStateRequest Clone() {
+ return new SetHeaterStateRequest(this);
+ }
+
+ /// <summary>Field number for the "HeaterType" field.</summary>
+ public const int HeaterTypeFieldNumber = 1;
+ private global::Tango.PMR.Diagnostics.HeaterType heaterType_ = 0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Tango.PMR.Diagnostics.HeaterType HeaterType {
+ get { return heaterType_; }
+ set {
+ heaterType_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "SetPoint" field.</summary>
+ public const int SetPointFieldNumber = 2;
+ private double setPoint_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double SetPoint {
+ get { return setPoint_; }
+ set {
+ setPoint_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "IsActive" field.</summary>
+ public const int IsActiveFieldNumber = 3;
+ private bool isActive_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool IsActive {
+ get { return isActive_; }
+ set {
+ isActive_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as SetHeaterStateRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(SetHeaterStateRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (HeaterType != other.HeaterType) return false;
+ if (SetPoint != other.SetPoint) return false;
+ if (IsActive != other.IsActive) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HeaterType != 0) hash ^= HeaterType.GetHashCode();
+ if (SetPoint != 0D) hash ^= SetPoint.GetHashCode();
+ if (IsActive != false) hash ^= IsActive.GetHashCode();
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (HeaterType != 0) {
+ output.WriteRawTag(8);
+ output.WriteEnum((int) HeaterType);
+ }
+ if (SetPoint != 0D) {
+ output.WriteRawTag(17);
+ output.WriteDouble(SetPoint);
+ }
+ if (IsActive != false) {
+ output.WriteRawTag(24);
+ output.WriteBool(IsActive);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (HeaterType != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) HeaterType);
+ }
+ if (SetPoint != 0D) {
+ size += 1 + 8;
+ }
+ if (IsActive != false) {
+ size += 1 + 1;
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(SetHeaterStateRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HeaterType != 0) {
+ HeaterType = other.HeaterType;
+ }
+ if (other.SetPoint != 0D) {
+ SetPoint = other.SetPoint;
+ }
+ if (other.IsActive != false) {
+ IsActive = other.IsActive;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ heaterType_ = (global::Tango.PMR.Diagnostics.HeaterType) input.ReadEnum();
+ break;
+ }
+ case 17: {
+ SetPoint = input.ReadDouble();
+ break;
+ }
+ case 24: {
+ IsActive = input.ReadBool();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateResponse.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateResponse.cs
new file mode 100644
index 000000000..8131558ff
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetHeaterStateResponse.cs
@@ -0,0 +1,131 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SetHeaterStateResponse.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Diagnostics {
+
+ /// <summary>Holder for reflection information generated from SetHeaterStateResponse.proto</summary>
+ public static partial class SetHeaterStateResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for SetHeaterStateResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static SetHeaterStateResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChxTZXRIZWF0ZXJTdGF0ZVJlc3BvbnNlLnByb3RvEhVUYW5nby5QTVIuRGlh",
+ "Z25vc3RpY3MiGAoWU2V0SGVhdGVyU3RhdGVSZXNwb25zZUIhCh9jb20udHdp",
+ "bmUudGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.SetHeaterStateResponse), global::Tango.PMR.Diagnostics.SetHeaterStateResponse.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class SetHeaterStateResponse : pb::IMessage<SetHeaterStateResponse> {
+ private static readonly pb::MessageParser<SetHeaterStateResponse> _parser = new pb::MessageParser<SetHeaterStateResponse>(() => new SetHeaterStateResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<SetHeaterStateResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Diagnostics.SetHeaterStateResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public SetHeaterStateResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public SetHeaterStateResponse(SetHeaterStateResponse other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public SetHeaterStateResponse Clone() {
+ return new SetHeaterStateResponse(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as SetHeaterStateResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(SetHeaterStateResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(SetHeaterStateResponse other) {
+ if (other == null) {
+ return;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/StartDiagnosticsResponse.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/StartDiagnosticsResponse.cs
index ae9aa4e08..b50075eba 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/StartDiagnosticsResponse.cs
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/StartDiagnosticsResponse.cs
@@ -25,17 +25,19 @@ namespace Tango.PMR.Diagnostics {
"Ch5TdGFydERpYWdub3N0aWNzUmVzcG9uc2UucHJvdG8SFVRhbmdvLlBNUi5E",
"aWFnbm9zdGljcxobRGlnaXRhbEludGVyZmFjZVN0YXRlLnByb3RvGhlWYWx1",
"ZUNvbXBvbmVudFN0YXRlLnByb3RvGhlEaWFnbm9zdGljc01vbml0b3JzLnBy",
- "b3RvIuwBChhTdGFydERpYWdub3N0aWNzUmVzcG9uc2USPAoITW9uaXRvcnMY",
- "ASABKAsyKi5UYW5nby5QTVIuRGlhZ25vc3RpY3MuRGlhZ25vc3RpY3NNb25p",
- "dG9ycxJMChZEaWdpdGFsSW50ZXJmYWNlU3RhdGVzGAIgAygLMiwuVGFuZ28u",
- "UE1SLkRpYWdub3N0aWNzLkRpZ2l0YWxJbnRlcmZhY2VTdGF0ZRJEChBDb21w",
- "b25lbnRzU3RhdGVzGAMgAygLMiouVGFuZ28uUE1SLkRpYWdub3N0aWNzLlZh",
- "bHVlQ29tcG9uZW50U3RhdGVCIQofY29tLnR3aW5lLnRhbmdvLnBtci5kaWFn",
- "bm9zdGljc2IGcHJvdG8z"));
+ "b3RvGhFIZWF0ZXJTdGF0ZS5wcm90byKnAgoYU3RhcnREaWFnbm9zdGljc1Jl",
+ "c3BvbnNlEjwKCE1vbml0b3JzGAEgASgLMiouVGFuZ28uUE1SLkRpYWdub3N0",
+ "aWNzLkRpYWdub3N0aWNzTW9uaXRvcnMSTAoWRGlnaXRhbEludGVyZmFjZVN0",
+ "YXRlcxgCIAMoCzIsLlRhbmdvLlBNUi5EaWFnbm9zdGljcy5EaWdpdGFsSW50",
+ "ZXJmYWNlU3RhdGUSRAoQQ29tcG9uZW50c1N0YXRlcxgDIAMoCzIqLlRhbmdv",
+ "LlBNUi5EaWFnbm9zdGljcy5WYWx1ZUNvbXBvbmVudFN0YXRlEjkKDUhlYXRl",
+ "cnNTdGF0ZXMYBCADKAsyIi5UYW5nby5QTVIuRGlhZ25vc3RpY3MuSGVhdGVy",
+ "U3RhdGVCIQofY29tLnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGljc2IGcHJv",
+ "dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DigitalInterfaceStateReflection.Descriptor, global::Tango.PMR.Diagnostics.ValueComponentStateReflection.Descriptor, global::Tango.PMR.Diagnostics.DiagnosticsMonitorsReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DigitalInterfaceStateReflection.Descriptor, global::Tango.PMR.Diagnostics.ValueComponentStateReflection.Descriptor, global::Tango.PMR.Diagnostics.DiagnosticsMonitorsReflection.Descriptor, global::Tango.PMR.Diagnostics.HeaterStateReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.StartDiagnosticsResponse), global::Tango.PMR.Diagnostics.StartDiagnosticsResponse.Parser, new[]{ "Monitors", "DigitalInterfaceStates", "ComponentsStates" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.StartDiagnosticsResponse), global::Tango.PMR.Diagnostics.StartDiagnosticsResponse.Parser, new[]{ "Monitors", "DigitalInterfaceStates", "ComponentsStates", "HeatersStates" }, null, null, null)
}));
}
#endregion
@@ -69,6 +71,7 @@ namespace Tango.PMR.Diagnostics {
Monitors = other.monitors_ != null ? other.Monitors.Clone() : null;
digitalInterfaceStates_ = other.digitalInterfaceStates_.Clone();
componentsStates_ = other.componentsStates_.Clone();
+ heatersStates_ = other.heatersStates_.Clone();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -116,6 +119,19 @@ namespace Tango.PMR.Diagnostics {
get { return componentsStates_; }
}
+ /// <summary>Field number for the "HeatersStates" field.</summary>
+ public const int HeatersStatesFieldNumber = 4;
+ private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.HeaterState> _repeated_heatersStates_codec
+ = pb::FieldCodec.ForMessage(34, global::Tango.PMR.Diagnostics.HeaterState.Parser);
+ private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.HeaterState> heatersStates_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.HeaterState>();
+ /// <summary>
+ ///Heaters States
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<global::Tango.PMR.Diagnostics.HeaterState> HeatersStates {
+ get { return heatersStates_; }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as StartDiagnosticsResponse);
@@ -132,6 +148,7 @@ namespace Tango.PMR.Diagnostics {
if (!object.Equals(Monitors, other.Monitors)) return false;
if(!digitalInterfaceStates_.Equals(other.digitalInterfaceStates_)) return false;
if(!componentsStates_.Equals(other.componentsStates_)) return false;
+ if(!heatersStates_.Equals(other.heatersStates_)) return false;
return true;
}
@@ -141,6 +158,7 @@ namespace Tango.PMR.Diagnostics {
if (monitors_ != null) hash ^= Monitors.GetHashCode();
hash ^= digitalInterfaceStates_.GetHashCode();
hash ^= componentsStates_.GetHashCode();
+ hash ^= heatersStates_.GetHashCode();
return hash;
}
@@ -157,6 +175,7 @@ namespace Tango.PMR.Diagnostics {
}
digitalInterfaceStates_.WriteTo(output, _repeated_digitalInterfaceStates_codec);
componentsStates_.WriteTo(output, _repeated_componentsStates_codec);
+ heatersStates_.WriteTo(output, _repeated_heatersStates_codec);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -167,6 +186,7 @@ namespace Tango.PMR.Diagnostics {
}
size += digitalInterfaceStates_.CalculateSize(_repeated_digitalInterfaceStates_codec);
size += componentsStates_.CalculateSize(_repeated_componentsStates_codec);
+ size += heatersStates_.CalculateSize(_repeated_heatersStates_codec);
return size;
}
@@ -183,6 +203,7 @@ namespace Tango.PMR.Diagnostics {
}
digitalInterfaceStates_.Add(other.digitalInterfaceStates_);
componentsStates_.Add(other.componentsStates_);
+ heatersStates_.Add(other.heatersStates_);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -208,6 +229,10 @@ namespace Tango.PMR.Diagnostics {
componentsStates_.AddEntriesFrom(input, _repeated_componentsStates_codec);
break;
}
+ case 34: {
+ heatersStates_.AddEntriesFrom(input, _repeated_heatersStates_codec);
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
index 508e8ad54..c2480d8c0 100644
--- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
+++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
@@ -85,6 +85,8 @@
<Compile Include="Diagnostics\DoubleArray.cs" />
<Compile Include="Diagnostics\Event.cs" />
<Compile Include="Diagnostics\EventType.cs" />
+ <Compile Include="Diagnostics\HeaterState.cs" />
+ <Compile Include="Diagnostics\HeaterType.cs" />
<Compile Include="Diagnostics\InterfaceIOs.cs" />
<Compile Include="Diagnostics\MotorAbortHomingRequest.cs" />
<Compile Include="Diagnostics\MotorAbortHomingResponse.cs" />
@@ -101,6 +103,8 @@
<Compile Include="Diagnostics\SetComponentValueResponse.cs" />
<Compile Include="Diagnostics\SetDigitalOutRequest.cs" />
<Compile Include="Diagnostics\SetDigitalOutResponse.cs" />
+ <Compile Include="Diagnostics\SetHeaterStateRequest.cs" />
+ <Compile Include="Diagnostics\SetHeaterStateResponse.cs" />
<Compile Include="Diagnostics\StartDiagnosticsRequest.cs" />
<Compile Include="Diagnostics\StartDiagnosticsResponse.cs" />
<Compile Include="Diagnostics\StartEventsNotificationRequest.cs" />
@@ -218,7 +222,7 @@
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <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> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
index e7a1cead1..36f78391e 100644
--- a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
@@ -47,6 +47,7 @@ namespace Tango.PMRGenerator.CLI
GenerateWindingMethods(db, pmrFolder);
GenerateSpoolTypes(db, pmrFolder);
GenerateProcessParameters(db, pmrFolder);
+ GenerateHeaterTypes(db, pmrFolder);
GenerateColorLabColorSpaces(db, pmrFolder);
GenerateColorLabLiquidTypes(db, pmrFolder);
@@ -415,6 +416,28 @@ namespace Tango.PMRGenerator.CLI
File.WriteAllText(Path.Combine(pmrFolder, "Printing", enumFile.Name + ".proto"), enumString);
}
+ private static void GenerateHeaterTypes(ObservablesContext db, String pmrFolder)
+ {
+ Console.WriteLine("Generating Heater Types...");
+
+ ProtoEnumFile enumFile = new ProtoEnumFile();
+ enumFile.Name = "HeaterType";
+ enumFile.Package = "Tango.PMR.Diagnostics";
+
+ foreach (var field in db.TechHeaters.ToList().OrderBy(x => x.Code))
+ {
+ enumFile.Fields.Add(new EnumerationField()
+ {
+ Name = field.Name.Replace(" ", ""),
+ Value = field.Code,
+ });
+ }
+
+ String enumString = enumFile.GenerateCode();
+
+ File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString);
+ }
+
private static void GenerateSpoolTypes(ObservablesContext db, String pmrFolder)
{
Console.WriteLine("Generating Spool Types...");