diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-11-25 17:52:49 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-11-25 17:52:49 +0200 |
| commit | 9277bbd2fa070c69b83904f8fe5628fab2b947b8 (patch) | |
| tree | 3099f9ce92f04c28517eb13938e913a1e376b3fe /Software/Visual_Studio | |
| parent | f779e2b6f0bb1dedc7644c64651b59e31ce62c00 (diff) | |
| download | Tango-9277bbd2fa070c69b83904f8fe5628fab2b947b8.tar.gz Tango-9277bbd2fa070c69b83904f8fe5628fab2b947b8.zip | |
Working on job export import to storage.
Diffstat (limited to 'Software/Visual_Studio')
32 files changed, 2411 insertions, 188 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj index ad98f7511..aa473ec02 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj @@ -233,6 +233,10 @@ <Project>{b112d89a-a106-41ae-a0c1-4abc84c477f5}</Project> <Name>Tango.DragAndDrop</Name> </ProjectReference> + <ProjectReference Include="..\..\..\Tango.Explorer\Tango.Explorer.csproj"> + <Project>{4399AF76-DB52-4CFB-8020-6F85BDB29FD5}</Project> + <Name>Tango.Explorer</Name> + </ProjectReference> <ProjectReference Include="..\..\..\Tango.Hive\Tango.Hive.csproj"> <Project>{942134ac-6ea2-4500-8f22-0f739b70a05f}</Project> <Name>Tango.Hive</Name> @@ -269,6 +273,10 @@ <Project>{0be74eee-22cb-4dba-b896-793b9e1a3ac0}</Project> <Name>Tango.PPC.Common</Name> </ProjectReference> + <ProjectReference Include="..\Tango.PPC.Storage\Tango.PPC.Storage.csproj"> + <Project>{04febb02-f782-4b96-b47d-f6902afa43be}</Project> + <Name>Tango.PPC.Storage</Name> + </ProjectReference> </ItemGroup> <ItemGroup> <Resource Include="Images\jobs-module.png" /> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs index c4bd1f5b8..2f22e2f2d 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs @@ -22,6 +22,11 @@ using Tango.PPC.Jobs.Views; using System.Data.Entity; using Tango.BL.Builders; using Tango.PPC.Jobs.NavigationObjects; +using Tango.PPC.Storage; +using Tango.Explorer; +using System.IO; +using Google.Protobuf; +using Tango.PMR.Exports; namespace Tango.PPC.Jobs.ViewModels { @@ -137,6 +142,11 @@ namespace Tango.PPC.Jobs.ViewModels /// </summary> public RelayCommand CloneJobsCommand { get; set; } + /// <summary> + /// Gets or sets the export job command. + /// </summary> + public RelayCommand ExportJobCommand { get; set; } + #endregion #region Constructors @@ -162,6 +172,7 @@ namespace Tango.PPC.Jobs.ViewModels AddJobCommand = new RelayCommand(AddNewJob); DeleteJobsCommand = new RelayCommand(() => DeleteJobs(SelectedJobs)); CloneJobsCommand = new RelayCommand(() => CloneJobs(SelectedJobs)); + ExportJobCommand = new RelayCommand(ExportJob); RegisterForMessage<JobRemovedMessage>(HandleJobRemovedMessage); RegisterForMessage<JobSavedMessage>(HandleJobSavedMessage); @@ -451,6 +462,56 @@ namespace Tango.PPC.Jobs.ViewModels public override void OnApplicationReady() { base.OnApplicationReady(); + StorageProvider.RegisterFileHandler(ExplorerFileDefinition.Job.Extension, HandleJobFileLoaded); + } + + #endregion + + #region Job Export + + private async void ExportJob() + { + var selected_job = SelectedJobs.First(); + ClearSelection(); + + var result = await NavigationManager. + NavigateForResult<StorageModule, + Storage.Views.MainView, ExplorerFileItem, + Storage.Models.StorageNavigationRequest>( + new Storage.Models.StorageNavigationRequest() + { + Intent = Storage.Models.StorageNavigationIntent.SaveFile, + DefaultFileName = selected_job.Name + ExplorerFileDefinition.Job.Extension, + Filter = ExplorerFileDefinition.Job.Extension + }); + + if (result != null) + { + var jobFile = await selected_job.ToJobFile(); + + using (FileStream fs = new FileStream(result.Path, FileMode.Create)) + { + jobFile.WriteTo(fs); + } + + await NotificationProvider.ShowInfo("Job saved."); + } + } + + #endregion + + #region Handle Job File Loading From Storage + + private async void HandleJobFileLoaded(ExplorerFileItem jobFile) + { + using (ObservablesContext jobContext = ObservablesContext.CreateDefault()) + { + JobFile jFile = JobFile.Parser.ParseFrom(File.ReadAllBytes(jobFile.Path)); + var job = await Job.FromJobFile(jFile, MachineProvider.Machine.Guid, AuthenticationProvider.CurrentUser.Guid); + jobContext.Jobs.Add(job); + await jobContext.SaveChangesAsync(); + LoadJobs(); + } } #endregion diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml index a583681f3..89feb8dc3 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml @@ -81,6 +81,7 @@ </Style> </touch:TouchIconButton.Style> </touch:TouchIconButton> + <touch:TouchIconButton Command="{Binding ExportJobCommand}" Margin="0 0 30 0" Padding="20" Icon="HddRegular" Style="{StaticResource TangoRoundTouchIconButton}"></touch:TouchIconButton> <touch:TouchIconButton Command="{Binding CloneJobsCommand}" Margin="0 0 30 0" Padding="20" Icon="CopyRegular" Style="{StaticResource TangoRoundTouchIconButton}"></touch:TouchIconButton> <touch:TouchIconButton Command="{Binding DeleteJobsCommand}" Padding="20" Icon="TrashAltRegular" Style="{StaticResource TangoRoundTouchIconButton}"></touch:TouchIconButton> </StackPanel> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Models/StorageNavigationIntent.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Models/StorageNavigationIntent.cs new file mode 100644 index 000000000..2c2a7f10d --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Models/StorageNavigationIntent.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Storage.Models +{ + public enum StorageNavigationIntent + { + LoadFile, + SaveFile + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Models/StorageNavigationRequest.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Models/StorageNavigationRequest.cs new file mode 100644 index 000000000..32a546f4f --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Models/StorageNavigationRequest.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Storage.Models +{ + public class StorageNavigationRequest + { + /// <summary> + /// Gets or sets the request intent. + /// </summary> + public StorageNavigationIntent Intent { get; set; } + + /// <summary> + /// Gets or sets the file display filter (e.g .tup|.job|.ccp). + /// </summary> + public String Filter { get; set; } + + /// <summary> + /// Gets or sets the default file name when saving a file. + /// </summary> + public String DefaultFileName { get; set; } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj index b6a2c885b..83f23e6b9 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj @@ -50,6 +50,8 @@ <Compile Include="..\..\..\Versioning\GlobalVersionInfo.cs"> <Link>GlobalVersionInfo.cs</Link> </Compile> + <Compile Include="Models\StorageNavigationIntent.cs" /> + <Compile Include="Models\StorageNavigationRequest.cs" /> <Compile Include="StorageModule.cs" /> <Compile Include="Properties\AssemblyInfo.cs"> <SubType>Code</SubType> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs index e62ebc932..05316d1f6 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs @@ -7,6 +7,7 @@ using Tango.Core.Commands; using Tango.Explorer; using Tango.PPC.Common; using Tango.PPC.Common.Navigation; +using Tango.PPC.Storage.Models; using Tango.PPC.Storage.TaskBarItems; using Tango.PPC.Storage.ViewContracts; @@ -16,7 +17,7 @@ namespace Tango.PPC.Storage.ViewModels /// Represents the main view VM and entry point for <see cref="Storage.StorageModule"/>. /// </summary> /// <seealso cref="Tango.PPC.Common.PPCViewModel" /> - public class MainViewVM : PPCViewModel<IMainView>, INavigationResultProvider<ExplorerFileItem, String> + public class MainViewVM : PPCViewModel<IMainView>, INavigationResultProvider<ExplorerFileItem, StorageNavigationRequest> { private bool _allow_exit; private ExplorerFileItem _selectedItem; @@ -28,14 +29,22 @@ namespace Tango.PPC.Storage.ViewModels set { _currentPath = value; RaisePropertyChangedAuto(); } } - public RelayCommand CloseCommand { get; set; } + private StorageNavigationRequest _request; + public StorageNavigationRequest Request + { + get { return _request; } + set { _request = value; RaisePropertyChangedAuto(); } + } public RelayCommand<ExplorerFileItem> FileSelectedCommand { get; set; } + public RelayCommand SaveCommand { get; set; } + public MainViewVM() { - CloseCommand = new RelayCommand(Close); FileSelectedCommand = new RelayCommand<ExplorerFileItem>(OnFileSelected); + SaveCommand = new RelayCommand(OnSaveCommand); + Request = new StorageNavigationRequest(); } public override void OnApplicationStarted() @@ -61,6 +70,7 @@ namespace Tango.PPC.Storage.ViewModels if (StorageProvider.IsConnected && StorageProvider.Drive != null) { + CurrentPath = null; CurrentPath = StorageProvider.Drive.RootDirectory.FullName; } else @@ -71,9 +81,10 @@ namespace Tango.PPC.Storage.ViewModels } } - private async void Close() + public override void OnNavigatedFrom() { - await NavigationManager.NavigateBack(); + base.OnNavigatedFrom(); + Request = new StorageNavigationRequest(); } /// <summary> @@ -114,6 +125,7 @@ namespace Tango.PPC.Storage.ViewModels { if (_allow_exit || CurrentPath == StorageProvider.Drive.RootDirectory.FullName) { + Request = null; return Task.FromResult(true); } else @@ -127,7 +139,7 @@ namespace Tango.PPC.Storage.ViewModels { _allow_exit = true; await NavigationManager.NavigateBack(); - await NotificationProvider.ShowInfo($"File Selected: {fileItem.Name}"); + StorageProvider.SubmitFileSelection(fileItem); } public ExplorerFileItem GetNavigationResult() @@ -135,9 +147,18 @@ namespace Tango.PPC.Storage.ViewModels return _selectedItem; } - public void OnNavigationObjectReceived(string extension) + public void OnNavigationObjectReceived(StorageNavigationRequest request) { + Request = request; + } + private void OnSaveCommand() + { + _selectedItem = new ExplorerFileItem() + { + Path = CurrentPath + "\\" + Request.DefaultFileName, + }; + NavigationManager.NavigateBack(); } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml index 2fea4ce20..d7817fe6f 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml @@ -6,13 +6,37 @@ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" xmlns:explorer="clr-namespace:Tango.Explorer;assembly=Tango.Explorer" xmlns:vm="clr-namespace:Tango.PPC.Storage.ViewModels" + xmlns:models="clr-namespace:Tango.PPC.Storage.Models" xmlns:global="clr-namespace:Tango.PPC.Storage" xmlns:local="clr-namespace:Tango.PPC.Storage.Views" mc:Ignorable="d" d:DesignHeight="1280" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}" Background="{StaticResource TangoPrimaryBackgroundBrush}"> <Grid> <Grid Margin="10"> - <explorer:ExplorerControl x:Name="explorer" CurrentPath="{Binding CurrentPath,Mode=TwoWay}" FileSelectedCommand="{Binding FileSelectedCommand}" /> + <DockPanel> + + <Grid DockPanel.Dock="Top" Visibility="{Binding Request.Intent,Converter={StaticResource EnumToVisibilityConverter},ConverterParameter=SaveFile,TargetNullValue=Visibility.Collapsed,FallbackValue=Visibility.Collapsed}"> + <Border BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoDividerBrush}" Padding="20"> + <DockPanel> + <touch:TouchButton Command="{Binding SaveCommand}" Margin="20 0 0 0" Height="50" Width="200" Style="{StaticResource TangoHollowButton}" CornerRadius="0" DockPanel.Dock="Right">SAVE</touch:TouchButton> + <touch:TouchTextBox VerticalAlignment="Bottom" Text="{Binding Request.DefaultFileName}" /> + </DockPanel> + </Border> + </Grid> + + <explorer:ExplorerControl x:Name="explorer" CurrentPath="{Binding CurrentPath,Mode=TwoWay}" FileSelectedCommand="{Binding FileSelectedCommand}" Filter="{Binding Request.Filter}"> + <explorer:ExplorerControl.Style> + <Style TargetType="explorer:ExplorerControl" BasedOn="{StaticResource {x:Type explorer:ExplorerControl}}"> + <Setter Property="EnableFileSelection" Value="True"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Request.Intent}" Value="SaveFile"> + <Setter Property="EnableFileSelection" Value="False"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </explorer:ExplorerControl.Style> + </explorer:ExplorerControl> + </DockPanel> </Grid> </Grid> </UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs index d2be997b5..13752b931 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs @@ -43,6 +43,13 @@ namespace Tango.PPC.Common.MachineUpdate Task<MachineUpdateResult> Update(String serialNumber, String machineServiceAddress); /// <summary> + /// Performs a machine update using the specified software update package path. + /// </summary> + /// <param name="fileName">Name of the file.</param> + /// <returns></returns> + Task<MachineUpdateResult> Update(String fileName); + + /// <summary> /// Checks if any update are available for the specified machine serial number. /// </summary> /// <param name="serialNumber">The serial number.</param> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs index a75ca9017..d3757e50d 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs @@ -445,6 +445,40 @@ namespace Tango.PPC.Common.MachineUpdate }); } + /// <summary> + /// Performs a machine update using the specified software update package path. + /// </summary> + /// <param name="fileName">Name of the file.</param> + /// <returns></returns> + public Task<MachineUpdateResult> Update(string fileName) + { + return Task.Factory.StartNew<MachineUpdateResult>(() => + { + CurrentStep = MachineUpdateSteps.UpdatingFromPackage; + + LogManager.Log($"Starting machine update from update package '{fileName}'..."); + + //Create temporary folders for packages. + var _newPackageTempFolder = TemporaryManager.CreateFolder(); + _newPackageTempFolder.Persist = true; + + LogManager.Log("Extracting downloaded zip file..."); + //Extract software package. + ZipFile.ExtractToDirectory(fileName, _newPackageTempFolder); + + LogManager.Log("Copying latest updater utility to application path..."); + //Copy new updater utility to app path. + File.Copy(Path.Combine(_newPackageTempFolder, "Tango.PPC.Updater.exe"), Path.Combine(PathHelper.GetStartupPath(), "Tango.PPC.Updater.exe"), true); + + LogManager.Log("Update operation completed!"); + + return new MachineUpdateResult() + { + UpdatePackagePath = _newPackageTempFolder, + }; + }); + } + #endregion } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateSteps.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateSteps.cs index 3d8208e4b..74931d2d4 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateSteps.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateSteps.cs @@ -16,6 +16,7 @@ namespace Tango.PPC.Common.MachineUpdate [Description("Synchronizing Data")] SynchronizingData, [Description("Updating Configuration")] - SynchronizingMachineConfiguration + SynchronizingMachineConfiguration, + UpdatingFromPackage } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindow.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindow.xaml index 8e9b31dff..327cab826 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindow.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindow.xaml @@ -18,6 +18,7 @@ <DockPanel Margin="10"> <Grid Height="50" DockPanel.Dock="Bottom"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> + <Button Width="150" Command="{Binding CreateTupCommand}">CREATE TUP FILE</Button> <Button Width="150" Command="{Binding PublishCommand}">PUBLISH</Button> </StackPanel> </Grid> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindowVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindowVM.cs index aec2581de..5891f1228 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindowVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher/MainWindowVM.cs @@ -141,6 +141,8 @@ namespace Tango.PPC.Publisher public RelayCommand PublishCommand { get; set; } + public RelayCommand CreateTupCommand { get; set; } + public MainWindowVM() { SelectedBuildConfiguration = "Release"; @@ -165,6 +167,7 @@ namespace Tango.PPC.Publisher LocalVersion = FileVersionInfo.GetVersionInfo(Core.Helpers.AssemblyHelper.GetCurrentAssemblyFolder() + "\\Tango.PPC.UI.exe").ProductVersion; PublishCommand = new RelayCommand(Publish); + CreateTupCommand = new RelayCommand(PublishTupFile); } private async void OnSelectedMachineVersionChanged() @@ -187,8 +190,6 @@ namespace Tango.PPC.Publisher private void Publish() { - String _appPath = String.Format(AppDomain.CurrentDomain.BaseDirectory + "..\\{0}", SelectedBuildConfiguration); - Task.Factory.StartNew(async () => { IsUpdating = true; @@ -207,77 +208,7 @@ namespace Tango.PPC.Publisher tempFile = TemporaryManager.Default.CreateFile(".zip"); - using (ZipFile zip = new ZipFile()) - { - String provision_dir = "Provision Scripts"; - - zip.AddDirectoryByName(provision_dir); - - ExaminerSequenceConfiguration provision_config = new ExaminerSequenceConfiguration(); - - foreach (var item in ProvisionSequenceItems) - { - provision_config.Items.Add(new ExaminerSequenceItem() - { - Direction = item.Direction, - FileName = item.FileName, - Index = item.Index, - Name = item.Name, - Type = item.Type, - RequiresSerialNumber = item.RequiresSerialNumber - }); - - zip.AddFile(item.FilePath, provision_dir); - } - - String provision_config_file = TemporaryManager.Default.CreateFile(".zip"); - provision_config.ToFile(provision_config_file); - - var cf = zip.AddFile(provision_config_file, provision_dir); - cf.FileName = provision_dir + "\\config.xml"; - - - - String update_dir = "Update Scripts"; - - zip.AddDirectoryByName(update_dir); - - ExaminerSequenceConfiguration update_config = new ExaminerSequenceConfiguration(); - - foreach (var item in UpdateSequenceItems) - { - update_config.Items.Add(new ExaminerSequenceItem() - { - Direction = item.Direction, - FileName = item.FileName, - Index = item.Index, - Name = item.Name, - Type = item.Type, - RequiresSerialNumber = item.RequiresSerialNumber - }); - - zip.AddFile(item.FilePath, update_dir); - } - - String update_config_file = TemporaryManager.Default.CreateFile(".zip"); - update_config.ToFile(update_config_file); - - var cuf = zip.AddFile(update_config_file, update_dir); - cuf.FileName = update_dir + "\\config.xml"; - - foreach (var file in Directory.GetFiles(_appPath, "*.*", SearchOption.TopDirectoryOnly)) - { - zip.AddFile(file, "/"); - } - - zip.SaveProgress += (x, e) => - { - MaxProgress = e.EntriesTotal; - Progress = e.EntriesSaved; - }; - - zip.Save(tempFile); - } + CreateTupPackage(tempFile); Progress = 0; MaxProgress = 100; @@ -318,6 +249,34 @@ namespace Tango.PPC.Publisher }); } + private void PublishTupFile() + { + SaveFileDialog dlg = new SaveFileDialog(); + dlg.Filter = "Tango Update Package|*.tup"; + dlg.DefaultExt = ".tup"; + if (dlg.ShowDialog().Value) + { + Task.Factory.StartNew(() => + { + try + { + IsUpdating = true; + CreateTupPackage(dlg.FileName); + Progress = 0; + ShowInfo("Package file created successfully!"); + } + catch (Exception ex) + { + ShowError(ex.Message); + } + finally + { + IsUpdating = false; + } + }); + } + } + private void ShowError(String error) { MessageBox.Show(error, "PPC Publisher", MessageBoxButton.OK, MessageBoxImage.Error); @@ -333,6 +292,86 @@ namespace Tango.PPC.Publisher return MessageBox.Show(message, "PPC Publisher", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes; } + + + private void CreateTupPackage(String filePath) + { + String _appPath = String.Format(AppDomain.CurrentDomain.BaseDirectory + "..\\{0}", SelectedBuildConfiguration); + var tempFile = filePath; + + using (ZipFile zip = new ZipFile()) + { + String provision_dir = "Provision Scripts"; + + zip.AddDirectoryByName(provision_dir); + + ExaminerSequenceConfiguration provision_config = new ExaminerSequenceConfiguration(); + + foreach (var item in ProvisionSequenceItems) + { + provision_config.Items.Add(new ExaminerSequenceItem() + { + Direction = item.Direction, + FileName = item.FileName, + Index = item.Index, + Name = item.Name, + Type = item.Type, + RequiresSerialNumber = item.RequiresSerialNumber + }); + + zip.AddFile(item.FilePath, provision_dir); + } + + String provision_config_file = TemporaryManager.Default.CreateFile(".zip"); + provision_config.ToFile(provision_config_file); + + var cf = zip.AddFile(provision_config_file, provision_dir); + cf.FileName = provision_dir + "\\config.xml"; + + + + String update_dir = "Update Scripts"; + + zip.AddDirectoryByName(update_dir); + + ExaminerSequenceConfiguration update_config = new ExaminerSequenceConfiguration(); + + foreach (var item in UpdateSequenceItems) + { + update_config.Items.Add(new ExaminerSequenceItem() + { + Direction = item.Direction, + FileName = item.FileName, + Index = item.Index, + Name = item.Name, + Type = item.Type, + RequiresSerialNumber = item.RequiresSerialNumber + }); + + zip.AddFile(item.FilePath, update_dir); + } + + String update_config_file = TemporaryManager.Default.CreateFile(".zip"); + update_config.ToFile(update_config_file); + + var cuf = zip.AddFile(update_config_file, update_dir); + cuf.FileName = update_dir + "\\config.xml"; + + foreach (var file in Directory.GetFiles(_appPath, "*.*", SearchOption.TopDirectoryOnly)) + { + zip.AddFile(file, "/"); + } + + zip.SaveProgress += (x, e) => + { + MaxProgress = e.EntriesTotal; + Progress = e.EntriesSaved; + }; + + zip.Save(tempFile); + } + } + protected override void RaisePropertyChangedAuto([CallerMemberName] string caller = null) { base.RaisePropertyChangedAuto(caller); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs index eee37b2e0..efe8149f6 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs @@ -213,30 +213,37 @@ namespace Tango.PPC.UI.Navigation { var moduleNavigation = moduleView.FindChildOffline<NavigationControl>(); - moduleNavigation.RegisterForLoadedOrNow(async (x, e) => + if (moduleNavigation != null) { - foreach (var view in path.Skip(1)) + moduleNavigation.RegisterForLoadedOrNow(async (x, e) => { - await Task.Delay(100); - var v = moduleNavigation.NavigateTo(view); - - if (v != null) + foreach (var view in path.Skip(1)) { - _currentVM = v.DataContext; + await Task.Delay(100); + var v = moduleNavigation.NavigateTo(view); - if (view != path.Last()) + if (v != null) { - moduleNavigation = v.FindChildOffline<NavigationControl>(); + _currentVM = v.DataContext; + + if (view != path.Last()) + { + moduleNavigation = v.FindChildOffline<NavigationControl>(); + } + } + else + { + throw LogManager.Log(new ArgumentNullException("Could not navigate to " + fullPath)); } } - else - { - throw LogManager.Log(new ArgumentNullException("Could not navigate to " + fullPath)); - } - } + NavigationCycleCompleted?.Invoke(fromVM, _currentVM); + }); + } + else + { NavigationCycleCompleted?.Invoke(fromVM, _currentVM); - }); + } } return true; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs index 451cd07a1..f582d0bb0 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs @@ -7,6 +7,7 @@ using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; using Tango.Core.Helpers; +using Tango.Explorer; using Tango.PPC.Common; using Tango.PPC.Common.MachineUpdate; using Tango.PPC.UI.ViewsContracts; @@ -17,7 +18,6 @@ namespace Tango.PPC.UI.ViewModels { public enum MachineUpdateView { - UpdateCheckView, UpdateCheckErrorView, UpdateAvailableView, @@ -26,6 +26,8 @@ namespace Tango.PPC.UI.ViewModels UpdateDbProgressView, UpdateCompletedView, UpdateFailedView, + UpdateFromPackageView, + UpdateFailedFromPackageView, } private MachineUpdateResult _update_result; @@ -209,6 +211,11 @@ namespace Tango.PPC.UI.ViewModels #endregion + #region Override Methods + + /// <summary> + /// Called when the application has been started. + /// </summary> public override void OnApplicationStarted() { @@ -222,5 +229,44 @@ namespace Tango.PPC.UI.ViewModels { return View.NavigateTo(view); } + + /// <summary> + /// Called when the application is ready and all modules views are loaded. + /// </summary> + public override void OnApplicationReady() + { + base.OnApplicationReady(); + + StorageProvider.RegisterFileHandler(ExplorerFileDefinition.Update.Extension, HandleSoftwareUpdatePackageLoaded); + } + + #endregion + + #region Handle USB Update + + private async void HandleSoftwareUpdatePackageLoaded(ExplorerFileItem fileItem) + { + if (await NotificationProvider.ShowQuestion("Do you with to install the selected software package?")) + { + await NavigationManager.NavigateTo(Common.Navigation.NavigationView.MachineUpdateView); + await NavigateTo(MachineUpdateView.UpdateFromPackageView); + + LogManager.Log("Starting machine update from package..."); + + try + { + _update_result = await MachineUpdateManager.Update(fileItem.Path); + LogManager.Log("Machine update from package completed."); + await NavigateTo(MachineUpdateView.UpdateCompletedView); + } + catch (Exception ex) + { + LogManager.Log(ex, "Machine update from package failed."); + await NavigateTo(MachineUpdateView.UpdateFailedFromPackageView); + } + } + } + + #endregion } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineUpdateView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineUpdateView.xaml index b17a53422..06a330675 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineUpdateView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineUpdateView.xaml @@ -159,6 +159,23 @@ </StackPanel> </Grid> + <Grid controls:NavigationControl.NavigationName="UpdateFromPackageView"> + <StackPanel HorizontalAlignment="Center" Margin="0 200 0 0"> + <touch:TouchBusyIndicator Width="250" Height="250" IsIndeterminate="{Binding IsVisible}" /> + <TextBlock DockPanel.Dock="Top" Margin="0 100" FontSize="{StaticResource TangoHeaderFontSize}" HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center"> + Updating your software + </TextBlock> + </StackPanel> + </Grid> + + <Grid controls:NavigationControl.NavigationName="UpdateFailedFromPackageView"> + <StackPanel HorizontalAlignment="Center" Margin="0 50 0 0"> + <touch:TouchIcon Icon="AlertOctagon" Foreground="{StaticResource TangoErrorBrush}" Width="70" Height="70" /> + <TextBlock VerticalAlignment="Center" Margin="0 10 0 0" Foreground="{StaticResource TangoErrorBrush}" FontSize="{StaticResource TangoTitleFontSize}">An error occurred while trying to update the machine.</TextBlock> + + <touch:TouchButton Style="{StaticResource TangoFlatButton}" Margin="0 200 0 0" Padding="20" Width="300" HorizontalContentAlignment="Center" CornerRadius="35" Command="{Binding ToApplicationCommand}">Back To Application</touch:TouchButton> + </StackPanel> + </Grid> </controls:NavigationControl> </DockPanel> </Grid> diff --git a/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs index d8d58d69b..da418a990 100644 --- a/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs +++ b/Software/Visual_Studio/Tango.BL/Builders/JobBuilder.cs @@ -23,6 +23,7 @@ namespace Tango.BL.Builders Include(x => x.Rml). Include(x => x.ColorSpace). Include(x => x.SpoolType). + Include(x => x.Customer). Include(x => x.WindingMethod); } diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs index 9ec711857..911a55e22 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json; +using Google.Protobuf; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -10,9 +11,11 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Media.Imaging; using Tango.BL.Attributes; +using Tango.BL.Builders; using Tango.BL.Enumerations; using Tango.Core; using Tango.Logging; +using Tango.PMR.Exports; namespace Tango.BL.Entities { @@ -500,6 +503,155 @@ namespace Tango.BL.Entities }; } + public Task<JobFile> ToJobFile() + { + return Task.Factory.StartNew<JobFile>(() => + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var job = new JobBuilder(db).Set(Guid).WithUser().WithRML().WithSegments().WithBrushStops().Build(); + + var jobFile = new JobFile(); + + jobFile.ColorSpaceGuid = job.ColorSpaceGuid.ToStringOrEmpty(); + jobFile.Customer = job.Customer != null ? job.Customer.Name : String.Empty; + jobFile.Description = job.Description.ToStringOrEmpty(); + + if (job.HasEmbroideryFile) + { + jobFile.HasEmbroideryFile = job.HasEmbroideryFile; + jobFile.EmbroideryFileData = ByteString.CopyFrom(job.EmbroideryFileData); + jobFile.EmbroideryFileName = job.EmbroideryFileName; + jobFile.EmbroideryJpeg = ByteString.CopyFrom(job.EmbroideryJpeg); + } + + jobFile.EnableInterSegment = job.EnableInterSegment; + jobFile.EnableLubrication = job.EnableLubrication; + jobFile.InterSegmentLength = job.InterSegmentLength; + jobFile.LengthPercentageFactor = job.LengthPercentageFactor; + jobFile.Name = job.Name.ToStringOrEmpty(); + jobFile.NumberOfUnits = job.NumberOfUnits; + jobFile.RmlGuid = job.RmlGuid; + jobFile.SampleUnitsOrMeters = job.SampleUnitsOrMeters; + jobFile.SpoolsDistribution = job.SpoolsDistribution; + jobFile.SpoolTypeGuid = job.SpoolTypeGuid; + jobFile.Type = job.Type; + jobFile.WindingMethodGuid = job.WindingMethodGuid; + + foreach (var segment in job.Segments.OrderBy(x => x.SegmentIndex)) + { + JobFileSegment s = new JobFileSegment(); + s.Length = segment.Length; + s.Name = segment.Name.ToStringOrEmpty(); + jobFile.Segments.Add(s); + + foreach (var stop in segment.BrushStops.OrderBy(x => x.StopIndex)) + { + JobFileBrushStop st = new JobFileBrushStop(); + stop.MapPrimitivesWithStringsNoNullsTo(st); + s.BrushStops.Add(st); + } + } + + return jobFile; + } + }); + } + + public static Task<Job> FromJobFile(JobFile jobFile, String machineGuid, String userGuid) + { + return Task.Factory.StartNew(() => + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var job = new Job(); + job.MachineGuid = machineGuid; + job.UserGuid = userGuid; + + var job_color_space = db.ColorSpaces.SingleOrDefault(x => x.Guid == jobFile.ColorSpaceGuid); + if (job_color_space == null) throw new ArgumentException("Could not load the specified job file. Job color space could not be located on database."); + job.ColorSpaceGuid = jobFile.ColorSpaceGuid; + + + var job_customer = db.Customers.FirstOrDefault(x => x.Name == jobFile.Customer); + + if (job_customer != null) + { + job.CustomerGuid = job_customer.Guid; + } + + job.Description = jobFile.Description.ToNullIfEmpty(); + + if (jobFile.HasEmbroideryFile) + { + job.HasEmbroideryFile = jobFile.HasEmbroideryFile; + job.EmbroideryFileData = jobFile.EmbroideryFileData.ToByteArray(); + job.EmbroideryFileName = jobFile.EmbroideryFileName; + job.EmbroideryJpeg = jobFile.EmbroideryJpeg.ToByteArray(); + } + job.EnableInterSegment = jobFile.EnableInterSegment; + job.EnableLubrication = jobFile.EnableLubrication; + job.InterSegmentLength = jobFile.InterSegmentLength; + job.LengthPercentageFactor = jobFile.LengthPercentageFactor; + job.Name = jobFile.Name.ToNullIfEmpty(); + job.NumberOfUnits = jobFile.NumberOfUnits; + + var job_rml = db.Rmls.SingleOrDefault(x => x.Guid == jobFile.RmlGuid); + + if (job_rml == null) throw new ArgumentException("Could not load the specified job file. Job media type could not be located on database."); + + job.RmlGuid = jobFile.RmlGuid; + job.SampleUnitsOrMeters = jobFile.SampleUnitsOrMeters; + job.SpoolsDistribution = jobFile.SpoolsDistribution; + + var job_spool_type = db.SpoolTypes.SingleOrDefault(x => x.Guid == jobFile.SpoolTypeGuid); + + if (job_spool_type == null) throw new ArgumentException("Could not load the specified job file. Job spool type could not be located on database."); + + job.SpoolTypeGuid = jobFile.SpoolTypeGuid; + job.Type = jobFile.Type; + + var job_winding_method = db.WindingMethods.Single(x => x.Guid == jobFile.WindingMethodGuid); + + if (job_winding_method == null) throw new ArgumentException("Could not load the specified job file. Job winding method could not be located on database."); + + job.WindingMethodGuid = jobFile.WindingMethodGuid; + + for (int i = 0; i < jobFile.Segments.Count; i++) + { + var segment = jobFile.Segments[i]; + Segment s = new Segment(); + s.JobGuid = job.Guid; + s.Name = segment.Name.ToNullIfEmpty(); + s.Length = segment.Length; + s.SegmentIndex = i + 1; + job.Segments.Add(s); + + for (int j = 0; j < segment.BrushStops.Count; j++) + { + var stop = segment.BrushStops[j]; + + var stop_color_space = db.ColorSpaces.SingleOrDefault(x => x.Guid == stop.ColorSpaceGuid); + if (stop_color_space == null) throw new ArgumentException("Could not load the specified job file. Job brush stop color space could not be located on database."); + + if (!String.IsNullOrWhiteSpace(stop.ColorCatalogGuid)) + { + var stop_color_catalog = db.ColorCatalogs.SingleOrDefault(x => x.Guid == stop.ColorCatalogGuid); + if (stop_color_catalog == null) throw new ArgumentException("Could not load the specified job file. Job brush stop catalog color could not be located on database."); + } + + BrushStop st = new BrushStop(); + st.StopIndex = j + 1; + st.SegmentGuid = s.Guid; + stop.MapPrimitivesWithStringsNoNullsTo(st); + s.BrushStops.Add(st); + } + } + + return job; + } + }); + } #endregion diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs index 7d0c86e06..cff4e6a3a 100644 --- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs +++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs @@ -74,6 +74,29 @@ public static class ObjectExtensions } /// <summary> + /// Maps the object properties values to the destination object including strings and without assigning null string values from the source. + /// </summary> + /// <param name="source">The source.</param> + /// <param name="destination">The destination.</param> + public static void MapPrimitivesWithStringsNoNullsTo(this object source, object destination) + { + foreach (var prop in source.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType.IsPrimitive || x.PropertyType == typeof(String))) + { + var desProp = destination.GetType().GetProperty(prop.Name, BindingFlags.Public | BindingFlags.Instance); + + if (desProp != null && (desProp.PropertyType.IsPrimitive || desProp.PropertyType == typeof(String)) && desProp.SetMethod != null) + { + var value = prop.GetValue(source); + + if (desProp.PropertyType != typeof(String) || !String.IsNullOrEmpty(value as String)) + { + desProp.SetValue(destination, value); + } + } + } + } + + /// <summary> /// Maps the object properties values to the destination object. /// </summary> /// <param name="source">The source.</param> diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs index 71ed2b03f..f03bcb647 100644 --- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs +++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs @@ -223,4 +223,14 @@ public static class StringExtensions "$1 $2" ); } + + public static String ToStringOrEmpty(this String str) + { + return str != null ? str : String.Empty; + } + + public static String ToNullIfEmpty(this String str) + { + return String.IsNullOrEmpty(str) ? null : str; + } } diff --git a/Software/Visual_Studio/Tango.Explorer/ExplorerControl.cs b/Software/Visual_Studio/Tango.Explorer/ExplorerControl.cs index d84138e0f..77116e94c 100644 --- a/Software/Visual_Studio/Tango.Explorer/ExplorerControl.cs +++ b/Software/Visual_Studio/Tango.Explorer/ExplorerControl.cs @@ -61,6 +61,23 @@ namespace Tango.Explorer public static readonly DependencyProperty FileSelectedCommandProperty = DependencyProperty.Register("FileSelectedCommand", typeof(RelayCommand<ExplorerFileItem>), typeof(ExplorerControl), new PropertyMetadata(null)); + public String Filter + { + get { return (String)GetValue(FilterProperty); } + set { SetValue(FilterProperty, value); } + } + public static readonly DependencyProperty FilterProperty = + DependencyProperty.Register("Filter", typeof(String), typeof(ExplorerControl), new PropertyMetadata(null)); + + public bool EnableFileSelection + { + get { return (bool)GetValue(EnableFileSelectionProperty); } + set { SetValue(EnableFileSelectionProperty, value); } + } + public static readonly DependencyProperty EnableFileSelectionProperty = + DependencyProperty.Register("EnableFileSelection", typeof(bool), typeof(ExplorerControl), new PropertyMetadata(true)); + + static ExplorerControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(ExplorerControl), new FrameworkPropertyMetadata(typeof(ExplorerControl))); @@ -83,7 +100,7 @@ namespace Tango.Explorer } else if (Directory.Exists(CurrentPath)) { - CurrentFolder = ExplorerFolderItem.LoadFromPath(CurrentPath); + CurrentFolder = ExplorerFolderItem.LoadFromPath(CurrentPath, Filter); } _changing_current_path = false; @@ -107,11 +124,11 @@ namespace Tango.Explorer if (SelectedItem is ExplorerFolderItem) { var folder = SelectedItem as ExplorerFolderItem; - folder = ExplorerFolderItem.LoadFromPath(folder.Path); + folder = ExplorerFolderItem.LoadFromPath(folder.Path, Filter); CurrentFolder = folder; SelectedItem = null; } - else if (SelectedItem is ExplorerFileItem) + else if (SelectedItem is ExplorerFileItem && EnableFileSelection) { FileSelectedCommand?.Execute(SelectedItem); } @@ -126,7 +143,7 @@ namespace Tango.Explorer if (parentPath != null) { - CurrentFolder = ExplorerFolderItem.LoadFromPath(parentPath); + CurrentFolder = ExplorerFolderItem.LoadFromPath(parentPath, Filter); } } } diff --git a/Software/Visual_Studio/Tango.Explorer/ExplorerFileItem.cs b/Software/Visual_Studio/Tango.Explorer/ExplorerFileItem.cs index 6340ea848..046b7a740 100644 --- a/Software/Visual_Studio/Tango.Explorer/ExplorerFileItem.cs +++ b/Software/Visual_Studio/Tango.Explorer/ExplorerFileItem.cs @@ -23,5 +23,13 @@ namespace Tango.Explorer return fileItem; } + + /// <summary> + /// Gets the file extension. + /// </summary> + public String Extension + { + get { return System.IO.Path.GetExtension(Path).ToLower(); } + } } } diff --git a/Software/Visual_Studio/Tango.Explorer/ExplorerFolderItem.cs b/Software/Visual_Studio/Tango.Explorer/ExplorerFolderItem.cs index 48f870b20..dde105767 100644 --- a/Software/Visual_Studio/Tango.Explorer/ExplorerFolderItem.cs +++ b/Software/Visual_Studio/Tango.Explorer/ExplorerFolderItem.cs @@ -12,7 +12,7 @@ namespace Tango.Explorer { public class ExplorerFolderItem : ExplorerItem { - private static List<String> extensions = ExplorerFileDefinition.GetSupportedExtensions().Select(x => x.Replace(".","")).ToList(); + private static List<String> extensions = ExplorerFileDefinition.GetSupportedExtensions().Select(x => x.Replace(".", "")).ToList(); public List<ExplorerItem> Items { get; set; } @@ -21,7 +21,7 @@ namespace Tango.Explorer Items = new List<ExplorerItem>(); } - public static ExplorerFolderItem LoadFromPath(String path) + public static ExplorerFolderItem LoadFromPath(String path, String filter) { ExplorerFolderItem folderItem = new ExplorerFolderItem(); @@ -38,9 +38,12 @@ namespace Tango.Explorer folderItem.Items.Add(fItem); } - foreach (var file in Directory.GetFiles(path,"*.*").Where(f => extensions.Contains(f.Split('.').Last().ToLower())).ToArray()) + foreach (var file in Directory.GetFiles(path, "*.*").Where(f => extensions.Contains(f.Split('.').Last().ToLower())).ToArray()) { - folderItem.Items.Add(ExplorerFileItem.LoadFromPath(file)); + if (filter == null || filter.ToLower().Replace("*", "").Replace(";", "").Split('|').Contains(System.IO.Path.GetExtension(file).ToLower())) + { + folderItem.Items.Add(ExplorerFileItem.LoadFromPath(file)); + } } return folderItem; diff --git a/Software/Visual_Studio/Tango.PMR/Common/ErrorCode.cs b/Software/Visual_Studio/Tango.PMR/Common/ErrorCode.cs index eb58a8672..abf50dc08 100644 --- a/Software/Visual_Studio/Tango.PMR/Common/ErrorCode.cs +++ b/Software/Visual_Studio/Tango.PMR/Common/ErrorCode.cs @@ -22,19 +22,35 @@ namespace Tango.PMR.Common { static ErrorCodeReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "Cg9FcnJvckNvZGUucHJvdG8SEFRhbmdvLlBNUi5Db21tb24q7QMKCUVycm9y", + "Cg9FcnJvckNvZGUucHJvdG8SEFRhbmdvLlBNUi5Db21tb24qqgkKCUVycm9y", "Q29kZRIICgROT05FEAASEQoNR0VORVJBTF9FUlJPUhABEgsKB0JBRF9DUkMQ", "AhIeChpJTlZBTElEX0RJR0lUQUxfUElOX05VTUJFUhADEhsKF1VOQVVUSE9S", "SVpFRF9DT05ORUNUSU9OEAQSHwobQ09OVElOVU9VU19SRVNQT05TRV9BQk9S", "VEVEEAUSDgoKSk9CX0ZBSUxFRBAGEhUKEUlOVkFMSURfUEFSQU1FVEVSEAcS", "FgoRSU5WQUxJRF9VUExPQURfSUQQ6AcSEwoORklMRV9OT1RfRk9VTkQQ6QcS", "FwoSSU5WQUxJRF9QUk9DRVNTX0lEEOoHEh0KGEZJTEVfTEVOR1RIX09VVF9P", - "Rl9SQU5HRRDrBxIaChVKT0JfVU5TUEVDSUZJRURfRVJST1IQ0A8SFQoQSk9C", - "X1RIUkVBRF9CUkVBSxDRDxIbChZKT0JfV0lOREVSX0RBTkNFUl9GQUlMENIP", - "EhsKFkpPQl9QT09MRVJfREFOQ0VSX0ZBSUwQ0w8SGwoWSk9CX0ZFRURFUl9E", - "QU5DRVJfRkFJTBDUDxITCg5KT0JfT1VUX09GX0RZRRDVDxIUCg9KT0JfT1RI", - "RVJfQUxBUk0Q1g8SFwoSTk9fSk9CX0lOX1BST0dSRVNTENcPQhwKGmNvbS50", - "d2luZS50YW5nby5wbXIuY29tbW9uYgZwcm90bzM=")); + "Rl9SQU5HRRDrBxIaChVGSUxFX1JFUVVFU1RfRElTS19FUlIQ7AcSGQoURklM", + "RV9SRVFVRVNUX0lOVF9FUlIQ7QcSGwoWRklMRV9SRVFVRVNUX05PVF9SRUFE", + "WRDuBxIZChRGSUxFX1JFUVVFU1RfTk9fRklMRRDvBxIZChRGSUxFX1JFUVVF", + "U1RfTk9fUEFUSBDwBxIeChlGSUxFX1JFUVVFU1RfSU5WQUxJRF9OQU1FEPEH", + "EhgKE0ZJTEVfUkVRVUVTVF9ERU5JRUQQ8gcSFwoSRklMRV9SRVFVRVNUX0VY", + "SVNUEPMHEiAKG0ZJTEVfUkVRVUVTVF9JTlZBTElEX09CSkVDVBD0BxIhChxG", + "SUxFX1JFUVVFU1RfV1JJVEVfUFJPVEVDVEVEEPUHEh8KGkZJTEVfUkVRVUVT", + "VF9JTlZBTElEX0RSSVZFEPYHEh0KGEZJTEVfUkVRVUVTVF9OT1RfRU5BQkxF", + "RBD3BxIfChpGSUxFX1JFUVVFU1RfTk9fRklMRVNZU1RFTRD4BxIeChlGSUxF", + "X1JFUVVFU1RfTUtGU19BQk9SVEVEEPkHEhkKFEZJTEVfUkVRVUVTVF9USU1F", + "T1VUEPoHEhgKE0ZJTEVfUkVRVUVTVF9MT0NLRUQQ+wcSIQocRklMRV9SRVFV", + "RVNUX05PVF9FTk9VR0hfQ09SRRD8BxIlCiBGSUxFX1JFUVVFU1RfVE9PX01B", + "TllfT1BFTl9GSUxFUxD9BxIjCh5GSUxFX1JFUVVFU1RfSU5WQUxJRF9QQVJB", + "TUVURVIQ/gcSGgoVSk9CX1VOU1BFQ0lGSUVEX0VSUk9SENAPEhUKEEpPQl9U", + "SFJFQURfQlJFQUsQ0Q8SGwoWSk9CX1dJTkRFUl9EQU5DRVJfRkFJTBDSDxIb", + "ChZKT0JfUE9PTEVSX0RBTkNFUl9GQUlMENMPEhsKFkpPQl9GRUVERVJfREFO", + "Q0VSX0ZBSUwQ1A8SEwoOSk9CX09VVF9PRl9EWUUQ1Q8SFAoPSk9CX09USEVS", + "X0FMQVJNENYPEhcKEk5PX0pPQl9JTl9QUk9HUkVTUxDXDxIaChVKT0JfVEVN", + "UEVSQVRVUkVfQUxBUk0Q2A8SEQoMSk9CX0xTX0FMQVJNENkPEhcKEkpPQl9Q", + "UkVTU1VSRV9BTEFSTRDaDxIWChFKT0JfQ1VSUkVOVF9BTEFSTRDbDxIUCg9K", + "T0JfTU9UT1JfQUxBUk0Q3A9CHAoaY29tLnR3aW5lLnRhbmdvLnBtci5jb21t", + "b25iBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.ErrorCode), }, null)); @@ -80,6 +96,25 @@ namespace Tango.PMR.Common { ///Returned by FileChunkUploadResponse when the uploaded file size exceeds the expected Length from FileUploadRequest. /// </summary> [pbr::OriginalName("FILE_LENGTH_OUT_OF_RANGE")] FileLengthOutOfRange = 1003, + [pbr::OriginalName("FILE_REQUEST_DISK_ERR")] FileRequestDiskErr = 1004, + [pbr::OriginalName("FILE_REQUEST_INT_ERR")] FileRequestIntErr = 1005, + [pbr::OriginalName("FILE_REQUEST_NOT_READY")] FileRequestNotReady = 1006, + [pbr::OriginalName("FILE_REQUEST_NO_FILE")] FileRequestNoFile = 1007, + [pbr::OriginalName("FILE_REQUEST_NO_PATH")] FileRequestNoPath = 1008, + [pbr::OriginalName("FILE_REQUEST_INVALID_NAME")] FileRequestInvalidName = 1009, + [pbr::OriginalName("FILE_REQUEST_DENIED")] FileRequestDenied = 1010, + [pbr::OriginalName("FILE_REQUEST_EXIST")] FileRequestExist = 1011, + [pbr::OriginalName("FILE_REQUEST_INVALID_OBJECT")] FileRequestInvalidObject = 1012, + [pbr::OriginalName("FILE_REQUEST_WRITE_PROTECTED")] FileRequestWriteProtected = 1013, + [pbr::OriginalName("FILE_REQUEST_INVALID_DRIVE")] FileRequestInvalidDrive = 1014, + [pbr::OriginalName("FILE_REQUEST_NOT_ENABLED")] FileRequestNotEnabled = 1015, + [pbr::OriginalName("FILE_REQUEST_NO_FILESYSTEM")] FileRequestNoFilesystem = 1016, + [pbr::OriginalName("FILE_REQUEST_MKFS_ABORTED")] FileRequestMkfsAborted = 1017, + [pbr::OriginalName("FILE_REQUEST_TIMEOUT")] FileRequestTimeout = 1018, + [pbr::OriginalName("FILE_REQUEST_LOCKED")] FileRequestLocked = 1019, + [pbr::OriginalName("FILE_REQUEST_NOT_ENOUGH_CORE")] FileRequestNotEnoughCore = 1020, + [pbr::OriginalName("FILE_REQUEST_TOO_MANY_OPEN_FILES")] FileRequestTooManyOpenFiles = 1021, + [pbr::OriginalName("FILE_REQUEST_INVALID_PARAMETER")] FileRequestInvalidParameter = 1022, /// <summary> ///Job Failure /// </summary> @@ -94,6 +129,11 @@ namespace Tango.PMR.Common { ///Occurs when ResumeCurrentJobRequest was called but no job is in progress. /// </summary> [pbr::OriginalName("NO_JOB_IN_PROGRESS")] NoJobInProgress = 2007, + [pbr::OriginalName("JOB_TEMPERATURE_ALARM")] JobTemperatureAlarm = 2008, + [pbr::OriginalName("JOB_LS_ALARM")] JobLsAlarm = 2009, + [pbr::OriginalName("JOB_PRESSURE_ALARM")] JobPressureAlarm = 2010, + [pbr::OriginalName("JOB_CURRENT_ALARM")] JobCurrentAlarm = 2011, + [pbr::OriginalName("JOB_MOTOR_ALARM")] JobMotorAlarm = 2012, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Exports/JobFile.cs b/Software/Visual_Studio/Tango.PMR/Exports/JobFile.cs new file mode 100644 index 000000000..00d398e30 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Exports/JobFile.cs @@ -0,0 +1,723 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: JobFile.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.Exports { + + /// <summary>Holder for reflection information generated from JobFile.proto</summary> + public static partial class JobFileReflection { + + #region Descriptor + /// <summary>File descriptor for JobFile.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static JobFileReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cg1Kb2JGaWxlLnByb3RvEhFUYW5nby5QTVIuRXhwb3J0cxoUSm9iRmlsZVNl", + "Z21lbnQucHJvdG8ioQQKB0pvYkZpbGUSDAoETmFtZRgBIAEoCRITCgtEZXNj", + "cmlwdGlvbhgCIAEoCRIaChJFbmFibGVJbnRlclNlZ21lbnQYAyABKAgSGgoS", + "SW50ZXJTZWdtZW50TGVuZ3RoGAQgASgBEg8KB1JtbEd1aWQYBSABKAkSGQoR", + "V2luZGluZ01ldGhvZEd1aWQYBiABKAkSFQoNU3Bvb2xUeXBlR3VpZBgHIAEo", + "CRIZChFFbmFibGVMdWJyaWNhdGlvbhgIIAEoCBIZChFIYXNFbWJyb2lkZXJ5", + "RmlsZRgJIAEoCBIaChJFbWJyb2lkZXJ5RmlsZURhdGEYCiABKAwSGgoSRW1i", + "cm9pZGVyeUZpbGVOYW1lGAsgASgJEhYKDkVtYnJvaWRlcnlKcGVnGAwgASgM", + "EhYKDkNvbG9yU3BhY2VHdWlkGA0gASgJEhUKDU51bWJlck9mVW5pdHMYDiAB", + "KAUSDAoEVHlwZRgPIAEoBRIQCghDdXN0b21lchgQIAEoCRIaChJTcG9vbHNE", + "aXN0cmlidXRpb24YESABKAUSFQoNTnVtYmVyT2ZIZWFkcxgSIAEoBRIbChNT", + "YW1wbGVVbml0c09yTWV0ZXJzGBMgASgFEh4KFkxlbmd0aFBlcmNlbnRhZ2VG", + "YWN0b3IYFCABKAESMwoIU2VnbWVudHMYFSADKAsyIS5UYW5nby5QTVIuRXhw", + "b3J0cy5Kb2JGaWxlU2VnbWVudEIdChtjb20udHdpbmUudGFuZ28ucG1yLmV4", + "cG9ydHNiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Tango.PMR.Exports.JobFileSegmentReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Exports.JobFile), global::Tango.PMR.Exports.JobFile.Parser, new[]{ "Name", "Description", "EnableInterSegment", "InterSegmentLength", "RmlGuid", "WindingMethodGuid", "SpoolTypeGuid", "EnableLubrication", "HasEmbroideryFile", "EmbroideryFileData", "EmbroideryFileName", "EmbroideryJpeg", "ColorSpaceGuid", "NumberOfUnits", "Type", "Customer", "SpoolsDistribution", "NumberOfHeads", "SampleUnitsOrMeters", "LengthPercentageFactor", "Segments" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class JobFile : pb::IMessage<JobFile> { + private static readonly pb::MessageParser<JobFile> _parser = new pb::MessageParser<JobFile>(() => new JobFile()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser<JobFile> Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Exports.JobFileReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFile() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFile(JobFile other) : this() { + name_ = other.name_; + description_ = other.description_; + enableInterSegment_ = other.enableInterSegment_; + interSegmentLength_ = other.interSegmentLength_; + rmlGuid_ = other.rmlGuid_; + windingMethodGuid_ = other.windingMethodGuid_; + spoolTypeGuid_ = other.spoolTypeGuid_; + enableLubrication_ = other.enableLubrication_; + hasEmbroideryFile_ = other.hasEmbroideryFile_; + embroideryFileData_ = other.embroideryFileData_; + embroideryFileName_ = other.embroideryFileName_; + embroideryJpeg_ = other.embroideryJpeg_; + colorSpaceGuid_ = other.colorSpaceGuid_; + numberOfUnits_ = other.numberOfUnits_; + type_ = other.type_; + customer_ = other.customer_; + spoolsDistribution_ = other.spoolsDistribution_; + numberOfHeads_ = other.numberOfHeads_; + sampleUnitsOrMeters_ = other.sampleUnitsOrMeters_; + lengthPercentageFactor_ = other.lengthPercentageFactor_; + segments_ = other.segments_.Clone(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFile Clone() { + return new JobFile(this); + } + + /// <summary>Field number for the "Name" field.</summary> + public const int NameFieldNumber = 1; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "Description" field.</summary> + public const int DescriptionFieldNumber = 2; + private string description_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Description { + get { return description_; } + set { + description_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "EnableInterSegment" field.</summary> + public const int EnableInterSegmentFieldNumber = 3; + private bool enableInterSegment_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool EnableInterSegment { + get { return enableInterSegment_; } + set { + enableInterSegment_ = value; + } + } + + /// <summary>Field number for the "InterSegmentLength" field.</summary> + public const int InterSegmentLengthFieldNumber = 4; + private double interSegmentLength_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double InterSegmentLength { + get { return interSegmentLength_; } + set { + interSegmentLength_ = value; + } + } + + /// <summary>Field number for the "RmlGuid" field.</summary> + public const int RmlGuidFieldNumber = 5; + private string rmlGuid_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string RmlGuid { + get { return rmlGuid_; } + set { + rmlGuid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "WindingMethodGuid" field.</summary> + public const int WindingMethodGuidFieldNumber = 6; + private string windingMethodGuid_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string WindingMethodGuid { + get { return windingMethodGuid_; } + set { + windingMethodGuid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "SpoolTypeGuid" field.</summary> + public const int SpoolTypeGuidFieldNumber = 7; + private string spoolTypeGuid_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string SpoolTypeGuid { + get { return spoolTypeGuid_; } + set { + spoolTypeGuid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "EnableLubrication" field.</summary> + public const int EnableLubricationFieldNumber = 8; + private bool enableLubrication_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool EnableLubrication { + get { return enableLubrication_; } + set { + enableLubrication_ = value; + } + } + + /// <summary>Field number for the "HasEmbroideryFile" field.</summary> + public const int HasEmbroideryFileFieldNumber = 9; + private bool hasEmbroideryFile_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool HasEmbroideryFile { + get { return hasEmbroideryFile_; } + set { + hasEmbroideryFile_ = value; + } + } + + /// <summary>Field number for the "EmbroideryFileData" field.</summary> + public const int EmbroideryFileDataFieldNumber = 10; + private pb::ByteString embroideryFileData_ = pb::ByteString.Empty; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pb::ByteString EmbroideryFileData { + get { return embroideryFileData_; } + set { + embroideryFileData_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "EmbroideryFileName" field.</summary> + public const int EmbroideryFileNameFieldNumber = 11; + private string embroideryFileName_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string EmbroideryFileName { + get { return embroideryFileName_; } + set { + embroideryFileName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "EmbroideryJpeg" field.</summary> + public const int EmbroideryJpegFieldNumber = 12; + private pb::ByteString embroideryJpeg_ = pb::ByteString.Empty; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pb::ByteString EmbroideryJpeg { + get { return embroideryJpeg_; } + set { + embroideryJpeg_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "ColorSpaceGuid" field.</summary> + public const int ColorSpaceGuidFieldNumber = 13; + private string colorSpaceGuid_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ColorSpaceGuid { + get { return colorSpaceGuid_; } + set { + colorSpaceGuid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "NumberOfUnits" field.</summary> + public const int NumberOfUnitsFieldNumber = 14; + private int numberOfUnits_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int NumberOfUnits { + get { return numberOfUnits_; } + set { + numberOfUnits_ = value; + } + } + + /// <summary>Field number for the "Type" field.</summary> + public const int TypeFieldNumber = 15; + private int type_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int Type { + get { return type_; } + set { + type_ = value; + } + } + + /// <summary>Field number for the "Customer" field.</summary> + public const int CustomerFieldNumber = 16; + private string customer_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Customer { + get { return customer_; } + set { + customer_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "SpoolsDistribution" field.</summary> + public const int SpoolsDistributionFieldNumber = 17; + private int spoolsDistribution_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int SpoolsDistribution { + get { return spoolsDistribution_; } + set { + spoolsDistribution_ = value; + } + } + + /// <summary>Field number for the "NumberOfHeads" field.</summary> + public const int NumberOfHeadsFieldNumber = 18; + private int numberOfHeads_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int NumberOfHeads { + get { return numberOfHeads_; } + set { + numberOfHeads_ = value; + } + } + + /// <summary>Field number for the "SampleUnitsOrMeters" field.</summary> + public const int SampleUnitsOrMetersFieldNumber = 19; + private int sampleUnitsOrMeters_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int SampleUnitsOrMeters { + get { return sampleUnitsOrMeters_; } + set { + sampleUnitsOrMeters_ = value; + } + } + + /// <summary>Field number for the "LengthPercentageFactor" field.</summary> + public const int LengthPercentageFactorFieldNumber = 20; + private double lengthPercentageFactor_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double LengthPercentageFactor { + get { return lengthPercentageFactor_; } + set { + lengthPercentageFactor_ = value; + } + } + + /// <summary>Field number for the "Segments" field.</summary> + public const int SegmentsFieldNumber = 21; + private static readonly pb::FieldCodec<global::Tango.PMR.Exports.JobFileSegment> _repeated_segments_codec + = pb::FieldCodec.ForMessage(170, global::Tango.PMR.Exports.JobFileSegment.Parser); + private readonly pbc::RepeatedField<global::Tango.PMR.Exports.JobFileSegment> segments_ = new pbc::RepeatedField<global::Tango.PMR.Exports.JobFileSegment>(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<global::Tango.PMR.Exports.JobFileSegment> Segments { + get { return segments_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as JobFile); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(JobFile other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if (Description != other.Description) return false; + if (EnableInterSegment != other.EnableInterSegment) return false; + if (InterSegmentLength != other.InterSegmentLength) return false; + if (RmlGuid != other.RmlGuid) return false; + if (WindingMethodGuid != other.WindingMethodGuid) return false; + if (SpoolTypeGuid != other.SpoolTypeGuid) return false; + if (EnableLubrication != other.EnableLubrication) return false; + if (HasEmbroideryFile != other.HasEmbroideryFile) return false; + if (EmbroideryFileData != other.EmbroideryFileData) return false; + if (EmbroideryFileName != other.EmbroideryFileName) return false; + if (EmbroideryJpeg != other.EmbroideryJpeg) return false; + if (ColorSpaceGuid != other.ColorSpaceGuid) return false; + if (NumberOfUnits != other.NumberOfUnits) return false; + if (Type != other.Type) return false; + if (Customer != other.Customer) return false; + if (SpoolsDistribution != other.SpoolsDistribution) return false; + if (NumberOfHeads != other.NumberOfHeads) return false; + if (SampleUnitsOrMeters != other.SampleUnitsOrMeters) return false; + if (LengthPercentageFactor != other.LengthPercentageFactor) return false; + if(!segments_.Equals(other.segments_)) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (Description.Length != 0) hash ^= Description.GetHashCode(); + if (EnableInterSegment != false) hash ^= EnableInterSegment.GetHashCode(); + if (InterSegmentLength != 0D) hash ^= InterSegmentLength.GetHashCode(); + if (RmlGuid.Length != 0) hash ^= RmlGuid.GetHashCode(); + if (WindingMethodGuid.Length != 0) hash ^= WindingMethodGuid.GetHashCode(); + if (SpoolTypeGuid.Length != 0) hash ^= SpoolTypeGuid.GetHashCode(); + if (EnableLubrication != false) hash ^= EnableLubrication.GetHashCode(); + if (HasEmbroideryFile != false) hash ^= HasEmbroideryFile.GetHashCode(); + if (EmbroideryFileData.Length != 0) hash ^= EmbroideryFileData.GetHashCode(); + if (EmbroideryFileName.Length != 0) hash ^= EmbroideryFileName.GetHashCode(); + if (EmbroideryJpeg.Length != 0) hash ^= EmbroideryJpeg.GetHashCode(); + if (ColorSpaceGuid.Length != 0) hash ^= ColorSpaceGuid.GetHashCode(); + if (NumberOfUnits != 0) hash ^= NumberOfUnits.GetHashCode(); + if (Type != 0) hash ^= Type.GetHashCode(); + if (Customer.Length != 0) hash ^= Customer.GetHashCode(); + if (SpoolsDistribution != 0) hash ^= SpoolsDistribution.GetHashCode(); + if (NumberOfHeads != 0) hash ^= NumberOfHeads.GetHashCode(); + if (SampleUnitsOrMeters != 0) hash ^= SampleUnitsOrMeters.GetHashCode(); + if (LengthPercentageFactor != 0D) hash ^= LengthPercentageFactor.GetHashCode(); + hash ^= segments_.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 (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (Description.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Description); + } + if (EnableInterSegment != false) { + output.WriteRawTag(24); + output.WriteBool(EnableInterSegment); + } + if (InterSegmentLength != 0D) { + output.WriteRawTag(33); + output.WriteDouble(InterSegmentLength); + } + if (RmlGuid.Length != 0) { + output.WriteRawTag(42); + output.WriteString(RmlGuid); + } + if (WindingMethodGuid.Length != 0) { + output.WriteRawTag(50); + output.WriteString(WindingMethodGuid); + } + if (SpoolTypeGuid.Length != 0) { + output.WriteRawTag(58); + output.WriteString(SpoolTypeGuid); + } + if (EnableLubrication != false) { + output.WriteRawTag(64); + output.WriteBool(EnableLubrication); + } + if (HasEmbroideryFile != false) { + output.WriteRawTag(72); + output.WriteBool(HasEmbroideryFile); + } + if (EmbroideryFileData.Length != 0) { + output.WriteRawTag(82); + output.WriteBytes(EmbroideryFileData); + } + if (EmbroideryFileName.Length != 0) { + output.WriteRawTag(90); + output.WriteString(EmbroideryFileName); + } + if (EmbroideryJpeg.Length != 0) { + output.WriteRawTag(98); + output.WriteBytes(EmbroideryJpeg); + } + if (ColorSpaceGuid.Length != 0) { + output.WriteRawTag(106); + output.WriteString(ColorSpaceGuid); + } + if (NumberOfUnits != 0) { + output.WriteRawTag(112); + output.WriteInt32(NumberOfUnits); + } + if (Type != 0) { + output.WriteRawTag(120); + output.WriteInt32(Type); + } + if (Customer.Length != 0) { + output.WriteRawTag(130, 1); + output.WriteString(Customer); + } + if (SpoolsDistribution != 0) { + output.WriteRawTag(136, 1); + output.WriteInt32(SpoolsDistribution); + } + if (NumberOfHeads != 0) { + output.WriteRawTag(144, 1); + output.WriteInt32(NumberOfHeads); + } + if (SampleUnitsOrMeters != 0) { + output.WriteRawTag(152, 1); + output.WriteInt32(SampleUnitsOrMeters); + } + if (LengthPercentageFactor != 0D) { + output.WriteRawTag(161, 1); + output.WriteDouble(LengthPercentageFactor); + } + segments_.WriteTo(output, _repeated_segments_codec); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (Description.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Description); + } + if (EnableInterSegment != false) { + size += 1 + 1; + } + if (InterSegmentLength != 0D) { + size += 1 + 8; + } + if (RmlGuid.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RmlGuid); + } + if (WindingMethodGuid.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(WindingMethodGuid); + } + if (SpoolTypeGuid.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SpoolTypeGuid); + } + if (EnableLubrication != false) { + size += 1 + 1; + } + if (HasEmbroideryFile != false) { + size += 1 + 1; + } + if (EmbroideryFileData.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(EmbroideryFileData); + } + if (EmbroideryFileName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(EmbroideryFileName); + } + if (EmbroideryJpeg.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(EmbroideryJpeg); + } + if (ColorSpaceGuid.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ColorSpaceGuid); + } + if (NumberOfUnits != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(NumberOfUnits); + } + if (Type != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type); + } + if (Customer.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(Customer); + } + if (SpoolsDistribution != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(SpoolsDistribution); + } + if (NumberOfHeads != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumberOfHeads); + } + if (SampleUnitsOrMeters != 0) { + size += 2 + pb::CodedOutputStream.ComputeInt32Size(SampleUnitsOrMeters); + } + if (LengthPercentageFactor != 0D) { + size += 2 + 8; + } + size += segments_.CalculateSize(_repeated_segments_codec); + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(JobFile other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + if (other.Description.Length != 0) { + Description = other.Description; + } + if (other.EnableInterSegment != false) { + EnableInterSegment = other.EnableInterSegment; + } + if (other.InterSegmentLength != 0D) { + InterSegmentLength = other.InterSegmentLength; + } + if (other.RmlGuid.Length != 0) { + RmlGuid = other.RmlGuid; + } + if (other.WindingMethodGuid.Length != 0) { + WindingMethodGuid = other.WindingMethodGuid; + } + if (other.SpoolTypeGuid.Length != 0) { + SpoolTypeGuid = other.SpoolTypeGuid; + } + if (other.EnableLubrication != false) { + EnableLubrication = other.EnableLubrication; + } + if (other.HasEmbroideryFile != false) { + HasEmbroideryFile = other.HasEmbroideryFile; + } + if (other.EmbroideryFileData.Length != 0) { + EmbroideryFileData = other.EmbroideryFileData; + } + if (other.EmbroideryFileName.Length != 0) { + EmbroideryFileName = other.EmbroideryFileName; + } + if (other.EmbroideryJpeg.Length != 0) { + EmbroideryJpeg = other.EmbroideryJpeg; + } + if (other.ColorSpaceGuid.Length != 0) { + ColorSpaceGuid = other.ColorSpaceGuid; + } + if (other.NumberOfUnits != 0) { + NumberOfUnits = other.NumberOfUnits; + } + if (other.Type != 0) { + Type = other.Type; + } + if (other.Customer.Length != 0) { + Customer = other.Customer; + } + if (other.SpoolsDistribution != 0) { + SpoolsDistribution = other.SpoolsDistribution; + } + if (other.NumberOfHeads != 0) { + NumberOfHeads = other.NumberOfHeads; + } + if (other.SampleUnitsOrMeters != 0) { + SampleUnitsOrMeters = other.SampleUnitsOrMeters; + } + if (other.LengthPercentageFactor != 0D) { + LengthPercentageFactor = other.LengthPercentageFactor; + } + segments_.Add(other.segments_); + } + + [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: { + Name = input.ReadString(); + break; + } + case 18: { + Description = input.ReadString(); + break; + } + case 24: { + EnableInterSegment = input.ReadBool(); + break; + } + case 33: { + InterSegmentLength = input.ReadDouble(); + break; + } + case 42: { + RmlGuid = input.ReadString(); + break; + } + case 50: { + WindingMethodGuid = input.ReadString(); + break; + } + case 58: { + SpoolTypeGuid = input.ReadString(); + break; + } + case 64: { + EnableLubrication = input.ReadBool(); + break; + } + case 72: { + HasEmbroideryFile = input.ReadBool(); + break; + } + case 82: { + EmbroideryFileData = input.ReadBytes(); + break; + } + case 90: { + EmbroideryFileName = input.ReadString(); + break; + } + case 98: { + EmbroideryJpeg = input.ReadBytes(); + break; + } + case 106: { + ColorSpaceGuid = input.ReadString(); + break; + } + case 112: { + NumberOfUnits = input.ReadInt32(); + break; + } + case 120: { + Type = input.ReadInt32(); + break; + } + case 130: { + Customer = input.ReadString(); + break; + } + case 136: { + SpoolsDistribution = input.ReadInt32(); + break; + } + case 144: { + NumberOfHeads = input.ReadInt32(); + break; + } + case 152: { + SampleUnitsOrMeters = input.ReadInt32(); + break; + } + case 161: { + LengthPercentageFactor = input.ReadDouble(); + break; + } + case 170: { + segments_.AddEntriesFrom(input, _repeated_segments_codec); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Exports/JobFileBrushStop.cs b/Software/Visual_Studio/Tango.PMR/Exports/JobFileBrushStop.cs new file mode 100644 index 000000000..5fa9a2eab --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Exports/JobFileBrushStop.cs @@ -0,0 +1,754 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: JobFileBrushStop.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.Exports { + + /// <summary>Holder for reflection information generated from JobFileBrushStop.proto</summary> + public static partial class JobFileBrushStopReflection { + + #region Descriptor + /// <summary>File descriptor for JobFileBrushStop.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static JobFileBrushStopReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChZKb2JGaWxlQnJ1c2hTdG9wLnByb3RvEhFUYW5nby5QTVIuRXhwb3J0cyLX", + "AgoQSm9iRmlsZUJydXNoU3RvcBIWCg5Db2xvclNwYWNlR3VpZBgBIAEoCRIV", + "Cg1PZmZzZXRQZXJjZW50GAIgASgBEgwKBEN5YW4YAyABKAESDwoHTWFnZW50", + "YRgEIAEoARIOCgZZZWxsb3cYBSABKAESDQoFQmxhY2sYBiABKAESCwoDUmVk", + "GAcgASgFEg0KBUdyZWVuGAggASgFEgwKBEJsdWUYCSABKAUSCQoBTBgKIAEo", + "ARIJCgFBGAsgASgBEgkKAUIYDCABKAESCgoCVjAYDSABKAESCgoCVjEYDiAB", + "KAESCgoCVjIYDyABKAESCgoCVjMYECABKAESCgoCVjQYESABKAESCgoCVjUY", + "EiABKAESCgoCVjYYEyABKAESCgoCVjcYFCABKAESEQoJQ29ycmVjdGVkGBUg", + "ASgIEhgKEENvbG9yQ2F0YWxvZ0d1aWQYFiABKAlCHQobY29tLnR3aW5lLnRh", + "bmdvLnBtci5leHBvcnRzYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Exports.JobFileBrushStop), global::Tango.PMR.Exports.JobFileBrushStop.Parser, new[]{ "ColorSpaceGuid", "OffsetPercent", "Cyan", "Magenta", "Yellow", "Black", "Red", "Green", "Blue", "L", "A", "B", "V0", "V1", "V2", "V3", "V4", "V5", "V6", "V7", "Corrected", "ColorCatalogGuid" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class JobFileBrushStop : pb::IMessage<JobFileBrushStop> { + private static readonly pb::MessageParser<JobFileBrushStop> _parser = new pb::MessageParser<JobFileBrushStop>(() => new JobFileBrushStop()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser<JobFileBrushStop> Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Exports.JobFileBrushStopReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFileBrushStop() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFileBrushStop(JobFileBrushStop other) : this() { + colorSpaceGuid_ = other.colorSpaceGuid_; + offsetPercent_ = other.offsetPercent_; + cyan_ = other.cyan_; + magenta_ = other.magenta_; + yellow_ = other.yellow_; + black_ = other.black_; + red_ = other.red_; + green_ = other.green_; + blue_ = other.blue_; + l_ = other.l_; + a_ = other.a_; + b_ = other.b_; + v0_ = other.v0_; + v1_ = other.v1_; + v2_ = other.v2_; + v3_ = other.v3_; + v4_ = other.v4_; + v5_ = other.v5_; + v6_ = other.v6_; + v7_ = other.v7_; + corrected_ = other.corrected_; + colorCatalogGuid_ = other.colorCatalogGuid_; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFileBrushStop Clone() { + return new JobFileBrushStop(this); + } + + /// <summary>Field number for the "ColorSpaceGuid" field.</summary> + public const int ColorSpaceGuidFieldNumber = 1; + private string colorSpaceGuid_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ColorSpaceGuid { + get { return colorSpaceGuid_; } + set { + colorSpaceGuid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "OffsetPercent" field.</summary> + public const int OffsetPercentFieldNumber = 2; + private double offsetPercent_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double OffsetPercent { + get { return offsetPercent_; } + set { + offsetPercent_ = value; + } + } + + /// <summary>Field number for the "Cyan" field.</summary> + public const int CyanFieldNumber = 3; + private double cyan_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double Cyan { + get { return cyan_; } + set { + cyan_ = value; + } + } + + /// <summary>Field number for the "Magenta" field.</summary> + public const int MagentaFieldNumber = 4; + private double magenta_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double Magenta { + get { return magenta_; } + set { + magenta_ = value; + } + } + + /// <summary>Field number for the "Yellow" field.</summary> + public const int YellowFieldNumber = 5; + private double yellow_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double Yellow { + get { return yellow_; } + set { + yellow_ = value; + } + } + + /// <summary>Field number for the "Black" field.</summary> + public const int BlackFieldNumber = 6; + private double black_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double Black { + get { return black_; } + set { + black_ = value; + } + } + + /// <summary>Field number for the "Red" field.</summary> + public const int RedFieldNumber = 7; + private int red_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int Red { + get { return red_; } + set { + red_ = value; + } + } + + /// <summary>Field number for the "Green" field.</summary> + public const int GreenFieldNumber = 8; + private int green_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int Green { + get { return green_; } + set { + green_ = value; + } + } + + /// <summary>Field number for the "Blue" field.</summary> + public const int BlueFieldNumber = 9; + private int blue_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int Blue { + get { return blue_; } + set { + blue_ = value; + } + } + + /// <summary>Field number for the "L" field.</summary> + public const int LFieldNumber = 10; + private double l_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double L { + get { return l_; } + set { + l_ = value; + } + } + + /// <summary>Field number for the "A" field.</summary> + public const int AFieldNumber = 11; + private double a_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double A { + get { return a_; } + set { + a_ = value; + } + } + + /// <summary>Field number for the "B" field.</summary> + public const int BFieldNumber = 12; + private double b_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double B { + get { return b_; } + set { + b_ = value; + } + } + + /// <summary>Field number for the "V0" field.</summary> + public const int V0FieldNumber = 13; + private double v0_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V0 { + get { return v0_; } + set { + v0_ = value; + } + } + + /// <summary>Field number for the "V1" field.</summary> + public const int V1FieldNumber = 14; + private double v1_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V1 { + get { return v1_; } + set { + v1_ = value; + } + } + + /// <summary>Field number for the "V2" field.</summary> + public const int V2FieldNumber = 15; + private double v2_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V2 { + get { return v2_; } + set { + v2_ = value; + } + } + + /// <summary>Field number for the "V3" field.</summary> + public const int V3FieldNumber = 16; + private double v3_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V3 { + get { return v3_; } + set { + v3_ = value; + } + } + + /// <summary>Field number for the "V4" field.</summary> + public const int V4FieldNumber = 17; + private double v4_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V4 { + get { return v4_; } + set { + v4_ = value; + } + } + + /// <summary>Field number for the "V5" field.</summary> + public const int V5FieldNumber = 18; + private double v5_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V5 { + get { return v5_; } + set { + v5_ = value; + } + } + + /// <summary>Field number for the "V6" field.</summary> + public const int V6FieldNumber = 19; + private double v6_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V6 { + get { return v6_; } + set { + v6_ = value; + } + } + + /// <summary>Field number for the "V7" field.</summary> + public const int V7FieldNumber = 20; + private double v7_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double V7 { + get { return v7_; } + set { + v7_ = value; + } + } + + /// <summary>Field number for the "Corrected" field.</summary> + public const int CorrectedFieldNumber = 21; + private bool corrected_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Corrected { + get { return corrected_; } + set { + corrected_ = value; + } + } + + /// <summary>Field number for the "ColorCatalogGuid" field.</summary> + public const int ColorCatalogGuidFieldNumber = 22; + private string colorCatalogGuid_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ColorCatalogGuid { + get { return colorCatalogGuid_; } + set { + colorCatalogGuid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as JobFileBrushStop); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(JobFileBrushStop other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ColorSpaceGuid != other.ColorSpaceGuid) return false; + if (OffsetPercent != other.OffsetPercent) return false; + if (Cyan != other.Cyan) return false; + if (Magenta != other.Magenta) return false; + if (Yellow != other.Yellow) return false; + if (Black != other.Black) return false; + if (Red != other.Red) return false; + if (Green != other.Green) return false; + if (Blue != other.Blue) return false; + if (L != other.L) return false; + if (A != other.A) return false; + if (B != other.B) return false; + if (V0 != other.V0) return false; + if (V1 != other.V1) return false; + if (V2 != other.V2) return false; + if (V3 != other.V3) return false; + if (V4 != other.V4) return false; + if (V5 != other.V5) return false; + if (V6 != other.V6) return false; + if (V7 != other.V7) return false; + if (Corrected != other.Corrected) return false; + if (ColorCatalogGuid != other.ColorCatalogGuid) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (ColorSpaceGuid.Length != 0) hash ^= ColorSpaceGuid.GetHashCode(); + if (OffsetPercent != 0D) hash ^= OffsetPercent.GetHashCode(); + if (Cyan != 0D) hash ^= Cyan.GetHashCode(); + if (Magenta != 0D) hash ^= Magenta.GetHashCode(); + if (Yellow != 0D) hash ^= Yellow.GetHashCode(); + if (Black != 0D) hash ^= Black.GetHashCode(); + if (Red != 0) hash ^= Red.GetHashCode(); + if (Green != 0) hash ^= Green.GetHashCode(); + if (Blue != 0) hash ^= Blue.GetHashCode(); + if (L != 0D) hash ^= L.GetHashCode(); + if (A != 0D) hash ^= A.GetHashCode(); + if (B != 0D) hash ^= B.GetHashCode(); + if (V0 != 0D) hash ^= V0.GetHashCode(); + if (V1 != 0D) hash ^= V1.GetHashCode(); + if (V2 != 0D) hash ^= V2.GetHashCode(); + if (V3 != 0D) hash ^= V3.GetHashCode(); + if (V4 != 0D) hash ^= V4.GetHashCode(); + if (V5 != 0D) hash ^= V5.GetHashCode(); + if (V6 != 0D) hash ^= V6.GetHashCode(); + if (V7 != 0D) hash ^= V7.GetHashCode(); + if (Corrected != false) hash ^= Corrected.GetHashCode(); + if (ColorCatalogGuid.Length != 0) hash ^= ColorCatalogGuid.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 (ColorSpaceGuid.Length != 0) { + output.WriteRawTag(10); + output.WriteString(ColorSpaceGuid); + } + if (OffsetPercent != 0D) { + output.WriteRawTag(17); + output.WriteDouble(OffsetPercent); + } + if (Cyan != 0D) { + output.WriteRawTag(25); + output.WriteDouble(Cyan); + } + if (Magenta != 0D) { + output.WriteRawTag(33); + output.WriteDouble(Magenta); + } + if (Yellow != 0D) { + output.WriteRawTag(41); + output.WriteDouble(Yellow); + } + if (Black != 0D) { + output.WriteRawTag(49); + output.WriteDouble(Black); + } + if (Red != 0) { + output.WriteRawTag(56); + output.WriteInt32(Red); + } + if (Green != 0) { + output.WriteRawTag(64); + output.WriteInt32(Green); + } + if (Blue != 0) { + output.WriteRawTag(72); + output.WriteInt32(Blue); + } + if (L != 0D) { + output.WriteRawTag(81); + output.WriteDouble(L); + } + if (A != 0D) { + output.WriteRawTag(89); + output.WriteDouble(A); + } + if (B != 0D) { + output.WriteRawTag(97); + output.WriteDouble(B); + } + if (V0 != 0D) { + output.WriteRawTag(105); + output.WriteDouble(V0); + } + if (V1 != 0D) { + output.WriteRawTag(113); + output.WriteDouble(V1); + } + if (V2 != 0D) { + output.WriteRawTag(121); + output.WriteDouble(V2); + } + if (V3 != 0D) { + output.WriteRawTag(129, 1); + output.WriteDouble(V3); + } + if (V4 != 0D) { + output.WriteRawTag(137, 1); + output.WriteDouble(V4); + } + if (V5 != 0D) { + output.WriteRawTag(145, 1); + output.WriteDouble(V5); + } + if (V6 != 0D) { + output.WriteRawTag(153, 1); + output.WriteDouble(V6); + } + if (V7 != 0D) { + output.WriteRawTag(161, 1); + output.WriteDouble(V7); + } + if (Corrected != false) { + output.WriteRawTag(168, 1); + output.WriteBool(Corrected); + } + if (ColorCatalogGuid.Length != 0) { + output.WriteRawTag(178, 1); + output.WriteString(ColorCatalogGuid); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (ColorSpaceGuid.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ColorSpaceGuid); + } + if (OffsetPercent != 0D) { + size += 1 + 8; + } + if (Cyan != 0D) { + size += 1 + 8; + } + if (Magenta != 0D) { + size += 1 + 8; + } + if (Yellow != 0D) { + size += 1 + 8; + } + if (Black != 0D) { + size += 1 + 8; + } + if (Red != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Red); + } + if (Green != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Green); + } + if (Blue != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Blue); + } + if (L != 0D) { + size += 1 + 8; + } + if (A != 0D) { + size += 1 + 8; + } + if (B != 0D) { + size += 1 + 8; + } + if (V0 != 0D) { + size += 1 + 8; + } + if (V1 != 0D) { + size += 1 + 8; + } + if (V2 != 0D) { + size += 1 + 8; + } + if (V3 != 0D) { + size += 2 + 8; + } + if (V4 != 0D) { + size += 2 + 8; + } + if (V5 != 0D) { + size += 2 + 8; + } + if (V6 != 0D) { + size += 2 + 8; + } + if (V7 != 0D) { + size += 2 + 8; + } + if (Corrected != false) { + size += 2 + 1; + } + if (ColorCatalogGuid.Length != 0) { + size += 2 + pb::CodedOutputStream.ComputeStringSize(ColorCatalogGuid); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(JobFileBrushStop other) { + if (other == null) { + return; + } + if (other.ColorSpaceGuid.Length != 0) { + ColorSpaceGuid = other.ColorSpaceGuid; + } + if (other.OffsetPercent != 0D) { + OffsetPercent = other.OffsetPercent; + } + if (other.Cyan != 0D) { + Cyan = other.Cyan; + } + if (other.Magenta != 0D) { + Magenta = other.Magenta; + } + if (other.Yellow != 0D) { + Yellow = other.Yellow; + } + if (other.Black != 0D) { + Black = other.Black; + } + if (other.Red != 0) { + Red = other.Red; + } + if (other.Green != 0) { + Green = other.Green; + } + if (other.Blue != 0) { + Blue = other.Blue; + } + if (other.L != 0D) { + L = other.L; + } + if (other.A != 0D) { + A = other.A; + } + if (other.B != 0D) { + B = other.B; + } + if (other.V0 != 0D) { + V0 = other.V0; + } + if (other.V1 != 0D) { + V1 = other.V1; + } + if (other.V2 != 0D) { + V2 = other.V2; + } + if (other.V3 != 0D) { + V3 = other.V3; + } + if (other.V4 != 0D) { + V4 = other.V4; + } + if (other.V5 != 0D) { + V5 = other.V5; + } + if (other.V6 != 0D) { + V6 = other.V6; + } + if (other.V7 != 0D) { + V7 = other.V7; + } + if (other.Corrected != false) { + Corrected = other.Corrected; + } + if (other.ColorCatalogGuid.Length != 0) { + ColorCatalogGuid = other.ColorCatalogGuid; + } + } + + [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: { + ColorSpaceGuid = input.ReadString(); + break; + } + case 17: { + OffsetPercent = input.ReadDouble(); + break; + } + case 25: { + Cyan = input.ReadDouble(); + break; + } + case 33: { + Magenta = input.ReadDouble(); + break; + } + case 41: { + Yellow = input.ReadDouble(); + break; + } + case 49: { + Black = input.ReadDouble(); + break; + } + case 56: { + Red = input.ReadInt32(); + break; + } + case 64: { + Green = input.ReadInt32(); + break; + } + case 72: { + Blue = input.ReadInt32(); + break; + } + case 81: { + L = input.ReadDouble(); + break; + } + case 89: { + A = input.ReadDouble(); + break; + } + case 97: { + B = input.ReadDouble(); + break; + } + case 105: { + V0 = input.ReadDouble(); + break; + } + case 113: { + V1 = input.ReadDouble(); + break; + } + case 121: { + V2 = input.ReadDouble(); + break; + } + case 129: { + V3 = input.ReadDouble(); + break; + } + case 137: { + V4 = input.ReadDouble(); + break; + } + case 145: { + V5 = input.ReadDouble(); + break; + } + case 153: { + V6 = input.ReadDouble(); + break; + } + case 161: { + V7 = input.ReadDouble(); + break; + } + case 168: { + Corrected = input.ReadBool(); + break; + } + case 178: { + ColorCatalogGuid = input.ReadString(); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Exports/JobFileSegment.cs b/Software/Visual_Studio/Tango.PMR/Exports/JobFileSegment.cs new file mode 100644 index 000000000..0f01474a4 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Exports/JobFileSegment.cs @@ -0,0 +1,209 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: JobFileSegment.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.Exports { + + /// <summary>Holder for reflection information generated from JobFileSegment.proto</summary> + public static partial class JobFileSegmentReflection { + + #region Descriptor + /// <summary>File descriptor for JobFileSegment.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static JobFileSegmentReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChRKb2JGaWxlU2VnbWVudC5wcm90bxIRVGFuZ28uUE1SLkV4cG9ydHMaFkpv", + "YkZpbGVCcnVzaFN0b3AucHJvdG8iZwoOSm9iRmlsZVNlZ21lbnQSDAoETmFt", + "ZRgBIAEoCRIOCgZMZW5ndGgYAiABKAESNwoKQnJ1c2hTdG9wcxgDIAMoCzIj", + "LlRhbmdvLlBNUi5FeHBvcnRzLkpvYkZpbGVCcnVzaFN0b3BCHQobY29tLnR3", + "aW5lLnRhbmdvLnBtci5leHBvcnRzYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Tango.PMR.Exports.JobFileBrushStopReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Exports.JobFileSegment), global::Tango.PMR.Exports.JobFileSegment.Parser, new[]{ "Name", "Length", "BrushStops" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class JobFileSegment : pb::IMessage<JobFileSegment> { + private static readonly pb::MessageParser<JobFileSegment> _parser = new pb::MessageParser<JobFileSegment>(() => new JobFileSegment()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser<JobFileSegment> Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Exports.JobFileSegmentReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFileSegment() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFileSegment(JobFileSegment other) : this() { + name_ = other.name_; + length_ = other.length_; + brushStops_ = other.brushStops_.Clone(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public JobFileSegment Clone() { + return new JobFileSegment(this); + } + + /// <summary>Field number for the "Name" field.</summary> + public const int NameFieldNumber = 1; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// <summary>Field number for the "Length" field.</summary> + public const int LengthFieldNumber = 2; + private double length_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double Length { + get { return length_; } + set { + length_ = value; + } + } + + /// <summary>Field number for the "BrushStops" field.</summary> + public const int BrushStopsFieldNumber = 3; + private static readonly pb::FieldCodec<global::Tango.PMR.Exports.JobFileBrushStop> _repeated_brushStops_codec + = pb::FieldCodec.ForMessage(26, global::Tango.PMR.Exports.JobFileBrushStop.Parser); + private readonly pbc::RepeatedField<global::Tango.PMR.Exports.JobFileBrushStop> brushStops_ = new pbc::RepeatedField<global::Tango.PMR.Exports.JobFileBrushStop>(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<global::Tango.PMR.Exports.JobFileBrushStop> BrushStops { + get { return brushStops_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as JobFileSegment); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(JobFileSegment other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if (Length != other.Length) return false; + if(!brushStops_.Equals(other.brushStops_)) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (Length != 0D) hash ^= Length.GetHashCode(); + hash ^= brushStops_.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 (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (Length != 0D) { + output.WriteRawTag(17); + output.WriteDouble(Length); + } + brushStops_.WriteTo(output, _repeated_brushStops_codec); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (Length != 0D) { + size += 1 + 8; + } + size += brushStops_.CalculateSize(_repeated_brushStops_codec); + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(JobFileSegment other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + if (other.Length != 0D) { + Length = other.Length; + } + brushStops_.Add(other.brushStops_); + } + + [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: { + Name = input.ReadString(); + break; + } + case 17: { + Length = input.ReadDouble(); + break; + } + case 26: { + brushStops_.AddEntriesFrom(input, _repeated_brushStops_codec); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareBlower.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareBlower.cs index caf7f29a8..8138b2d70 100644 --- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareBlower.cs +++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareBlower.cs @@ -23,15 +23,15 @@ namespace Tango.PMR.Hardware { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChRIYXJkd2FyZUJsb3dlci5wcm90bxISVGFuZ28uUE1SLkhhcmR3YXJlGhhI", - "YXJkd2FyZUJsb3dlclR5cGUucHJvdG8idgoOSGFyZHdhcmVCbG93ZXISQgoS", - "SGFyZHdhcmVCbG93ZXJUeXBlGAEgASgOMiYuVGFuZ28uUE1SLkhhcmR3YXJl", - "LkhhcmR3YXJlQmxvd2VyVHlwZRIPCgdFbmFibGVkGAIgASgIEg8KB1ZvbHRh", - "Z2UYAyABKAFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5oYXJkd2FyZWIGcHJv", - "dG8z")); + "YXJkd2FyZUJsb3dlclR5cGUucHJvdG8ijgEKDkhhcmR3YXJlQmxvd2VyEkIK", + "EkhhcmR3YXJlQmxvd2VyVHlwZRgBIAEoDjImLlRhbmdvLlBNUi5IYXJkd2Fy", + "ZS5IYXJkd2FyZUJsb3dlclR5cGUSDwoHRW5hYmxlZBgCIAEoCBIPCgdWb2x0", + "YWdlGAMgASgBEhYKDkhlYXRpbmdWb2x0YWdlGAQgASgBQh4KHGNvbS50d2lu", + "ZS50YW5nby5wbXIuaGFyZHdhcmViBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tango.PMR.Hardware.HardwareBlowerTypeReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Hardware.HardwareBlower), global::Tango.PMR.Hardware.HardwareBlower.Parser, new[]{ "HardwareBlowerType", "Enabled", "Voltage" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Hardware.HardwareBlower), global::Tango.PMR.Hardware.HardwareBlower.Parser, new[]{ "HardwareBlowerType", "Enabled", "Voltage", "HeatingVoltage" }, null, null, null) })); } #endregion @@ -65,6 +65,7 @@ namespace Tango.PMR.Hardware { hardwareBlowerType_ = other.hardwareBlowerType_; enabled_ = other.enabled_; voltage_ = other.voltage_; + heatingVoltage_ = other.heatingVoltage_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -105,6 +106,17 @@ namespace Tango.PMR.Hardware { } } + /// <summary>Field number for the "HeatingVoltage" field.</summary> + public const int HeatingVoltageFieldNumber = 4; + private double heatingVoltage_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double HeatingVoltage { + get { return heatingVoltage_; } + set { + heatingVoltage_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as HardwareBlower); @@ -121,6 +133,7 @@ namespace Tango.PMR.Hardware { if (HardwareBlowerType != other.HardwareBlowerType) return false; if (Enabled != other.Enabled) return false; if (Voltage != other.Voltage) return false; + if (HeatingVoltage != other.HeatingVoltage) return false; return true; } @@ -130,6 +143,7 @@ namespace Tango.PMR.Hardware { if (HardwareBlowerType != 0) hash ^= HardwareBlowerType.GetHashCode(); if (Enabled != false) hash ^= Enabled.GetHashCode(); if (Voltage != 0D) hash ^= Voltage.GetHashCode(); + if (HeatingVoltage != 0D) hash ^= HeatingVoltage.GetHashCode(); return hash; } @@ -152,6 +166,10 @@ namespace Tango.PMR.Hardware { output.WriteRawTag(25); output.WriteDouble(Voltage); } + if (HeatingVoltage != 0D) { + output.WriteRawTag(33); + output.WriteDouble(HeatingVoltage); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -166,6 +184,9 @@ namespace Tango.PMR.Hardware { if (Voltage != 0D) { size += 1 + 8; } + if (HeatingVoltage != 0D) { + size += 1 + 8; + } return size; } @@ -183,6 +204,9 @@ namespace Tango.PMR.Hardware { if (other.Voltage != 0D) { Voltage = other.Voltage; } + if (other.HeatingVoltage != 0D) { + HeatingVoltage = other.HeatingVoltage; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -205,6 +229,10 @@ namespace Tango.PMR.Hardware { Voltage = input.ReadDouble(); break; } + case 33: { + HeatingVoltage = input.ReadDouble(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/IO/GetStorageInfoRequest.cs b/Software/Visual_Studio/Tango.PMR/IO/GetStorageInfoRequest.cs index ae06664ae..e77104d56 100644 --- a/Software/Visual_Studio/Tango.PMR/IO/GetStorageInfoRequest.cs +++ b/Software/Visual_Studio/Tango.PMR/IO/GetStorageInfoRequest.cs @@ -22,14 +22,13 @@ namespace Tango.PMR.IO { static GetStorageInfoRequestReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChtHZXRTdG9yYWdlSW5mb1JlcXVlc3QucHJvdG8SDFRhbmdvLlBNUi5JTyI8", - "ChVHZXRTdG9yYWdlSW5mb1JlcXVlc3QSEAoIQ2FwYWNpdHkYASABKAUSEQoJ", - "RnJlZVNwYWNlGAIgASgFQhgKFmNvbS50d2luZS50YW5nby5wbXIuaW9iBnBy", - "b3RvMw==")); + "ChtHZXRTdG9yYWdlSW5mb1JlcXVlc3QucHJvdG8SDFRhbmdvLlBNUi5JTyIX", + "ChVHZXRTdG9yYWdlSW5mb1JlcXVlc3RCGAoWY29tLnR3aW5lLnRhbmdvLnBt", + "ci5pb2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.IO.GetStorageInfoRequest), global::Tango.PMR.IO.GetStorageInfoRequest.Parser, new[]{ "Capacity", "FreeSpace" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.IO.GetStorageInfoRequest), global::Tango.PMR.IO.GetStorageInfoRequest.Parser, null, null, null, null) })); } #endregion @@ -60,8 +59,6 @@ namespace Tango.PMR.IO { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public GetStorageInfoRequest(GetStorageInfoRequest other) : this() { - capacity_ = other.capacity_; - freeSpace_ = other.freeSpace_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -69,28 +66,6 @@ namespace Tango.PMR.IO { return new GetStorageInfoRequest(this); } - /// <summary>Field number for the "Capacity" field.</summary> - public const int CapacityFieldNumber = 1; - private int capacity_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int Capacity { - get { return capacity_; } - set { - capacity_ = value; - } - } - - /// <summary>Field number for the "FreeSpace" field.</summary> - public const int FreeSpaceFieldNumber = 2; - private int freeSpace_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int FreeSpace { - get { return freeSpace_; } - set { - freeSpace_ = value; - } - } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as GetStorageInfoRequest); @@ -104,16 +79,12 @@ namespace Tango.PMR.IO { if (ReferenceEquals(other, this)) { return true; } - if (Capacity != other.Capacity) return false; - if (FreeSpace != other.FreeSpace) return false; return true; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - if (Capacity != 0) hash ^= Capacity.GetHashCode(); - if (FreeSpace != 0) hash ^= FreeSpace.GetHashCode(); return hash; } @@ -124,25 +95,11 @@ namespace Tango.PMR.IO { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - if (Capacity != 0) { - output.WriteRawTag(8); - output.WriteInt32(Capacity); - } - if (FreeSpace != 0) { - output.WriteRawTag(16); - output.WriteInt32(FreeSpace); - } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - if (Capacity != 0) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Capacity); - } - if (FreeSpace != 0) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(FreeSpace); - } return size; } @@ -151,12 +108,6 @@ namespace Tango.PMR.IO { if (other == null) { return; } - if (other.Capacity != 0) { - Capacity = other.Capacity; - } - if (other.FreeSpace != 0) { - FreeSpace = other.FreeSpace; - } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -167,14 +118,6 @@ namespace Tango.PMR.IO { default: input.SkipLastField(); break; - case 8: { - Capacity = input.ReadInt32(); - break; - } - case 16: { - FreeSpace = input.ReadInt32(); - break; - } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs b/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs index 73aac06dc..65bc41bec 100644 --- a/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs +++ b/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs @@ -25,7 +25,7 @@ namespace Tango.PMR.Printing { "Cg9Kb2JUaWNrZXQucHJvdG8SElRhbmdvLlBNUi5QcmludGluZxoQSm9iU2Vn", "bWVudC5wcm90bxoXUHJvY2Vzc1BhcmFtZXRlcnMucHJvdG8aFkpvYldpbmRp", "bmdNZXRob2QucHJvdG8aDkpvYlNwb29sLnByb3RvIs0CCglKb2JUaWNrZXQS", - "DAoEZ3VpZBgBIAEoCRIMCgROYW1lGAIgASgJEhoKEkVuYWJsZUludGVyU2Vn", + "DAoER3VpZBgBIAEoCRIMCgROYW1lGAIgASgJEhoKEkVuYWJsZUludGVyU2Vn", "bWVudBgDIAEoCBIaChJJbnRlclNlZ21lbnRMZW5ndGgYBCABKAESDgoGTGVu", "Z3RoGAUgASgBEkAKEVByb2Nlc3NQYXJhbWV0ZXJzGAYgASgLMiUuVGFuZ28u", "UE1SLlByaW50aW5nLlByb2Nlc3NQYXJhbWV0ZXJzEjsKDVdpbmRpbmdNZXRo", @@ -84,7 +84,7 @@ namespace Tango.PMR.Printing { return new JobTicket(this); } - /// <summary>Field number for the "guid" field.</summary> + /// <summary>Field number for the "Guid" field.</summary> public const int GuidFieldNumber = 1; private string guid_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj index 48d204d0f..02c47913b 100644 --- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj +++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj @@ -136,6 +136,9 @@ <Compile Include="Embroidery\Stitch.cs" /> <Compile Include="Embroidery\StitchColor.cs" /> <Compile Include="Embroidery\StitchFlag.cs" /> + <Compile Include="Exports\JobFile.cs" /> + <Compile Include="Exports\JobFileBrushStop.cs" /> + <Compile Include="Exports\JobFileSegment.cs" /> <Compile Include="ExtensionMethods.cs" /> <Compile Include="Hardware\HardwareBlower.cs" /> <Compile Include="Hardware\HardwareBlowerType.cs" /> @@ -245,7 +248,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 diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml index 0b480ecf6..515fef750 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml @@ -163,16 +163,16 @@ <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.2" /> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.2" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" /> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <DataTrigger.ExitActions> <BeginStoryboard> <Storyboard> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.2" /> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.2" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" /> </Storyboard> </BeginStoryboard> </DataTrigger.ExitActions> |
