aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-05-08 00:32:36 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-05-08 00:32:36 +0300
commit6999f84d21c1439d87d396fd7e7380cead4d52a2 (patch)
tree2ac3a88e8d08e7cc3dda946868559151a61c88f9 /Software/Visual_Studio
parent98c2921a8cf655da3962edafe91bbccc89632e6d (diff)
downloadTango-6999f84d21c1439d87d396fd7e7380cead4d52a2.tar.gz
Tango-6999f84d21c1439d87d396fd7e7380cead4d52a2.zip
Users & Roles !!
Fixed Shlomo PMR.
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs3
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.UsersAndRoles/ViewModels/MainViewVM.cs23
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.BL/IAuthenticationService.cs8
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.BL/Services/AuthenticationService.cs1
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachinesService.cs19
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.BL/Services/OrganizationsService.cs8
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Authentication/IAuthenticationProvider.cs1
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs16
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Console/DefaultConsoleProvider.cs8
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs21
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Firmware/DefaultFirmwareStorageProvider.cs13
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteDesktop/DefaultRemoteDesktopProvider.cs15
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteUpgrade/DefaultRemoteUpgradeManager.cs9
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs2
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs6
-rw-r--r--Software/Visual_Studio/Tango.Core/Commands/RelayCommand.cs11
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs5
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs9
-rw-r--r--Software/Visual_Studio/Tango.PMR/Common/MessageType.cs8
-rw-r--r--Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginRequest.cs29
-rw-r--r--Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginResponse.cs48
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromData.cs (renamed from Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEPROM.cs)92
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromRequest.cs (renamed from Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEpromRequest.cs)58
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromResponse.cs (renamed from Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEpromResponse.cs)58
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromData.cs672
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromRequest.cs195
-rw-r--r--Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromResponse.cs167
-rw-r--r--Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj11
28 files changed, 1371 insertions, 145 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs
index bb655d27b..6ad02cd49 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Firmware/ViewModels/FileSystemViewVM.cs
@@ -8,6 +8,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
+using Tango.BL.Enumerations;
using Tango.Core.Commands;
using Tango.FileSystem;
using Tango.FSE.Common;
@@ -160,7 +161,7 @@ namespace Tango.FSE.Firmware.ViewModels
private async void MachineProvider_MachineConnected(object sender, MachineConnectedEventArgs e)
{
- if (e.DifferentFromPrevious)
+ if (e.DifferentFromPrevious && e.MachineOperator.IsConnected && AuthenticationProvider.CurrentUser.HasPermission(Permissions.FSE_FirmwareFileSystemRead))
{
try
{
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.UsersAndRoles/ViewModels/MainViewVM.cs
index f06c7d033..584331991 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.UsersAndRoles/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.UsersAndRoles/ViewModels/MainViewVM.cs
@@ -15,19 +15,22 @@ namespace Tango.FSE.UsersAndRoles.ViewModels
{
public override void OnApplicationReady()
{
- InvokeUI(() =>
+ if (CurrentUser.HasPermission(Tango.BL.Enumerations.Permissions.FSE_ManageOrganizationUsersAndRoles) || CurrentUser.HasPermission(Tango.BL.Enumerations.Permissions.FSE_ManageAllOrganizationsUsersAndRoles))
{
- NavigationManager.MenuItems.Add(new NavigationMenuItem(() =>
+ InvokeUI(() =>
{
- NavigationManager.NavigateTo<UsersAndRolesModule>();
- })
- {
- Name = "Users & Roles",
- Index = 10,
- Description = "Manage users and their permissions on your organization",
- Image = ResourceHelper.GetImageFromResources("Images/users_and_roles.png"),
+ NavigationManager.MenuItems.Add(new NavigationMenuItem(() =>
+ {
+ NavigationManager.NavigateTo<UsersAndRolesModule>();
+ })
+ {
+ Name = "Users & Roles",
+ Index = 10,
+ Description = "Manage users and their permissions on your organization",
+ Image = ResourceHelper.GetImageFromResources("Images/users_and_roles.png"),
+ });
});
- });
+ }
}
}
}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/IAuthenticationService.cs b/Software/Visual_Studio/FSE/Tango.FSE.BL/IAuthenticationService.cs
index 200831337..9dea71b96 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.BL/IAuthenticationService.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/IAuthenticationService.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.MachineService.Gateway;
namespace Tango.FSE.BL
@@ -22,5 +23,12 @@ namespace Tango.FSE.BL
/// Gets the global current user.
/// </summary>
User CurrentUser { get; }
+
+ /// <summary>
+ /// Throws an exception if the current user does not have the specified permission.
+ /// </summary>
+ /// <param name="permission">The permission.</param>
+ /// <param name="message">Optional message.</param>
+ void CheckPermission(Permissions permission, String message = null);
}
}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/AuthenticationService.cs b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/AuthenticationService.cs
index d06a382a8..a0de77af2 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/AuthenticationService.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/AuthenticationService.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Security.Authentication;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Enumerations;
using Tango.FSE.BL.CacheEntities;
using Tango.FSE.Web.Messages;
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachinesService.cs b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachinesService.cs
index 34aaf86b6..9dac05408 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachinesService.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/MachinesService.cs
@@ -13,6 +13,7 @@ using Tango.Core.Threading;
using Tango.FSE.BL.CacheEntities;
using Z.EntityFramework.Plus;
using Z.EntityFramework.Extensions;
+using Tango.BL.Enumerations;
namespace Tango.FSE.BL.Services
{
@@ -49,6 +50,8 @@ namespace Tango.FSE.BL.Services
/// <returns></returns>
public Task<Machine> GetMachine(String serialNumber)
{
+ bool allowAll = CurrentUser.HasPermission(Permissions.FSE_ManageAllOrganizationsUsersAndRoles);
+
return DataResolver<Machine>.Builder.New()
.ConfigureCascade(DataResolverNode.InMemoryCache, DataResolverNode.Online, DataResolverNode.DiskCache)
.InMemoryCache((context) =>
@@ -60,7 +63,7 @@ namespace Tango.FSE.BL.Services
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
var machine = new MachineBuilder(db)
- .Set(x => x.OrganizationGuid == CurrentUser.OrganizationGuid && x.SerialNumber == serialNumber)
+ .Set(x => (allowAll || x.OrganizationGuid == CurrentUser.OrganizationGuid) && x.SerialNumber == serialNumber)
.WithOrganization()
.Build();
@@ -97,7 +100,7 @@ namespace Tango.FSE.BL.Services
{
using (var cache = DiskCache.CreateContext())
{
- var cachedMachine = cache.GetCollection<CachedMachine>(MACHINES_COLLECTION).FindOne(x => x.SerialNumber == serialNumber && x.OrganizationGuid == CurrentUser.OrganizationGuid);
+ var cachedMachine = cache.GetCollection<CachedMachine>(MACHINES_COLLECTION).FindOne(x => x.SerialNumber == serialNumber && (allowAll || x.OrganizationGuid == CurrentUser.OrganizationGuid));
//Store in memory cache.
_machinesCache.Put(serialNumber, cachedMachine);
@@ -125,6 +128,8 @@ namespace Tango.FSE.BL.Services
private Task<Machine> GetMachineFull(String serialNumber, bool enableLogs)
{
+ bool allowAll = CurrentUser.HasPermission(Permissions.FSE_ManageAllOrganizationsUsersAndRoles);
+
return DataResolver<Machine>.Builder.New()
.EnableLogs(enableLogs)
.ConfigureCascade(DataResolverNode.InMemoryCache, DataResolverNode.Online, DataResolverNode.DiskCache)
@@ -137,7 +142,7 @@ namespace Tango.FSE.BL.Services
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
var machine = new MachineBuilder(db)
- .Set(x => x.OrganizationGuid == CurrentUser.OrganizationGuid && x.SerialNumber == serialNumber)
+ .Set(x => (allowAll || x.OrganizationGuid == CurrentUser.OrganizationGuid) && x.SerialNumber == serialNumber)
.WithOrganization()
.WithVersion()
.WithSpools()
@@ -230,13 +235,15 @@ namespace Tango.FSE.BL.Services
/// <returns></returns>
public Task<List<Machine>> GetAllMachines()
{
+ bool allowAll = CurrentUser.HasPermission(Permissions.FSE_ManageAllOrganizationsUsersAndRoles);
+
return DataResolver<List<Machine>>.Builder.New()
.ConfigureCascade(DataResolverNode.InMemoryCache, DataResolverNode.Online, DataResolverNode.DiskCache)
.InMemoryCache((context) =>
{
var machines = _machinesCache
.ToList()
- .Where(x => x.OrganizationGuid == CurrentUser.OrganizationGuid)
+ .Where(x => allowAll || x.OrganizationGuid == CurrentUser.OrganizationGuid)
.Select(x => x.ToObservable())
.ToList();
@@ -251,7 +258,7 @@ namespace Tango.FSE.BL.Services
{
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- var machines = db.Machines.Where(x => x.OrganizationGuid == CurrentUser.OrganizationGuid).Include(x => x.Organization).ToList();
+ var machines = db.Machines.Where(x => allowAll || x.OrganizationGuid == CurrentUser.OrganizationGuid).Include(x => x.Organization).ToList();
using (var cache = DiskCache.CreateContext())
{
@@ -284,7 +291,7 @@ namespace Tango.FSE.BL.Services
var collection = cache.GetCollection<CachedMachine>(MACHINES_COLLECTION);
var cachedMachines = collection
- .Find(x => x.OrganizationGuid == CurrentUser.OrganizationGuid)
+ .Find(x => allowAll || x.OrganizationGuid == CurrentUser.OrganizationGuid)
.ToList();
foreach (var cachedMachine in cachedMachines)
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/OrganizationsService.cs b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/OrganizationsService.cs
index 9ee6929c8..db1527db6 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/OrganizationsService.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/Services/OrganizationsService.cs
@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Builders;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Z.EntityFramework.Extensions;
using Z.EntityFramework.Plus;
@@ -24,7 +25,8 @@ namespace Tango.FSE.BL.Services
{
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- return db.Organizations.ToList(); //TODO: Filter for just the users organization if he doesn't have FSE_Twine_Admin role.
+ bool allowAll = CurrentUser.HasPermission(Tango.BL.Enumerations.Permissions.FSE_ManageAllOrganizationsUsersAndRoles);
+ return db.Organizations.Where(x => allowAll || x.Guid == CurrentUser.OrganizationGuid).ToList();
}
})
.BuildExecuteAsync();
@@ -85,6 +87,8 @@ namespace Tango.FSE.BL.Services
{
return Task.Factory.StartNew(() =>
{
+ Authentication.CheckPermission(Permissions.FSE_ManageOrganizationUsersAndRoles);
+
if (ConnectivityProvider.IsOnline)
{
using (var db = ObservablesContext.CreateDefault())
@@ -139,6 +143,8 @@ namespace Tango.FSE.BL.Services
{
return Task.Factory.StartNew<User>(() =>
{
+ Authentication.CheckPermission(Permissions.FSE_ManageOrganizationUsersAndRoles);
+
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
var usersRolesToAdd = user.UsersRoles;
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Authentication/IAuthenticationProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Authentication/IAuthenticationProvider.cs
index 5a4945540..1ad59a3fc 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Authentication/IAuthenticationProvider.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Authentication/IAuthenticationProvider.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.FSE.BL;
using Tango.MachineService.Gateway;
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs
index 636f97a50..46ed0cc1e 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Authentication/DefaultAuthenticationProvider.cs
@@ -8,6 +8,7 @@ using System.Timers;
using Tango.BL;
using Tango.BL.Builders;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Core.DI;
using Tango.Core.ExtensionMethods;
@@ -260,5 +261,20 @@ namespace Tango.FSE.UI.Authentication
_tokenRefreshTimer.Start();
}
+
+ public void CheckPermission(Permissions permission, String message = null)
+ {
+ if (CurrentUser == null || !CurrentUser.HasPermission(permission))
+ {
+ if (message == null)
+ {
+ throw new AuthorizationException();
+ }
+ else
+ {
+ throw new AuthorizationException(message);
+ }
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Console/DefaultConsoleProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Console/DefaultConsoleProvider.cs
index 730c36d45..f4a3045e6 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Console/DefaultConsoleProvider.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Console/DefaultConsoleProvider.cs
@@ -3,9 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Enumerations;
using Tango.Console.Network;
using Tango.Core;
using Tango.Core.DI;
+using Tango.FSE.BL;
+using Tango.FSE.Common.Authentication;
using Tango.FSE.Common.Connection;
using Tango.FSE.Common.Console;
using Tango.FSE.Common.Notifications;
@@ -25,6 +28,9 @@ namespace Tango.FSE.UI.Console
[TangoInject]
private INotificationProvider NotificationProvider { get; set; }
+ [TangoInject]
+ public IAuthenticationProvider AuthenticationProvider { get; set; }
+
#region Events
/// <summary>
@@ -67,6 +73,8 @@ namespace Tango.FSE.UI.Console
/// <returns></returns>
public async Task<ConsoleCommandResponse> ExecuteCommand(ConsoleCommandRequest request, TimeSpan? timeout = null)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_ExecuteRemoteConsoleCommands);
+
LogManager.Log($"Executing remote console command: '{request.Command}'...");
try
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs
index 6bc667b32..9bab865a5 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs
@@ -7,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Core.DI;
using Tango.Core.ExtensionMethods;
@@ -14,6 +15,7 @@ using Tango.Core.IO;
using Tango.Core.Threading;
using Tango.FileSystem;
using Tango.FileSystem.Network;
+using Tango.FSE.Common.Authentication;
using Tango.FSE.Common.Connection;
using Tango.FSE.Common.FileSystem;
using Tango.FSE.Common.Notifications;
@@ -43,6 +45,9 @@ namespace Tango.FSE.UI.FileSystem
[TangoInject]
private INotificationProvider NotificationProvider { get; set; }
+ [TangoInject]
+ private IAuthenticationProvider AuthenticationProvider { get; set; }
+
#region Properties
private bool _enableWebRTC;
@@ -273,6 +278,8 @@ namespace Tango.FSE.UI.FileSystem
/// <returns></returns>
public Task<FileSystemHandler> Download(FileSystemItem item, String localTargetFolderOrFile, bool isSingleFile = false)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemRead);
+
LogManager.Log($"Downloading remote item '{item.Path}' to local path '{localTargetFolderOrFile}'...");
String operationId = String.Empty;
@@ -551,6 +558,8 @@ namespace Tango.FSE.UI.FileSystem
/// <exception cref="System.IO.FileNotFoundException">Could not locate the local file or directory to upload.</exception>
public Task<FileSystemHandler> Upload(String localSourcePath, String remotePath)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemWrite);
+
String operationId = String.Empty;
String destination = remotePath;
bool isFolder = false;
@@ -818,6 +827,8 @@ namespace Tango.FSE.UI.FileSystem
/// </exception>
public async Task Copy(FileSystemItem source, FileSystemItem target)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemWrite);
+
try
{
LogManager.Log($"Copying remote item '{source.Path}' to '{target.Path}'...");
@@ -861,6 +872,8 @@ namespace Tango.FSE.UI.FileSystem
/// </exception>
public async Task Move(FileSystemItem source, FileSystemItem target)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemWrite);
+
try
{
LogManager.Log($"Moving remote item '{source.Path}' to '{target.Path}'...");
@@ -901,6 +914,8 @@ namespace Tango.FSE.UI.FileSystem
/// <exception cref="System.ArgumentException">The new name contains invalid characters.</exception>
public async Task Rename(FileSystemItem source, string newName)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemWrite);
+
try
{
LogManager.Log($"Renaming remote item '{source.Path}' to '{newName}'...");
@@ -934,6 +949,8 @@ namespace Tango.FSE.UI.FileSystem
/// <exception cref="System.NotSupportedException">The source file system item is not supported for deletion.</exception>
public async Task Delete(FileSystemItem item)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemWrite);
+
try
{
LogManager.Log($"Deleting remote item '{item.Path}'...");
@@ -962,6 +979,8 @@ namespace Tango.FSE.UI.FileSystem
/// <returns></returns>
public async Task<FolderItem> CreateFolder(FileSystemItem parent, string folderName)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemWrite);
+
try
{
LogManager.Log($"Creating new folder '{folderName}' on the remote path '{parent.Path}'...");
@@ -986,6 +1005,8 @@ namespace Tango.FSE.UI.FileSystem
/// <returns></returns>
public async Task<PerformDiskSpaceOptimizationResponse> PerformDiskSpaceOptimization()
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_PPCFileSystemRead);
+
try
{
LogManager.Log("Performing disk space optimization on the remote file system.");
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Firmware/DefaultFirmwareStorageProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Firmware/DefaultFirmwareStorageProvider.cs
index e8ed4badb..d0e09d568 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Firmware/DefaultFirmwareStorageProvider.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Firmware/DefaultFirmwareStorageProvider.cs
@@ -5,10 +5,12 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Core.DI;
using Tango.Core.Threading;
using Tango.FileSystem;
+using Tango.FSE.Common.Authentication;
using Tango.FSE.Common.Connection;
using Tango.FSE.Common.FileSystem;
using Tango.FSE.Common.Firmware;
@@ -28,6 +30,9 @@ namespace Tango.FSE.UI.Firmware
[TangoInject]
private INotificationProvider NotificationProvider { get; set; }
+ [TangoInject]
+ private IAuthenticationProvider AuthenticationProvider { get; set; }
+
public DefaultFirmwareStorageProvider(IMachineProvider machineProvider)
{
_activeHandlers = new List<FileSystemHandler>();
@@ -74,6 +79,8 @@ namespace Tango.FSE.UI.Firmware
public Task<FileSystemHandler> Download(FileItem item, string localTargetPath)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_FirmwareFileSystemRead);
+
LogManager.Log($"Downloading remote firmware item '{item.Path}' to local path '{localTargetPath}'...");
bool aborted = false;
@@ -171,6 +178,8 @@ namespace Tango.FSE.UI.Firmware
public Task<FileSystemHandler> Upload(string localSourcePath, string remoteTargetPath)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_FirmwareFileSystemWrite);
+
LogManager.Log($"Uploading file '{localSourcePath}' to remote path '{remoteTargetPath}'...");
bool aborted = false;
@@ -268,6 +277,8 @@ namespace Tango.FSE.UI.Firmware
public Task Delete(FileSystemItem item)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_FirmwareFileSystemWrite);
+
try
{
return _manager.DeleteItem(item.ToStorageItem());
@@ -280,6 +291,8 @@ namespace Tango.FSE.UI.Firmware
public async Task<FolderItem> CreateFolder(FileSystemItem parent, string folderName)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_FirmwareFileSystemWrite);
+
try
{
String remotePath = Path.Combine(parent.Path, folderName);
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteDesktop/DefaultRemoteDesktopProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteDesktop/DefaultRemoteDesktopProvider.cs
index 7ef7f7e8b..dbfcc9157 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteDesktop/DefaultRemoteDesktopProvider.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteDesktop/DefaultRemoteDesktopProvider.cs
@@ -10,10 +10,12 @@ using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Imaging;
+using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Core.DI;
using Tango.Core.ExtensionMethods;
using Tango.Core.Threading;
+using Tango.FSE.Common.Authentication;
using Tango.FSE.Common.Connection;
using Tango.FSE.Common.Notifications;
using Tango.FSE.Common.RemoteDesktop;
@@ -54,6 +56,9 @@ namespace Tango.FSE.UI.RemoteDesktop
[TangoInject]
private INotificationProvider NotificationProvider { get; set; }
+ [TangoInject]
+ private IAuthenticationProvider AuthenticationProvider { get; set; }
+
#region Events
/// <summary>
@@ -197,6 +202,8 @@ namespace Tango.FSE.UI.RemoteDesktop
/// <exception cref="System.InvalidOperationException">Unable to start a remote desktop session at the moment.</exception>
public async Task StartSession()
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_RemoteDesktopView);
+
TaskCompletionSource<bool> completionSource = new TaskCompletionSource<bool>();
if (!CanStartSession)
@@ -402,6 +409,7 @@ namespace Tango.FSE.UI.RemoteDesktop
public async void MouseDown(MouseButton button, Point location, Size viewSize)
{
if (!InSession || _frameSize == null) return;
+ if (!AuthenticationProvider.CurrentUser.HasPermission(Permissions.FSE_RemoteDesktopControl)) return;
try
{
@@ -436,6 +444,7 @@ namespace Tango.FSE.UI.RemoteDesktop
public async void MouseUp(MouseButton button, Point location, Size viewSize)
{
if (!InSession || _frameSize == null) return;
+ if (!AuthenticationProvider.CurrentUser.HasPermission(Permissions.FSE_RemoteDesktopControl)) return;
try
{
@@ -469,6 +478,7 @@ namespace Tango.FSE.UI.RemoteDesktop
public void MouseMove(Point location, Size viewSize)
{
if (!InSession || _frameSize == null) return;
+ if (!AuthenticationProvider.CurrentUser.HasPermission(Permissions.FSE_RemoteDesktopControl)) return;
if (_mouseMoveThread == null)
{
@@ -533,6 +543,7 @@ namespace Tango.FSE.UI.RemoteDesktop
public async void MouseDoubleClick(MouseButton button, Point location, Size viewSize)
{
if (!InSession || _frameSize == null) return;
+ if (!AuthenticationProvider.CurrentUser.HasPermission(Permissions.FSE_RemoteDesktopControl)) return;
try
{
@@ -581,6 +592,7 @@ namespace Tango.FSE.UI.RemoteDesktop
public async void KeyboardDown(Key key, bool ctrlDown, bool shitDown, bool altDown)
{
if (!InSession || _frameSize == null) return;
+ if (!AuthenticationProvider.CurrentUser.HasPermission(Permissions.FSE_RemoteDesktopControl)) return;
if (key == Key.LeftCtrl || key == Key.LeftShift || key == Key.LeftAlt) return;
@@ -620,6 +632,7 @@ namespace Tango.FSE.UI.RemoteDesktop
public async void KeyboardUp(Key key, bool ctrlDown, bool shitDown, bool altDown)
{
if (!InSession || _frameSize == null) return;
+ if (!AuthenticationProvider.CurrentUser.HasPermission(Permissions.FSE_RemoteDesktopControl)) return;
if (key == Key.LeftCtrl || key == Key.LeftShift || key == Key.LeftAlt) return;
@@ -659,6 +672,8 @@ namespace Tango.FSE.UI.RemoteDesktop
/// <param name="command">The command.</param>
public async void SendCommand(RemoteDesktopCommand command)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_RemoteDesktopControl);
+
try
{
await _machineProvider.MachineOperator.SendGenericRequest<RemoteDesktopCommandRequest, RemoteDesktopCommandResponse>(new RemoteDesktopCommandRequest());
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteUpgrade/DefaultRemoteUpgradeManager.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteUpgrade/DefaultRemoteUpgradeManager.cs
index 870f9ca12..715fef542 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteUpgrade/DefaultRemoteUpgradeManager.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/RemoteUpgrade/DefaultRemoteUpgradeManager.cs
@@ -8,6 +8,7 @@ using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Core.Components;
using Tango.Core.DB;
@@ -88,6 +89,8 @@ namespace Tango.FSE.UI.RemoteUpgrade
/// <returns></returns>
public Task<RemoteUpgradeHandler> CreateTupFile(TangoVersion tangoVersion, string serialNumber, string targetFilePath)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_RemoteUpgradeOffline);
+
Thread thread = null;
RemoteUpgradeHandler handler = null;
handler = new RemoteUpgradeHandler(() =>
@@ -390,6 +393,8 @@ namespace Tango.FSE.UI.RemoteUpgrade
/// <returns></returns>
public Task<RemoteUpgradeHandler> CreateTfpFile(TangoVersion tangoVersion, string targetFilePath)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_RemoteUpgradeOffline);
+
Thread thread = null;
RemoteUpgradeHandler handler = null;
handler = new RemoteUpgradeHandler(() =>
@@ -507,6 +512,8 @@ namespace Tango.FSE.UI.RemoteUpgrade
/// <returns></returns>
public Task<RemoteUpgradeHandler> PerformRemoteApplicationUpgrade(string tupFile, bool upgradeFirmware = true)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_RemoteUpgradeOnline);
+
Thread thread = null;
RemoteUpgradeHandler handler = null;
handler = new RemoteUpgradeHandler(() =>
@@ -621,6 +628,8 @@ namespace Tango.FSE.UI.RemoteUpgrade
/// <returns></returns>
public Task<RemoteUpgradeHandler> PerformRemoteFirmwareUpgrade(string tfpFile)
{
+ AuthenticationProvider.CheckPermission(Permissions.FSE_RemoteUpgradeOnline);
+
Thread thread = null;
RemoteUpgradeHandler handler = null;
handler = new RemoteUpgradeHandler(() =>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs
index a9a677368..392a64d36 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs
@@ -231,7 +231,7 @@ namespace Tango.FSE.UI.ViewModels
else
{
//TODO: Handler password change required!
- Debugger.Break();
+ await NavigationManager.NavigateTo(NavigationView.Home);
}
}
catch (Exception ex)
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs b/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs
index ae77dbbbf..514ce925d 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs
@@ -229,5 +229,11 @@ namespace Tango.BL.Enumerations
[Description("Allows performing direct remote upgrade")]
FSE_RemoteUpgradeOnline = 1013,
+ /// <summary>
+ /// (Allows executing command prompt commands remotely)
+ /// </summary>
+ [Description("Allows executing command prompt commands remotely")]
+ FSE_ExecuteRemoteConsoleCommands = 1014,
+
}
}
diff --git a/Software/Visual_Studio/Tango.Core/Commands/RelayCommand.cs b/Software/Visual_Studio/Tango.Core/Commands/RelayCommand.cs
index 359574a5c..427c83749 100644
--- a/Software/Visual_Studio/Tango.Core/Commands/RelayCommand.cs
+++ b/Software/Visual_Studio/Tango.Core/Commands/RelayCommand.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -47,7 +48,15 @@ namespace Tango.Core.Commands
public virtual bool CanExecute(object parameter)
{
- return _canExecute != null ? _canExecute(parameter) : true;
+ try
+ {
+ return _canExecute != null ? _canExecute(parameter) : true;
+ }
+ catch (Exception ex)
+ {
+ Debug.WriteLine("Error on CanExecute RelayCommand\n" + ex);
+ return false;
+ }
}
public virtual void Execute(object parameter)
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
index 25b602104..761ed5644 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
@@ -59,6 +59,11 @@ namespace Tango.Integration.Operation
MachineStatuses Status { get; }
/// <summary>
+ /// Gets a value indicating whether the machine is connected and status is not disconnected.
+ /// </summary>
+ bool IsConnected { get; }
+
+ /// <summary>
/// Gets or sets a value indicating whether to enable liquid quantity validation before starting the job.
/// The validation is done using the reported <see cref="MachineStatus"/>.
/// </summary>
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
index 055b130b1..e6db7fcfc 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
@@ -294,11 +294,20 @@ namespace Tango.Integration.Operation
OnStatusChanged(value);
RaisePropertyChanged(nameof(IsPrinting));
RaisePropertyChanged(nameof(CanPrint));
+ RaisePropertyChanged(nameof(IsConnected));
LogManager.Log("Machine operator status changed: " + _status);
}
}
}
+ /// <summary>
+ /// Gets a value indicating whether the machine is connected and status is not disconnected.
+ /// </summary>
+ public bool IsConnected
+ {
+ get { return State == TransportComponentState.Connected && Status != MachineStatuses.Disconnected; }
+ }
+
private MachineStatus _machineStatus;
/// <summary>
/// Gets the machine embedded device status.
diff --git a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
index e06fafb77..7137daf1d 100644
--- a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
@@ -90,8 +90,8 @@ namespace Tango.PMR.Common {
"Ym9ydEpvYlJlc3BvbnNlEGYSJAogU3R1Yk1pZFRhbmtQcmVzc3VyZVNlbnNv",
"clJlcXVlc3QQZxIlCiFTdHViTWlkVGFua1ByZXNzdXJlU2Vuc29yUmVzcG9u",
"c2UQaBIeChpTdHViRGlzcGVuc2VyRUVwcm9tUmVxdWVzdBBpEh8KG1N0dWJE",
- "aXNwZW5zZXJFRXByb21SZXNwb25zZRBqEhgKFFN0dWJXSFNFRXByb21SZXF1",
- "ZXN0EGsSGQoVU3R1YldIU0VFcHJvbVJlc3BvbnNlEGwSJQogRXh0ZXJuYWxC",
+ "aXNwZW5zZXJFRXByb21SZXNwb25zZRBqEhgKFFN0dWJXaHNFRXByb21SZXF1",
+ "ZXN0EGsSGQoVU3R1Yldoc0VFcHJvbVJlc3BvbnNlEGwSJQogRXh0ZXJuYWxC",
"cmlkZ2VVZHBEaXNjb3ZlcnlQYWNrZXQQ6AcSHwoaRXh0ZXJuYWxCcmlkZ2VM",
"b2dpblJlcXVlc3QQ6QcSIAobRXh0ZXJuYWxCcmlkZ2VMb2dpblJlc3BvbnNl",
"EOoHEiAKG0V4dGVybmFsQnJpZGdlTG9nb3V0UmVxdWVzdBDrBxIhChxFeHRl",
@@ -311,11 +311,11 @@ namespace Tango.PMR.Common {
[pbr::OriginalName("StubMidTankPressureSensorResponse")] StubMidTankPressureSensorResponse = 104,
[pbr::OriginalName("StubDispenserEEpromRequest")] StubDispenserEepromRequest = 105,
[pbr::OriginalName("StubDispenserEEpromResponse")] StubDispenserEepromResponse = 106,
- [pbr::OriginalName("StubWHSEEpromRequest")] StubWhseepromRequest = 107,
+ [pbr::OriginalName("StubWhsEEpromRequest")] StubWhsEepromRequest = 107,
/// <summary>
///------------------------------------
/// </summary>
- [pbr::OriginalName("StubWHSEEpromResponse")] StubWhseepromResponse = 108,
+ [pbr::OriginalName("StubWhsEEpromResponse")] StubWhsEepromResponse = 108,
/// <summary>
///Integration
/// </summary>
diff --git a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginRequest.cs b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginRequest.cs
index 945cb27ca..21e4ecd30 100644
--- a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginRequest.cs
+++ b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginRequest.cs
@@ -24,16 +24,17 @@ namespace Tango.PMR.Integration {
string.Concat(
"CiBFeHRlcm5hbEJyaWRnZUxvZ2luUmVxdWVzdC5wcm90bxIVVGFuZ28uUE1S",
"LkludGVncmF0aW9uGh9FeHRlcm5hbEJyaWRnZUxvZ2luSW50ZW50LnByb3Rv",
- "ItsBChpFeHRlcm5hbEJyaWRnZUxvZ2luUmVxdWVzdBINCgVBcHBJRBgBIAEo",
+ "IvABChpFeHRlcm5hbEJyaWRnZUxvZ2luUmVxdWVzdBINCgVBcHBJRBgBIAEo",
"CRIQCghVc2VyR3VpZBgCIAEoCRIQCghIb3N0TmFtZRgDIAEoCRIQCghQYXNz",
"d29yZBgEIAEoCRJACgZJbnRlbnQYBSABKA4yMC5UYW5nby5QTVIuSW50ZWdy",
"YXRpb24uRXh0ZXJuYWxCcmlkZ2VMb2dpbkludGVudBIkChxSZXF1aXJlU2Fm",
- "ZXR5TGV2ZWxPcGVyYXRpb25zGAYgASgIEhAKCFVzZXJOYW1lGAcgASgJQiEK",
- "H2NvbS50d2luZS50YW5nby5wbXIuaW50ZWdyYXRpb25iBnByb3RvMw=="));
+ "ZXR5TGV2ZWxPcGVyYXRpb25zGAYgASgIEhAKCFVzZXJOYW1lGAcgASgJEhMK",
+ "C1Blcm1pc3Npb25zGAggAygJQiEKH2NvbS50d2luZS50YW5nby5wbXIuaW50",
+ "ZWdyYXRpb25iBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tango.PMR.Integration.ExternalBridgeLoginIntentReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeLoginRequest), global::Tango.PMR.Integration.ExternalBridgeLoginRequest.Parser, new[]{ "AppID", "UserGuid", "HostName", "Password", "Intent", "RequireSafetyLevelOperations", "UserName" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeLoginRequest), global::Tango.PMR.Integration.ExternalBridgeLoginRequest.Parser, new[]{ "AppID", "UserGuid", "HostName", "Password", "Intent", "RequireSafetyLevelOperations", "UserName", "Permissions" }, null, null, null)
}));
}
#endregion
@@ -71,6 +72,7 @@ namespace Tango.PMR.Integration {
intent_ = other.intent_;
requireSafetyLevelOperations_ = other.requireSafetyLevelOperations_;
userName_ = other.userName_;
+ permissions_ = other.permissions_.Clone();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -155,6 +157,16 @@ namespace Tango.PMR.Integration {
}
}
+ /// <summary>Field number for the "Permissions" field.</summary>
+ public const int PermissionsFieldNumber = 8;
+ private static readonly pb::FieldCodec<string> _repeated_permissions_codec
+ = pb::FieldCodec.ForString(66);
+ private readonly pbc::RepeatedField<string> permissions_ = new pbc::RepeatedField<string>();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<string> Permissions {
+ get { return permissions_; }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as ExternalBridgeLoginRequest);
@@ -175,6 +187,7 @@ namespace Tango.PMR.Integration {
if (Intent != other.Intent) return false;
if (RequireSafetyLevelOperations != other.RequireSafetyLevelOperations) return false;
if (UserName != other.UserName) return false;
+ if(!permissions_.Equals(other.permissions_)) return false;
return true;
}
@@ -188,6 +201,7 @@ namespace Tango.PMR.Integration {
if (Intent != 0) hash ^= Intent.GetHashCode();
if (RequireSafetyLevelOperations != false) hash ^= RequireSafetyLevelOperations.GetHashCode();
if (UserName.Length != 0) hash ^= UserName.GetHashCode();
+ hash ^= permissions_.GetHashCode();
return hash;
}
@@ -226,6 +240,7 @@ namespace Tango.PMR.Integration {
output.WriteRawTag(58);
output.WriteString(UserName);
}
+ permissions_.WriteTo(output, _repeated_permissions_codec);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -252,6 +267,7 @@ namespace Tango.PMR.Integration {
if (UserName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(UserName);
}
+ size += permissions_.CalculateSize(_repeated_permissions_codec);
return size;
}
@@ -281,6 +297,7 @@ namespace Tango.PMR.Integration {
if (other.UserName.Length != 0) {
UserName = other.UserName;
}
+ permissions_.Add(other.permissions_);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -319,6 +336,10 @@ namespace Tango.PMR.Integration {
UserName = input.ReadString();
break;
}
+ case 66: {
+ permissions_.AddEntriesFrom(input, _repeated_permissions_codec);
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginResponse.cs b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginResponse.cs
index aa573e47e..025d75aac 100644
--- a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginResponse.cs
+++ b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeLoginResponse.cs
@@ -24,17 +24,19 @@ namespace Tango.PMR.Integration {
string.Concat(
"CiFFeHRlcm5hbEJyaWRnZUxvZ2luUmVzcG9uc2UucHJvdG8SFVRhbmdvLlBN",
"Ui5JbnRlZ3JhdGlvbhoXRGV2aWNlSW5mb3JtYXRpb24ucHJvdG8aHEFwcGxp",
- "Y2F0aW9uSW5mb3JtYXRpb24ucHJvdG8i3QEKG0V4dGVybmFsQnJpZGdlTG9n",
- "aW5SZXNwb25zZRIVCg1BdXRoZW50aWNhdGVkGAEgASgIEhQKDFNlcmlhbE51",
- "bWJlchgCIAEoCRJCChFEZXZpY2VJbmZvcm1hdGlvbhgDIAEoCzInLlRhbmdv",
- "LlBNUi5Db25uZWN0aW9uLkRldmljZUluZm9ybWF0aW9uEk0KFkFwcGxpY2F0",
- "aW9uSW5mb3JtYXRpb24YBCABKAsyLS5UYW5nby5QTVIuSW50ZWdyYXRpb24u",
- "QXBwbGljYXRpb25JbmZvcm1hdGlvbkIhCh9jb20udHdpbmUudGFuZ28ucG1y",
- "LmludGVncmF0aW9uYgZwcm90bzM="));
+ "Y2F0aW9uSW5mb3JtYXRpb24ucHJvdG8aElVwZGF0ZVN0YXR1cy5wcm90byKS",
+ "AgobRXh0ZXJuYWxCcmlkZ2VMb2dpblJlc3BvbnNlEhUKDUF1dGhlbnRpY2F0",
+ "ZWQYASABKAgSFAoMU2VyaWFsTnVtYmVyGAIgASgJEkIKEURldmljZUluZm9y",
+ "bWF0aW9uGAMgASgLMicuVGFuZ28uUE1SLkNvbm5lY3Rpb24uRGV2aWNlSW5m",
+ "b3JtYXRpb24STQoWQXBwbGljYXRpb25JbmZvcm1hdGlvbhgEIAEoCzItLlRh",
+ "bmdvLlBNUi5JbnRlZ3JhdGlvbi5BcHBsaWNhdGlvbkluZm9ybWF0aW9uEjMK",
+ "BlN0YXR1cxgFIAEoDjIjLlRhbmdvLlBNUi5JbnRlZ3JhdGlvbi5VcGRhdGVT",
+ "dGF0dXNCIQofY29tLnR3aW5lLnRhbmdvLnBtci5pbnRlZ3JhdGlvbmIGcHJv",
+ "dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::Tango.PMR.Connection.DeviceInformationReflection.Descriptor, global::Tango.PMR.Integration.ApplicationInformationReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::Tango.PMR.Connection.DeviceInformationReflection.Descriptor, global::Tango.PMR.Integration.ApplicationInformationReflection.Descriptor, global::Tango.PMR.Integration.UpdateStatusReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeLoginResponse), global::Tango.PMR.Integration.ExternalBridgeLoginResponse.Parser, new[]{ "Authenticated", "SerialNumber", "DeviceInformation", "ApplicationInformation" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeLoginResponse), global::Tango.PMR.Integration.ExternalBridgeLoginResponse.Parser, new[]{ "Authenticated", "SerialNumber", "DeviceInformation", "ApplicationInformation", "Status" }, null, null, null)
}));
}
#endregion
@@ -69,6 +71,7 @@ namespace Tango.PMR.Integration {
serialNumber_ = other.serialNumber_;
DeviceInformation = other.deviceInformation_ != null ? other.DeviceInformation.Clone() : null;
ApplicationInformation = other.applicationInformation_ != null ? other.ApplicationInformation.Clone() : null;
+ status_ = other.status_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -120,6 +123,17 @@ namespace Tango.PMR.Integration {
}
}
+ /// <summary>Field number for the "Status" field.</summary>
+ public const int StatusFieldNumber = 5;
+ private global::Tango.PMR.Integration.UpdateStatus status_ = 0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Tango.PMR.Integration.UpdateStatus Status {
+ get { return status_; }
+ set {
+ status_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as ExternalBridgeLoginResponse);
@@ -137,6 +151,7 @@ namespace Tango.PMR.Integration {
if (SerialNumber != other.SerialNumber) return false;
if (!object.Equals(DeviceInformation, other.DeviceInformation)) return false;
if (!object.Equals(ApplicationInformation, other.ApplicationInformation)) return false;
+ if (Status != other.Status) return false;
return true;
}
@@ -147,6 +162,7 @@ namespace Tango.PMR.Integration {
if (SerialNumber.Length != 0) hash ^= SerialNumber.GetHashCode();
if (deviceInformation_ != null) hash ^= DeviceInformation.GetHashCode();
if (applicationInformation_ != null) hash ^= ApplicationInformation.GetHashCode();
+ if (Status != 0) hash ^= Status.GetHashCode();
return hash;
}
@@ -173,6 +189,10 @@ namespace Tango.PMR.Integration {
output.WriteRawTag(34);
output.WriteMessage(ApplicationInformation);
}
+ if (Status != 0) {
+ output.WriteRawTag(40);
+ output.WriteEnum((int) Status);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -190,6 +210,9 @@ namespace Tango.PMR.Integration {
if (applicationInformation_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(ApplicationInformation);
}
+ if (Status != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+ }
return size;
}
@@ -216,6 +239,9 @@ namespace Tango.PMR.Integration {
}
ApplicationInformation.MergeFrom(other.ApplicationInformation);
}
+ if (other.Status != 0) {
+ Status = other.Status;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -248,6 +274,10 @@ namespace Tango.PMR.Integration {
input.ReadMessage(applicationInformation_);
break;
}
+ case 40: {
+ status_ = (global::Tango.PMR.Integration.UpdateStatus) input.ReadEnum();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEPROM.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromData.cs
index 5b8b0e9ee..2be7cdb89 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEPROM.cs
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromData.cs
@@ -1,5 +1,5 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: DispenserEEprom.proto
+// source: StubDispenserEEpromData.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
@@ -7,58 +7,58 @@ 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 {
+namespace Tango.PMR.Stubs {
- /// <summary>Holder for reflection information generated from DispenserEEprom.proto</summary>
- public static partial class DispenserEEpromReflection {
+ /// <summary>Holder for reflection information generated from StubDispenserEEpromData.proto</summary>
+ public static partial class StubDispenserEEpromDataReflection {
#region Descriptor
- /// <summary>File descriptor for DispenserEEprom.proto</summary>
+ /// <summary>File descriptor for StubDispenserEEpromData.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
- static DispenserEEpromReflection() {
+ static StubDispenserEEpromDataReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChVEaXNwZW5zZXJFRXByb20ucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGlj",
- "cyLXBQoPRGlzcGVuc2VyRUVwcm9tEg4KBkhlYWRlchgBIAEoDRITCgtUYWJs",
- "ZUxlbmd0aBgCIAEoDRIUCgxUYWJsZXZlcnNpb24YAyABKA0SFAoMRGlzcGVu",
- "c2VyUF9OGAQgASgJEg4KBlBDQlNfThgFIAEoCRIVCg1QQ0JQYXJ0TnVtYmVy",
- "GAYgASgJEhQKDERpc3BlbnNlclNfThgHIAEoCRIXCg9NaW5pbWFsUHJlc3N1",
- "cmUYCCABKA0SFwoPTWF4aW1hbFByZXNzdXJlGAkgASgNEhEKCU1pbmltYWxN",
- "VhgKIAEoDRIRCglNYXhpbWFsTVYYCyABKA0SEwoLVG90YWxDeWNsZXMYDCAB",
- "KA0SEgoKQnViYmxlU2l6ZRgNIAEoDRIcChRBVkdfTmxfc3RlcFZhbHVlXzFf",
- "NBgOIAEoDRIcChRBVkdfTmxfc3RlcFZhbHVlXzJfNBgPIAEoDRIcChRBVkdf",
- "Tmxfc3RlcFZhbHVlXzNfNBgQIAEoDRIcChRBVkdfTmxfc3RlcFZhbHVlXzRf",
- "NBgRIAEoDRISCgpTV19SZXNlcnZlGBIgASgNEhcKD1NwYXJlMV9wcmVzc3Vy",
- "ZRgTIAEoBRIXCg9TcGFyZTJfcHJlc3N1cmUYFCABKAUSGwoTTW90b3JQdWxz",
- "ZXNQZXJDeWNsZRgVIAEoDRINCgVDb2xvchgWIAEoDRIVCg1QcmVzc3VyZVNs",
- "b3BlGBcgASgNEhYKDlByb2R1Y3Rpb25EYXRlGBggASgJEhMKC0FUU2xvY2F0",
- "aW9uGBkgASgNEg4KBlNwYXJlMRgaIAEoDRIOCgZTcGFyZTIYGyABKA0SEgoK",
- "QVRTQ2hhbm5lbBgcIAEoDRIRCglVbml0RW1wdHkYHSABKAgSFwoPRHJ5UnVu",
- "UGFzc19GYWlsGB4gASgIEhUKDUZsb3dQYXNzX0ZhaWwYHyABKAgSEAoIQ2hl",
- "Y2tTdW0YICABKAhCIQofY29tLnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGlj",
- "c2IGcHJvdG8z"));
+ "Ch1TdHViRGlzcGVuc2VyRUVwcm9tRGF0YS5wcm90bxIPVGFuZ28uUE1SLlN0",
+ "dWJzIt8FChdTdHViRGlzcGVuc2VyRUVwcm9tRGF0YRIOCgZIZWFkZXIYASAB",
+ "KA0SEwoLVGFibGVMZW5ndGgYAiABKA0SFAoMVGFibGV2ZXJzaW9uGAMgASgN",
+ "EhQKDERpc3BlbnNlclBfThgEIAEoCRIOCgZQQ0JTX04YBSABKAkSFQoNUENC",
+ "UGFydE51bWJlchgGIAEoCRIUCgxEaXNwZW5zZXJTX04YByABKAkSFwoPTWlu",
+ "aW1hbFByZXNzdXJlGAggASgNEhcKD01heGltYWxQcmVzc3VyZRgJIAEoDRIR",
+ "CglNaW5pbWFsTVYYCiABKA0SEQoJTWF4aW1hbE1WGAsgASgNEhMKC1RvdGFs",
+ "Q3ljbGVzGAwgASgNEhIKCkJ1YmJsZVNpemUYDSABKA0SHAoUQVZHX05sX3N0",
+ "ZXBWYWx1ZV8xXzQYDiABKA0SHAoUQVZHX05sX3N0ZXBWYWx1ZV8yXzQYDyAB",
+ "KA0SHAoUQVZHX05sX3N0ZXBWYWx1ZV8zXzQYECABKA0SHAoUQVZHX05sX3N0",
+ "ZXBWYWx1ZV80XzQYESABKA0SEgoKU1dfUmVzZXJ2ZRgSIAEoDRIXCg9TcGFy",
+ "ZTFfcHJlc3N1cmUYEyABKAUSFwoPU3BhcmUyX3ByZXNzdXJlGBQgASgFEhsK",
+ "E01vdG9yUHVsc2VzUGVyQ3ljbGUYFSABKA0SDQoFQ29sb3IYFiABKA0SFQoN",
+ "UHJlc3N1cmVTbG9wZRgXIAEoDRIWCg5Qcm9kdWN0aW9uRGF0ZRgYIAEoCRIT",
+ "CgtBVFNsb2NhdGlvbhgZIAEoDRIOCgZTcGFyZTEYGiABKA0SDgoGU3BhcmUy",
+ "GBsgASgNEhIKCkFUU0NoYW5uZWwYHCABKA0SEQoJVW5pdEVtcHR5GB0gASgI",
+ "EhcKD0RyeVJ1blBhc3NfRmFpbBgeIAEoCBIVCg1GbG93UGFzc19GYWlsGB8g",
+ "ASgIEhAKCENoZWNrU3VtGCAgASgNQhsKGWNvbS50d2luZS50YW5nby5wbXIu",
+ "c3R1YnNiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DispenserEEprom), global::Tango.PMR.Diagnostics.DispenserEEprom.Parser, new[]{ "Header", "TableLength", "Tableversion", "DispenserPN", "PCBSN", "PCBPartNumber", "DispenserSN", "MinimalPressure", "MaximalPressure", "MinimalMV", "MaximalMV", "TotalCycles", "BubbleSize", "AVGNlStepValue14", "AVGNlStepValue24", "AVGNlStepValue34", "AVGNlStepValue44", "SWReserve", "Spare1Pressure", "Spare2Pressure", "MotorPulsesPerCycle", "Color", "PressureSlope", "ProductionDate", "ATSlocation", "Spare1", "Spare2", "ATSChannel", "UnitEmpty", "DryRunPassFail", "FlowPassFail", "CheckSum" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubDispenserEEpromData), global::Tango.PMR.Stubs.StubDispenserEEpromData.Parser, new[]{ "Header", "TableLength", "Tableversion", "DispenserPN", "PCBSN", "PCBPartNumber", "DispenserSN", "MinimalPressure", "MaximalPressure", "MinimalMV", "MaximalMV", "TotalCycles", "BubbleSize", "AVGNlStepValue14", "AVGNlStepValue24", "AVGNlStepValue34", "AVGNlStepValue44", "SWReserve", "Spare1Pressure", "Spare2Pressure", "MotorPulsesPerCycle", "Color", "PressureSlope", "ProductionDate", "ATSlocation", "Spare1", "Spare2", "ATSChannel", "UnitEmpty", "DryRunPassFail", "FlowPassFail", "CheckSum" }, null, null, null)
}));
}
#endregion
}
#region Messages
- public sealed partial class DispenserEEprom : pb::IMessage<DispenserEEprom> {
- private static readonly pb::MessageParser<DispenserEEprom> _parser = new pb::MessageParser<DispenserEEprom>(() => new DispenserEEprom());
+ public sealed partial class StubDispenserEEpromData : pb::IMessage<StubDispenserEEpromData> {
+ private static readonly pb::MessageParser<StubDispenserEEpromData> _parser = new pb::MessageParser<StubDispenserEEpromData>(() => new StubDispenserEEpromData());
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser<DispenserEEprom> Parser { get { return _parser; } }
+ public static pb::MessageParser<StubDispenserEEpromData> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Tango.PMR.Diagnostics.DispenserEEpromReflection.Descriptor.MessageTypes[0]; }
+ get { return global::Tango.PMR.Stubs.StubDispenserEEpromDataReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -67,14 +67,14 @@ namespace Tango.PMR.Diagnostics {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEprom() {
+ public StubDispenserEEpromData() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEprom(DispenserEEprom other) : this() {
+ public StubDispenserEEpromData(StubDispenserEEpromData other) : this() {
header_ = other.header_;
tableLength_ = other.tableLength_;
tableversion_ = other.tableversion_;
@@ -110,8 +110,8 @@ namespace Tango.PMR.Diagnostics {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEprom Clone() {
- return new DispenserEEprom(this);
+ public StubDispenserEEpromData Clone() {
+ return new StubDispenserEEpromData(this);
}
/// <summary>Field number for the "Header" field.</summary>
@@ -457,9 +457,9 @@ namespace Tango.PMR.Diagnostics {
/// <summary>Field number for the "CheckSum" field.</summary>
public const int CheckSumFieldNumber = 32;
- private bool checkSum_;
+ private uint checkSum_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool CheckSum {
+ public uint CheckSum {
get { return checkSum_; }
set {
checkSum_ = value;
@@ -468,11 +468,11 @@ namespace Tango.PMR.Diagnostics {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
- return Equals(other as DispenserEEprom);
+ return Equals(other as StubDispenserEEpromData);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(DispenserEEprom other) {
+ public bool Equals(StubDispenserEEpromData other) {
if (ReferenceEquals(other, null)) {
return false;
}
@@ -548,7 +548,7 @@ namespace Tango.PMR.Diagnostics {
if (UnitEmpty != false) hash ^= UnitEmpty.GetHashCode();
if (DryRunPassFail != false) hash ^= DryRunPassFail.GetHashCode();
if (FlowPassFail != false) hash ^= FlowPassFail.GetHashCode();
- if (CheckSum != false) hash ^= CheckSum.GetHashCode();
+ if (CheckSum != 0) hash ^= CheckSum.GetHashCode();
return hash;
}
@@ -683,9 +683,9 @@ namespace Tango.PMR.Diagnostics {
output.WriteRawTag(248, 1);
output.WriteBool(FlowPassFail);
}
- if (CheckSum != false) {
+ if (CheckSum != 0) {
output.WriteRawTag(128, 2);
- output.WriteBool(CheckSum);
+ output.WriteUInt32(CheckSum);
}
}
@@ -785,14 +785,14 @@ namespace Tango.PMR.Diagnostics {
if (FlowPassFail != false) {
size += 2 + 1;
}
- if (CheckSum != false) {
- size += 2 + 1;
+ if (CheckSum != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeUInt32Size(CheckSum);
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(DispenserEEprom other) {
+ public void MergeFrom(StubDispenserEEpromData other) {
if (other == null) {
return;
}
@@ -889,7 +889,7 @@ namespace Tango.PMR.Diagnostics {
if (other.FlowPassFail != false) {
FlowPassFail = other.FlowPassFail;
}
- if (other.CheckSum != false) {
+ if (other.CheckSum != 0) {
CheckSum = other.CheckSum;
}
}
@@ -1027,7 +1027,7 @@ namespace Tango.PMR.Diagnostics {
break;
}
case 256: {
- CheckSum = input.ReadBool();
+ CheckSum = input.ReadUInt32();
break;
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEpromRequest.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromRequest.cs
index a8687ca25..9c0f82c27 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEpromRequest.cs
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromRequest.cs
@@ -1,5 +1,5 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: DispenserEEpromRequest.proto
+// source: StubDispenserEEpromRequest.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
@@ -7,45 +7,45 @@ 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 {
+namespace Tango.PMR.Stubs {
- /// <summary>Holder for reflection information generated from DispenserEEpromRequest.proto</summary>
- public static partial class DispenserEEpromRequestReflection {
+ /// <summary>Holder for reflection information generated from StubDispenserEEpromRequest.proto</summary>
+ public static partial class StubDispenserEEpromRequestReflection {
#region Descriptor
- /// <summary>File descriptor for DispenserEEpromRequest.proto</summary>
+ /// <summary>File descriptor for StubDispenserEEpromRequest.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
- static DispenserEEpromRequestReflection() {
+ static StubDispenserEEpromRequestReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChxEaXNwZW5zZXJFRXByb21SZXF1ZXN0LnByb3RvEhVUYW5nby5QTVIuRGlh",
- "Z25vc3RpY3MaFURpc3BlbnNlckVFcHJvbS5wcm90byKDAQoWRGlzcGVuc2Vy",
- "RUVwcm9tUmVxdWVzdBITCgtEaXNwZW5zZXJJZBgBIAEoDRITCgtCdXJuUmVx",
- "dWVzdBgCIAEoCBI/Cg9EaXNwZW5zZXJFRXByb20YAyABKAsyJi5UYW5nby5Q",
- "TVIuRGlhZ25vc3RpY3MuRGlzcGVuc2VyRUVwcm9tQiEKH2NvbS50d2luZS50",
- "YW5nby5wbXIuZGlhZ25vc3RpY3NiBnByb3RvMw=="));
+ "CiBTdHViRGlzcGVuc2VyRUVwcm9tUmVxdWVzdC5wcm90bxIPVGFuZ28uUE1S",
+ "LlN0dWJzGh1TdHViRGlzcGVuc2VyRUVwcm9tRGF0YS5wcm90byKJAQoaU3R1",
+ "YkRpc3BlbnNlckVFcHJvbVJlcXVlc3QSEwoLRGlzcGVuc2VySWQYASABKA0S",
+ "EwoLQnVyblJlcXVlc3QYAiABKAgSQQoPRGlzcGVuc2VyRUVwcm9tGAMgASgL",
+ "MiguVGFuZ28uUE1SLlN0dWJzLlN0dWJEaXNwZW5zZXJFRXByb21EYXRhQhsK",
+ "GWNvbS50d2luZS50YW5nby5wbXIuc3R1YnNiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DispenserEEpromReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::Tango.PMR.Stubs.StubDispenserEEpromDataReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DispenserEEpromRequest), global::Tango.PMR.Diagnostics.DispenserEEpromRequest.Parser, new[]{ "DispenserId", "BurnRequest", "DispenserEEprom" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubDispenserEEpromRequest), global::Tango.PMR.Stubs.StubDispenserEEpromRequest.Parser, new[]{ "DispenserId", "BurnRequest", "DispenserEEprom" }, null, null, null)
}));
}
#endregion
}
#region Messages
- public sealed partial class DispenserEEpromRequest : pb::IMessage<DispenserEEpromRequest> {
- private static readonly pb::MessageParser<DispenserEEpromRequest> _parser = new pb::MessageParser<DispenserEEpromRequest>(() => new DispenserEEpromRequest());
+ public sealed partial class StubDispenserEEpromRequest : pb::IMessage<StubDispenserEEpromRequest> {
+ private static readonly pb::MessageParser<StubDispenserEEpromRequest> _parser = new pb::MessageParser<StubDispenserEEpromRequest>(() => new StubDispenserEEpromRequest());
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser<DispenserEEpromRequest> Parser { get { return _parser; } }
+ public static pb::MessageParser<StubDispenserEEpromRequest> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Tango.PMR.Diagnostics.DispenserEEpromRequestReflection.Descriptor.MessageTypes[0]; }
+ get { return global::Tango.PMR.Stubs.StubDispenserEEpromRequestReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -54,22 +54,22 @@ namespace Tango.PMR.Diagnostics {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEpromRequest() {
+ public StubDispenserEEpromRequest() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEpromRequest(DispenserEEpromRequest other) : this() {
+ public StubDispenserEEpromRequest(StubDispenserEEpromRequest other) : this() {
dispenserId_ = other.dispenserId_;
burnRequest_ = other.burnRequest_;
DispenserEEprom = other.dispenserEEprom_ != null ? other.DispenserEEprom.Clone() : null;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEpromRequest Clone() {
- return new DispenserEEpromRequest(this);
+ public StubDispenserEEpromRequest Clone() {
+ return new StubDispenserEEpromRequest(this);
}
/// <summary>Field number for the "DispenserId" field.</summary>
@@ -96,9 +96,9 @@ namespace Tango.PMR.Diagnostics {
/// <summary>Field number for the "DispenserEEprom" field.</summary>
public const int DispenserEEpromFieldNumber = 3;
- private global::Tango.PMR.Diagnostics.DispenserEEprom dispenserEEprom_;
+ private global::Tango.PMR.Stubs.StubDispenserEEpromData dispenserEEprom_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Tango.PMR.Diagnostics.DispenserEEprom DispenserEEprom {
+ public global::Tango.PMR.Stubs.StubDispenserEEpromData DispenserEEprom {
get { return dispenserEEprom_; }
set {
dispenserEEprom_ = value;
@@ -107,11 +107,11 @@ namespace Tango.PMR.Diagnostics {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
- return Equals(other as DispenserEEpromRequest);
+ return Equals(other as StubDispenserEEpromRequest);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(DispenserEEpromRequest other) {
+ public bool Equals(StubDispenserEEpromRequest other) {
if (ReferenceEquals(other, null)) {
return false;
}
@@ -170,7 +170,7 @@ namespace Tango.PMR.Diagnostics {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(DispenserEEpromRequest other) {
+ public void MergeFrom(StubDispenserEEpromRequest other) {
if (other == null) {
return;
}
@@ -182,7 +182,7 @@ namespace Tango.PMR.Diagnostics {
}
if (other.dispenserEEprom_ != null) {
if (dispenserEEprom_ == null) {
- dispenserEEprom_ = new global::Tango.PMR.Diagnostics.DispenserEEprom();
+ dispenserEEprom_ = new global::Tango.PMR.Stubs.StubDispenserEEpromData();
}
DispenserEEprom.MergeFrom(other.DispenserEEprom);
}
@@ -206,7 +206,7 @@ namespace Tango.PMR.Diagnostics {
}
case 26: {
if (dispenserEEprom_ == null) {
- dispenserEEprom_ = new global::Tango.PMR.Diagnostics.DispenserEEprom();
+ dispenserEEprom_ = new global::Tango.PMR.Stubs.StubDispenserEEpromData();
}
input.ReadMessage(dispenserEEprom_);
break;
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEpromResponse.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromResponse.cs
index 32e7aec12..452a97cf4 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/DispenserEEpromResponse.cs
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubDispenserEEpromResponse.cs
@@ -1,5 +1,5 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: DispenserEEpromResponse.proto
+// source: StubDispenserEEpromResponse.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
@@ -7,45 +7,45 @@ 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 {
+namespace Tango.PMR.Stubs {
- /// <summary>Holder for reflection information generated from DispenserEEpromResponse.proto</summary>
- public static partial class DispenserEEpromResponseReflection {
+ /// <summary>Holder for reflection information generated from StubDispenserEEpromResponse.proto</summary>
+ public static partial class StubDispenserEEpromResponseReflection {
#region Descriptor
- /// <summary>File descriptor for DispenserEEpromResponse.proto</summary>
+ /// <summary>File descriptor for StubDispenserEEpromResponse.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
- static DispenserEEpromResponseReflection() {
+ static StubDispenserEEpromResponseReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "Ch1EaXNwZW5zZXJFRXByb21SZXNwb25zZS5wcm90bxIVVGFuZ28uUE1SLkRp",
- "YWdub3N0aWNzGhVEaXNwZW5zZXJFRXByb20ucHJvdG8ibwoXRGlzcGVuc2Vy",
- "RUVwcm9tUmVzcG9uc2USEwoLRGlzcGVuc2VySWQYASABKA0SPwoPRGlzcGVu",
- "c2VyRUVwcm9tGAIgASgLMiYuVGFuZ28uUE1SLkRpYWdub3N0aWNzLkRpc3Bl",
- "bnNlckVFcHJvbUIhCh9jb20udHdpbmUudGFuZ28ucG1yLmRpYWdub3N0aWNz",
- "YgZwcm90bzM="));
+ "CiFTdHViRGlzcGVuc2VyRUVwcm9tUmVzcG9uc2UucHJvdG8SD1RhbmdvLlBN",
+ "Ui5TdHVicxodU3R1YkRpc3BlbnNlckVFcHJvbURhdGEucHJvdG8idQobU3R1",
+ "YkRpc3BlbnNlckVFcHJvbVJlc3BvbnNlEhMKC0Rpc3BlbnNlcklkGAEgASgN",
+ "EkEKD0Rpc3BlbnNlckVFcHJvbRgCIAEoCzIoLlRhbmdvLlBNUi5TdHVicy5T",
+ "dHViRGlzcGVuc2VyRUVwcm9tRGF0YUIbChljb20udHdpbmUudGFuZ28ucG1y",
+ "LnN0dWJzYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DispenserEEpromReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::Tango.PMR.Stubs.StubDispenserEEpromDataReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DispenserEEpromResponse), global::Tango.PMR.Diagnostics.DispenserEEpromResponse.Parser, new[]{ "DispenserId", "DispenserEEprom" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubDispenserEEpromResponse), global::Tango.PMR.Stubs.StubDispenserEEpromResponse.Parser, new[]{ "DispenserId", "DispenserEEprom" }, null, null, null)
}));
}
#endregion
}
#region Messages
- public sealed partial class DispenserEEpromResponse : pb::IMessage<DispenserEEpromResponse> {
- private static readonly pb::MessageParser<DispenserEEpromResponse> _parser = new pb::MessageParser<DispenserEEpromResponse>(() => new DispenserEEpromResponse());
+ public sealed partial class StubDispenserEEpromResponse : pb::IMessage<StubDispenserEEpromResponse> {
+ private static readonly pb::MessageParser<StubDispenserEEpromResponse> _parser = new pb::MessageParser<StubDispenserEEpromResponse>(() => new StubDispenserEEpromResponse());
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser<DispenserEEpromResponse> Parser { get { return _parser; } }
+ public static pb::MessageParser<StubDispenserEEpromResponse> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Tango.PMR.Diagnostics.DispenserEEpromResponseReflection.Descriptor.MessageTypes[0]; }
+ get { return global::Tango.PMR.Stubs.StubDispenserEEpromResponseReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -54,21 +54,21 @@ namespace Tango.PMR.Diagnostics {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEpromResponse() {
+ public StubDispenserEEpromResponse() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEpromResponse(DispenserEEpromResponse other) : this() {
+ public StubDispenserEEpromResponse(StubDispenserEEpromResponse other) : this() {
dispenserId_ = other.dispenserId_;
DispenserEEprom = other.dispenserEEprom_ != null ? other.DispenserEEprom.Clone() : null;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public DispenserEEpromResponse Clone() {
- return new DispenserEEpromResponse(this);
+ public StubDispenserEEpromResponse Clone() {
+ return new StubDispenserEEpromResponse(this);
}
/// <summary>Field number for the "DispenserId" field.</summary>
@@ -84,9 +84,9 @@ namespace Tango.PMR.Diagnostics {
/// <summary>Field number for the "DispenserEEprom" field.</summary>
public const int DispenserEEpromFieldNumber = 2;
- private global::Tango.PMR.Diagnostics.DispenserEEprom dispenserEEprom_;
+ private global::Tango.PMR.Stubs.StubDispenserEEpromData dispenserEEprom_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Tango.PMR.Diagnostics.DispenserEEprom DispenserEEprom {
+ public global::Tango.PMR.Stubs.StubDispenserEEpromData DispenserEEprom {
get { return dispenserEEprom_; }
set {
dispenserEEprom_ = value;
@@ -95,11 +95,11 @@ namespace Tango.PMR.Diagnostics {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
- return Equals(other as DispenserEEpromResponse);
+ return Equals(other as StubDispenserEEpromResponse);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(DispenserEEpromResponse other) {
+ public bool Equals(StubDispenserEEpromResponse other) {
if (ReferenceEquals(other, null)) {
return false;
}
@@ -149,7 +149,7 @@ namespace Tango.PMR.Diagnostics {
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(DispenserEEpromResponse other) {
+ public void MergeFrom(StubDispenserEEpromResponse other) {
if (other == null) {
return;
}
@@ -158,7 +158,7 @@ namespace Tango.PMR.Diagnostics {
}
if (other.dispenserEEprom_ != null) {
if (dispenserEEprom_ == null) {
- dispenserEEprom_ = new global::Tango.PMR.Diagnostics.DispenserEEprom();
+ dispenserEEprom_ = new global::Tango.PMR.Stubs.StubDispenserEEpromData();
}
DispenserEEprom.MergeFrom(other.DispenserEEprom);
}
@@ -178,7 +178,7 @@ namespace Tango.PMR.Diagnostics {
}
case 18: {
if (dispenserEEprom_ == null) {
- dispenserEEprom_ = new global::Tango.PMR.Diagnostics.DispenserEEprom();
+ dispenserEEprom_ = new global::Tango.PMR.Stubs.StubDispenserEEpromData();
}
input.ReadMessage(dispenserEEprom_);
break;
diff --git a/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromData.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromData.cs
new file mode 100644
index 000000000..f34cebdc9
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromData.cs
@@ -0,0 +1,672 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubWhsEEpromData.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.Stubs {
+
+ /// <summary>Holder for reflection information generated from StubWhsEEpromData.proto</summary>
+ public static partial class StubWhsEEpromDataReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for StubWhsEEpromData.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static StubWhsEEpromDataReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChdTdHViV2hzRUVwcm9tRGF0YS5wcm90bxIPVGFuZ28uUE1SLlN0dWJzIrgD",
+ "ChFTdHViV2hzRUVwcm9tRGF0YRIOCgZIZWFkZXIYASABKA0SEwoLVGFibGVM",
+ "ZW5ndGgYAiABKA0SFAoMVGFibGV2ZXJzaW9uGAMgASgNEg4KBldoc1BfThgE",
+ "IAEoCRIOCgZQQ0JTX04YBSABKAkSFQoNUENCUGFydE51bWJlchgGIAEoCRIO",
+ "CgZXaHNTX04YByABKAkSFAoMT3JpZmljZTFGbG93GAggASgBEhUKDU9yaWZp",
+ "Y2UxU2xvcGUYCSABKAESFAoMT3JpZmljZTJGbG93GAogASgBEhUKDU9yaWZp",
+ "Y2UyU2xvcGUYCyABKAESFAoMT3JpZmljZTNGbG93GAwgASgBEhUKDU9yaWZp",
+ "Y2UzU2xvcGUYDSABKAESGAoQT3JpZmljZVZhbHZlRmxvdxgOIAEoARIZChFP",
+ "cmlmaWNlVmFsdmVTbG9wZRgPIAEoARIbChNWT0NJbnN0YWxsYXRpb25EYXRl",
+ "GBAgASgJEh4KFkZpbHRlckluc3RhbGxhdGlvbkRhdGUYESABKAkSFgoOUHJv",
+ "ZHVjdGlvbkRhdGUYEiABKAkSEAoIQ2hlY2tTdW0YEyABKA1CGwoZY29tLnR3",
+ "aW5lLnRhbmdvLnBtci5zdHVic2IGcHJvdG8z"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubWhsEEpromData), global::Tango.PMR.Stubs.StubWhsEEpromData.Parser, new[]{ "Header", "TableLength", "Tableversion", "WhsPN", "PCBSN", "PCBPartNumber", "WhsSN", "Orifice1Flow", "Orifice1Slope", "Orifice2Flow", "Orifice2Slope", "Orifice3Flow", "Orifice3Slope", "OrificeValveFlow", "OrificeValveSlope", "VOCInstallationDate", "FilterInstallationDate", "ProductionDate", "CheckSum" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class StubWhsEEpromData : pb::IMessage<StubWhsEEpromData> {
+ private static readonly pb::MessageParser<StubWhsEEpromData> _parser = new pb::MessageParser<StubWhsEEpromData>(() => new StubWhsEEpromData());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<StubWhsEEpromData> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Stubs.StubWhsEEpromDataReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromData() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromData(StubWhsEEpromData other) : this() {
+ header_ = other.header_;
+ tableLength_ = other.tableLength_;
+ tableversion_ = other.tableversion_;
+ whsPN_ = other.whsPN_;
+ pCBSN_ = other.pCBSN_;
+ pCBPartNumber_ = other.pCBPartNumber_;
+ whsSN_ = other.whsSN_;
+ orifice1Flow_ = other.orifice1Flow_;
+ orifice1Slope_ = other.orifice1Slope_;
+ orifice2Flow_ = other.orifice2Flow_;
+ orifice2Slope_ = other.orifice2Slope_;
+ orifice3Flow_ = other.orifice3Flow_;
+ orifice3Slope_ = other.orifice3Slope_;
+ orificeValveFlow_ = other.orificeValveFlow_;
+ orificeValveSlope_ = other.orificeValveSlope_;
+ vOCInstallationDate_ = other.vOCInstallationDate_;
+ filterInstallationDate_ = other.filterInstallationDate_;
+ productionDate_ = other.productionDate_;
+ checkSum_ = other.checkSum_;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromData Clone() {
+ return new StubWhsEEpromData(this);
+ }
+
+ /// <summary>Field number for the "Header" field.</summary>
+ public const int HeaderFieldNumber = 1;
+ private uint header_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public uint Header {
+ get { return header_; }
+ set {
+ header_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "TableLength" field.</summary>
+ public const int TableLengthFieldNumber = 2;
+ private uint tableLength_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public uint TableLength {
+ get { return tableLength_; }
+ set {
+ tableLength_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Tableversion" field.</summary>
+ public const int TableversionFieldNumber = 3;
+ private uint tableversion_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public uint Tableversion {
+ get { return tableversion_; }
+ set {
+ tableversion_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "WhsP_N" field.</summary>
+ public const int WhsPNFieldNumber = 4;
+ private string whsPN_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string WhsPN {
+ get { return whsPN_; }
+ set {
+ whsPN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "PCBS_N" field.</summary>
+ public const int PCBSNFieldNumber = 5;
+ private string pCBSN_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string PCBSN {
+ get { return pCBSN_; }
+ set {
+ pCBSN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "PCBPartNumber" field.</summary>
+ public const int PCBPartNumberFieldNumber = 6;
+ private string pCBPartNumber_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string PCBPartNumber {
+ get { return pCBPartNumber_; }
+ set {
+ pCBPartNumber_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "WhsS_N" field.</summary>
+ public const int WhsSNFieldNumber = 7;
+ private string whsSN_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string WhsSN {
+ get { return whsSN_; }
+ set {
+ whsSN_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "Orifice1Flow" field.</summary>
+ public const int Orifice1FlowFieldNumber = 8;
+ private double orifice1Flow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double Orifice1Flow {
+ get { return orifice1Flow_; }
+ set {
+ orifice1Flow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Orifice1Slope" field.</summary>
+ public const int Orifice1SlopeFieldNumber = 9;
+ private double orifice1Slope_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double Orifice1Slope {
+ get { return orifice1Slope_; }
+ set {
+ orifice1Slope_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Orifice2Flow" field.</summary>
+ public const int Orifice2FlowFieldNumber = 10;
+ private double orifice2Flow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double Orifice2Flow {
+ get { return orifice2Flow_; }
+ set {
+ orifice2Flow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Orifice2Slope" field.</summary>
+ public const int Orifice2SlopeFieldNumber = 11;
+ private double orifice2Slope_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double Orifice2Slope {
+ get { return orifice2Slope_; }
+ set {
+ orifice2Slope_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Orifice3Flow" field.</summary>
+ public const int Orifice3FlowFieldNumber = 12;
+ private double orifice3Flow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double Orifice3Flow {
+ get { return orifice3Flow_; }
+ set {
+ orifice3Flow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "Orifice3Slope" field.</summary>
+ public const int Orifice3SlopeFieldNumber = 13;
+ private double orifice3Slope_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double Orifice3Slope {
+ get { return orifice3Slope_; }
+ set {
+ orifice3Slope_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "OrificeValveFlow" field.</summary>
+ public const int OrificeValveFlowFieldNumber = 14;
+ private double orificeValveFlow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double OrificeValveFlow {
+ get { return orificeValveFlow_; }
+ set {
+ orificeValveFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "OrificeValveSlope" field.</summary>
+ public const int OrificeValveSlopeFieldNumber = 15;
+ private double orificeValveSlope_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double OrificeValveSlope {
+ get { return orificeValveSlope_; }
+ set {
+ orificeValveSlope_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "VOCInstallationDate" field.</summary>
+ public const int VOCInstallationDateFieldNumber = 16;
+ private string vOCInstallationDate_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string VOCInstallationDate {
+ get { return vOCInstallationDate_; }
+ set {
+ vOCInstallationDate_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "FilterInstallationDate" field.</summary>
+ public const int FilterInstallationDateFieldNumber = 17;
+ private string filterInstallationDate_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string FilterInstallationDate {
+ get { return filterInstallationDate_; }
+ set {
+ filterInstallationDate_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "ProductionDate" field.</summary>
+ public const int ProductionDateFieldNumber = 18;
+ private string productionDate_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string ProductionDate {
+ get { return productionDate_; }
+ set {
+ productionDate_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// <summary>Field number for the "CheckSum" field.</summary>
+ public const int CheckSumFieldNumber = 19;
+ private uint checkSum_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public uint CheckSum {
+ get { return checkSum_; }
+ set {
+ checkSum_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as StubWhsEEpromData);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StubWhsEEpromData other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Header != other.Header) return false;
+ if (TableLength != other.TableLength) return false;
+ if (Tableversion != other.Tableversion) return false;
+ if (WhsPN != other.WhsPN) return false;
+ if (PCBSN != other.PCBSN) return false;
+ if (PCBPartNumber != other.PCBPartNumber) return false;
+ if (WhsSN != other.WhsSN) return false;
+ if (Orifice1Flow != other.Orifice1Flow) return false;
+ if (Orifice1Slope != other.Orifice1Slope) return false;
+ if (Orifice2Flow != other.Orifice2Flow) return false;
+ if (Orifice2Slope != other.Orifice2Slope) return false;
+ if (Orifice3Flow != other.Orifice3Flow) return false;
+ if (Orifice3Slope != other.Orifice3Slope) return false;
+ if (OrificeValveFlow != other.OrificeValveFlow) return false;
+ if (OrificeValveSlope != other.OrificeValveSlope) return false;
+ if (VOCInstallationDate != other.VOCInstallationDate) return false;
+ if (FilterInstallationDate != other.FilterInstallationDate) return false;
+ if (ProductionDate != other.ProductionDate) return false;
+ if (CheckSum != other.CheckSum) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Header != 0) hash ^= Header.GetHashCode();
+ if (TableLength != 0) hash ^= TableLength.GetHashCode();
+ if (Tableversion != 0) hash ^= Tableversion.GetHashCode();
+ if (WhsPN.Length != 0) hash ^= WhsPN.GetHashCode();
+ if (PCBSN.Length != 0) hash ^= PCBSN.GetHashCode();
+ if (PCBPartNumber.Length != 0) hash ^= PCBPartNumber.GetHashCode();
+ if (WhsSN.Length != 0) hash ^= WhsSN.GetHashCode();
+ if (Orifice1Flow != 0D) hash ^= Orifice1Flow.GetHashCode();
+ if (Orifice1Slope != 0D) hash ^= Orifice1Slope.GetHashCode();
+ if (Orifice2Flow != 0D) hash ^= Orifice2Flow.GetHashCode();
+ if (Orifice2Slope != 0D) hash ^= Orifice2Slope.GetHashCode();
+ if (Orifice3Flow != 0D) hash ^= Orifice3Flow.GetHashCode();
+ if (Orifice3Slope != 0D) hash ^= Orifice3Slope.GetHashCode();
+ if (OrificeValveFlow != 0D) hash ^= OrificeValveFlow.GetHashCode();
+ if (OrificeValveSlope != 0D) hash ^= OrificeValveSlope.GetHashCode();
+ if (VOCInstallationDate.Length != 0) hash ^= VOCInstallationDate.GetHashCode();
+ if (FilterInstallationDate.Length != 0) hash ^= FilterInstallationDate.GetHashCode();
+ if (ProductionDate.Length != 0) hash ^= ProductionDate.GetHashCode();
+ if (CheckSum != 0) hash ^= CheckSum.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 (Header != 0) {
+ output.WriteRawTag(8);
+ output.WriteUInt32(Header);
+ }
+ if (TableLength != 0) {
+ output.WriteRawTag(16);
+ output.WriteUInt32(TableLength);
+ }
+ if (Tableversion != 0) {
+ output.WriteRawTag(24);
+ output.WriteUInt32(Tableversion);
+ }
+ if (WhsPN.Length != 0) {
+ output.WriteRawTag(34);
+ output.WriteString(WhsPN);
+ }
+ if (PCBSN.Length != 0) {
+ output.WriteRawTag(42);
+ output.WriteString(PCBSN);
+ }
+ if (PCBPartNumber.Length != 0) {
+ output.WriteRawTag(50);
+ output.WriteString(PCBPartNumber);
+ }
+ if (WhsSN.Length != 0) {
+ output.WriteRawTag(58);
+ output.WriteString(WhsSN);
+ }
+ if (Orifice1Flow != 0D) {
+ output.WriteRawTag(65);
+ output.WriteDouble(Orifice1Flow);
+ }
+ if (Orifice1Slope != 0D) {
+ output.WriteRawTag(73);
+ output.WriteDouble(Orifice1Slope);
+ }
+ if (Orifice2Flow != 0D) {
+ output.WriteRawTag(81);
+ output.WriteDouble(Orifice2Flow);
+ }
+ if (Orifice2Slope != 0D) {
+ output.WriteRawTag(89);
+ output.WriteDouble(Orifice2Slope);
+ }
+ if (Orifice3Flow != 0D) {
+ output.WriteRawTag(97);
+ output.WriteDouble(Orifice3Flow);
+ }
+ if (Orifice3Slope != 0D) {
+ output.WriteRawTag(105);
+ output.WriteDouble(Orifice3Slope);
+ }
+ if (OrificeValveFlow != 0D) {
+ output.WriteRawTag(113);
+ output.WriteDouble(OrificeValveFlow);
+ }
+ if (OrificeValveSlope != 0D) {
+ output.WriteRawTag(121);
+ output.WriteDouble(OrificeValveSlope);
+ }
+ if (VOCInstallationDate.Length != 0) {
+ output.WriteRawTag(130, 1);
+ output.WriteString(VOCInstallationDate);
+ }
+ if (FilterInstallationDate.Length != 0) {
+ output.WriteRawTag(138, 1);
+ output.WriteString(FilterInstallationDate);
+ }
+ if (ProductionDate.Length != 0) {
+ output.WriteRawTag(146, 1);
+ output.WriteString(ProductionDate);
+ }
+ if (CheckSum != 0) {
+ output.WriteRawTag(152, 1);
+ output.WriteUInt32(CheckSum);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (Header != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Header);
+ }
+ if (TableLength != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TableLength);
+ }
+ if (Tableversion != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Tableversion);
+ }
+ if (WhsPN.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(WhsPN);
+ }
+ if (PCBSN.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(PCBSN);
+ }
+ if (PCBPartNumber.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(PCBPartNumber);
+ }
+ if (WhsSN.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(WhsSN);
+ }
+ if (Orifice1Flow != 0D) {
+ size += 1 + 8;
+ }
+ if (Orifice1Slope != 0D) {
+ size += 1 + 8;
+ }
+ if (Orifice2Flow != 0D) {
+ size += 1 + 8;
+ }
+ if (Orifice2Slope != 0D) {
+ size += 1 + 8;
+ }
+ if (Orifice3Flow != 0D) {
+ size += 1 + 8;
+ }
+ if (Orifice3Slope != 0D) {
+ size += 1 + 8;
+ }
+ if (OrificeValveFlow != 0D) {
+ size += 1 + 8;
+ }
+ if (OrificeValveSlope != 0D) {
+ size += 1 + 8;
+ }
+ if (VOCInstallationDate.Length != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeStringSize(VOCInstallationDate);
+ }
+ if (FilterInstallationDate.Length != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeStringSize(FilterInstallationDate);
+ }
+ if (ProductionDate.Length != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeStringSize(ProductionDate);
+ }
+ if (CheckSum != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeUInt32Size(CheckSum);
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StubWhsEEpromData other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Header != 0) {
+ Header = other.Header;
+ }
+ if (other.TableLength != 0) {
+ TableLength = other.TableLength;
+ }
+ if (other.Tableversion != 0) {
+ Tableversion = other.Tableversion;
+ }
+ if (other.WhsPN.Length != 0) {
+ WhsPN = other.WhsPN;
+ }
+ if (other.PCBSN.Length != 0) {
+ PCBSN = other.PCBSN;
+ }
+ if (other.PCBPartNumber.Length != 0) {
+ PCBPartNumber = other.PCBPartNumber;
+ }
+ if (other.WhsSN.Length != 0) {
+ WhsSN = other.WhsSN;
+ }
+ if (other.Orifice1Flow != 0D) {
+ Orifice1Flow = other.Orifice1Flow;
+ }
+ if (other.Orifice1Slope != 0D) {
+ Orifice1Slope = other.Orifice1Slope;
+ }
+ if (other.Orifice2Flow != 0D) {
+ Orifice2Flow = other.Orifice2Flow;
+ }
+ if (other.Orifice2Slope != 0D) {
+ Orifice2Slope = other.Orifice2Slope;
+ }
+ if (other.Orifice3Flow != 0D) {
+ Orifice3Flow = other.Orifice3Flow;
+ }
+ if (other.Orifice3Slope != 0D) {
+ Orifice3Slope = other.Orifice3Slope;
+ }
+ if (other.OrificeValveFlow != 0D) {
+ OrificeValveFlow = other.OrificeValveFlow;
+ }
+ if (other.OrificeValveSlope != 0D) {
+ OrificeValveSlope = other.OrificeValveSlope;
+ }
+ if (other.VOCInstallationDate.Length != 0) {
+ VOCInstallationDate = other.VOCInstallationDate;
+ }
+ if (other.FilterInstallationDate.Length != 0) {
+ FilterInstallationDate = other.FilterInstallationDate;
+ }
+ if (other.ProductionDate.Length != 0) {
+ ProductionDate = other.ProductionDate;
+ }
+ if (other.CheckSum != 0) {
+ CheckSum = other.CheckSum;
+ }
+ }
+
+ [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: {
+ Header = input.ReadUInt32();
+ break;
+ }
+ case 16: {
+ TableLength = input.ReadUInt32();
+ break;
+ }
+ case 24: {
+ Tableversion = input.ReadUInt32();
+ break;
+ }
+ case 34: {
+ WhsPN = input.ReadString();
+ break;
+ }
+ case 42: {
+ PCBSN = input.ReadString();
+ break;
+ }
+ case 50: {
+ PCBPartNumber = input.ReadString();
+ break;
+ }
+ case 58: {
+ WhsSN = input.ReadString();
+ break;
+ }
+ case 65: {
+ Orifice1Flow = input.ReadDouble();
+ break;
+ }
+ case 73: {
+ Orifice1Slope = input.ReadDouble();
+ break;
+ }
+ case 81: {
+ Orifice2Flow = input.ReadDouble();
+ break;
+ }
+ case 89: {
+ Orifice2Slope = input.ReadDouble();
+ break;
+ }
+ case 97: {
+ Orifice3Flow = input.ReadDouble();
+ break;
+ }
+ case 105: {
+ Orifice3Slope = input.ReadDouble();
+ break;
+ }
+ case 113: {
+ OrificeValveFlow = input.ReadDouble();
+ break;
+ }
+ case 121: {
+ OrificeValveSlope = input.ReadDouble();
+ break;
+ }
+ case 130: {
+ VOCInstallationDate = input.ReadString();
+ break;
+ }
+ case 138: {
+ FilterInstallationDate = input.ReadString();
+ break;
+ }
+ case 146: {
+ ProductionDate = input.ReadString();
+ break;
+ }
+ case 152: {
+ CheckSum = input.ReadUInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromRequest.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromRequest.cs
new file mode 100644
index 000000000..54c735b3f
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromRequest.cs
@@ -0,0 +1,195 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubWhsEEpromRequest.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.Stubs {
+
+ /// <summary>Holder for reflection information generated from StubWhsEEpromRequest.proto</summary>
+ public static partial class StubWhsEEpromRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for StubWhsEEpromRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static StubWhsEEpromRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChpTdHViV2hzRUVwcm9tUmVxdWVzdC5wcm90bxIPVGFuZ28uUE1SLlN0dWJz",
+ "GhdTdHViV2hzRUVwcm9tRGF0YS5wcm90byJiChRTdHViV2hzRUVwcm9tUmVx",
+ "dWVzdBITCgtCdXJuUmVxdWVzdBgBIAEoCBI1CglXaHNFRXByb20YAiABKAsy",
+ "Ii5UYW5nby5QTVIuU3R1YnMuU3R1Yldoc0VFcHJvbURhdGFCGwoZY29tLnR3",
+ "aW5lLnRhbmdvLnBtci5zdHVic2IGcHJvdG8z"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { global::Tango.PMR.Stubs.StubWhsEEpromDataReflection.Descriptor, },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubWhsEEpromRequest), global::Tango.PMR.Stubs.StubWhsEEpromRequest.Parser, new[]{ "BurnRequest", "WhsEEprom" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class StubWhsEEpromRequest : pb::IMessage<StubWhsEEpromRequest> {
+ private static readonly pb::MessageParser<StubWhsEEpromRequest> _parser = new pb::MessageParser<StubWhsEEpromRequest>(() => new StubWhsEEpromRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<StubWhsEEpromRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Stubs.StubWhsEEpromRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromRequest(StubWhsEEpromRequest other) : this() {
+ burnRequest_ = other.burnRequest_;
+ WhsEEprom = other.whsEEprom_ != null ? other.WhsEEprom.Clone() : null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromRequest Clone() {
+ return new StubWhsEEpromRequest(this);
+ }
+
+ /// <summary>Field number for the "BurnRequest" field.</summary>
+ public const int BurnRequestFieldNumber = 1;
+ private bool burnRequest_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool BurnRequest {
+ get { return burnRequest_; }
+ set {
+ burnRequest_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "WhsEEprom" field.</summary>
+ public const int WhsEEpromFieldNumber = 2;
+ private global::Tango.PMR.Stubs.StubWhsEEpromData whsEEprom_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Tango.PMR.Stubs.StubWhsEEpromData WhsEEprom {
+ get { return whsEEprom_; }
+ set {
+ whsEEprom_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as StubWhsEEpromRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StubWhsEEpromRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (BurnRequest != other.BurnRequest) return false;
+ if (!object.Equals(WhsEEprom, other.WhsEEprom)) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (BurnRequest != false) hash ^= BurnRequest.GetHashCode();
+ if (whsEEprom_ != null) hash ^= WhsEEprom.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 (BurnRequest != false) {
+ output.WriteRawTag(8);
+ output.WriteBool(BurnRequest);
+ }
+ if (whsEEprom_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(WhsEEprom);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (BurnRequest != false) {
+ size += 1 + 1;
+ }
+ if (whsEEprom_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(WhsEEprom);
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StubWhsEEpromRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.BurnRequest != false) {
+ BurnRequest = other.BurnRequest;
+ }
+ if (other.whsEEprom_ != null) {
+ if (whsEEprom_ == null) {
+ whsEEprom_ = new global::Tango.PMR.Stubs.StubWhsEEpromData();
+ }
+ WhsEEprom.MergeFrom(other.WhsEEprom);
+ }
+ }
+
+ [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: {
+ BurnRequest = input.ReadBool();
+ break;
+ }
+ case 18: {
+ if (whsEEprom_ == null) {
+ whsEEprom_ = new global::Tango.PMR.Stubs.StubWhsEEpromData();
+ }
+ input.ReadMessage(whsEEprom_);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromResponse.cs b/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromResponse.cs
new file mode 100644
index 000000000..6e67fc661
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Stubs/StubWhsEEpromResponse.cs
@@ -0,0 +1,167 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubWhsEEpromResponse.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.Stubs {
+
+ /// <summary>Holder for reflection information generated from StubWhsEEpromResponse.proto</summary>
+ public static partial class StubWhsEEpromResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for StubWhsEEpromResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static StubWhsEEpromResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChtTdHViV2hzRUVwcm9tUmVzcG9uc2UucHJvdG8SD1RhbmdvLlBNUi5TdHVi",
+ "cxoXU3R1Yldoc0VFcHJvbURhdGEucHJvdG8iTgoVU3R1Yldoc0VFcHJvbVJl",
+ "c3BvbnNlEjUKCVdoc0VFcHJvbRgBIAEoCzIiLlRhbmdvLlBNUi5TdHVicy5T",
+ "dHViV2hzRUVwcm9tRGF0YUIbChljb20udHdpbmUudGFuZ28ucG1yLnN0dWJz",
+ "YgZwcm90bzM="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { global::Tango.PMR.Stubs.StubWhsEEpromDataReflection.Descriptor, },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Stubs.StubWhsEEpromResponse), global::Tango.PMR.Stubs.StubWhsEEpromResponse.Parser, new[]{ "WhsEEprom" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class StubWhsEEpromResponse : pb::IMessage<StubWhsEEpromResponse> {
+ private static readonly pb::MessageParser<StubWhsEEpromResponse> _parser = new pb::MessageParser<StubWhsEEpromResponse>(() => new StubWhsEEpromResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<StubWhsEEpromResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Stubs.StubWhsEEpromResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromResponse(StubWhsEEpromResponse other) : this() {
+ WhsEEprom = other.whsEEprom_ != null ? other.WhsEEprom.Clone() : null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StubWhsEEpromResponse Clone() {
+ return new StubWhsEEpromResponse(this);
+ }
+
+ /// <summary>Field number for the "WhsEEprom" field.</summary>
+ public const int WhsEEpromFieldNumber = 1;
+ private global::Tango.PMR.Stubs.StubWhsEEpromData whsEEprom_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Tango.PMR.Stubs.StubWhsEEpromData WhsEEprom {
+ get { return whsEEprom_; }
+ set {
+ whsEEprom_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as StubWhsEEpromResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StubWhsEEpromResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(WhsEEprom, other.WhsEEprom)) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (whsEEprom_ != null) hash ^= WhsEEprom.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 (whsEEprom_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(WhsEEprom);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (whsEEprom_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(WhsEEprom);
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StubWhsEEpromResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.whsEEprom_ != null) {
+ if (whsEEprom_ == null) {
+ whsEEprom_ = new global::Tango.PMR.Stubs.StubWhsEEpromData();
+ }
+ WhsEEprom.MergeFrom(other.WhsEEprom);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 10: {
+ if (whsEEprom_ == null) {
+ whsEEprom_ = new global::Tango.PMR.Stubs.StubWhsEEpromData();
+ }
+ input.ReadMessage(whsEEprom_);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
index c9d87f7c1..3cfd8ee2d 100644
--- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
+++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
@@ -94,9 +94,6 @@
<Compile Include="Diagnostics\DispenserAbortHomingResponse.cs" />
<Compile Include="Diagnostics\DispenserAbortJoggingRequest.cs" />
<Compile Include="Diagnostics\DispenserAbortJoggingResponse.cs" />
- <Compile Include="Diagnostics\DispenserEEPROM.cs" />
- <Compile Include="Diagnostics\DispenserEEpromRequest.cs" />
- <Compile Include="Diagnostics\DispenserEEpromResponse.cs" />
<Compile Include="Diagnostics\DispenserHomingRequest.cs" />
<Compile Include="Diagnostics\DispenserHomingResponse.cs" />
<Compile Include="Diagnostics\DispenserJoggingRequest.cs" />
@@ -299,6 +296,12 @@
<Compile Include="Printing\UploadProcessParametersResponse.cs" />
<Compile Include="Printing\WindingMethod.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Stubs\StubDispenserEEpromData.cs" />
+ <Compile Include="Stubs\StubDispenserEEpromRequest.cs" />
+ <Compile Include="Stubs\StubDispenserEEpromResponse.cs" />
+ <Compile Include="Stubs\StubWhsEEpromData.cs" />
+ <Compile Include="Stubs\StubWhsEEpromRequest.cs" />
+ <Compile Include="Stubs\StubWhsEEpromResponse.cs" />
<Compile Include="Synchronization\HttpProtoException.cs" />
<Compile Include="TangoMessage.cs" />
<Compile Include="Common\ErrorCode.cs" />
@@ -437,7 +440,7 @@
</PropertyGroup>
<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