diff options
| author | Roy Ben Shabat <roy.mail.net@gmail.com> | 2025-10-19 16:20:01 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <roy.mail.net@gmail.com> | 2025-10-19 16:20:01 +0300 |
| commit | 72fc39f873de467c1431d928bce4d39442205691 (patch) | |
| tree | fc92559db7b57bb44606e040cd8ed4bd34494256 /Software/Visual_Studio/MachineStudio/Modules | |
| parent | 22ddd9e0b6efe5aef685c7fc9886e3d93cb350c0 (diff) | |
| download | Tango-72fc39f873de467c1431d928bce4d39442205691.tar.gz Tango-72fc39f873de467c1431d928bce4d39442205691.zip | |
MS LITE
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules')
37 files changed, 160 insertions, 115 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj index b7a254a03..0bb9033a8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj @@ -300,18 +300,6 @@ <Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project> <Name>Tango.MachineStudio.Common</Name> </ProjectReference> - <ProjectReference Include="..\Tango.MachineStudio.DataCapture\Tango.MachineStudio.DataCapture.csproj"> - <Project>{fc337a7f-1214-41d8-9992-78092a3b961e}</Project> - <Name>Tango.MachineStudio.DataCapture</Name> - </ProjectReference> - <ProjectReference Include="..\Tango.MachineStudio.Logging\Tango.MachineStudio.Logging.csproj"> - <Project>{1674f726-0e66-414f-b9fd-c6f20d7f07c7}</Project> - <Name>Tango.MachineStudio.Logging</Name> - </ProjectReference> - <ProjectReference Include="..\Tango.MachineStudio.MachineDesigner\Tango.MachineStudio.MachineDesigner.csproj"> - <Project>{d0ce8122-077d-42a2-9490-028ae4769b52}</Project> - <Name>Tango.MachineStudio.MachineDesigner</Name> - </ProjectReference> </ItemGroup> <ItemGroup> <Resource Include="Images\rgb.png" /> @@ -393,7 +381,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index ab74433a6..36beab19a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -38,8 +38,6 @@ using System.Threading; using Tango.SharedUI.Helpers; using Tango.Core.DI; using Tango.MachineStudio.Common; -using Tango.MachineStudio.Logging.ViewModels; -using Tango.MachineStudio.Logging.Views; using Tango.AutoComplete.Editors; using System.Data.Entity; using System.Runtime.ExceptionServices; @@ -53,6 +51,7 @@ using Microsoft.WindowsAPICodePack.Dialogs; using Tango.BL.Enumerations; using Tango.BL.DTO; using Tango.BL.ActionLogs; +using Tango.MachineStudio.Common.Buid; namespace Tango.MachineStudio.Developer.ViewModels { @@ -68,6 +67,7 @@ namespace Tango.MachineStudio.Developer.ViewModels private const string EMB_FORMATS_IMPORT = "Embroidery Files|*.pes;*.hus;*.dst"; private INotificationProvider _notification; + private IBuildProvider _buildProvider; private TimeSpan _runningJobEstimatedDuration; private DeveloperNavigationManager _navigation; private INavigationManager _msNavigation; @@ -76,7 +76,6 @@ namespace Tango.MachineStudio.Developer.ViewModels private ObservablesContext _activeJobDbContext; private IEventLogger _eventLogger; private ISpeechProvider _speech; - private DataCapture.ViewModels.MainViewVM _dataCaptureVM; private bool _isRecording; private DeveloperModuleSettings _settings; private Thread _colorConversionThread; @@ -769,7 +768,7 @@ namespace Tango.MachineStudio.Developer.ViewModels /// </summary> /// <param name="applicationManager">The application manager.</param> /// <param name="notificationProvider">The notification provider.</param> - public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, INavigationManager navigationManager, IAuthenticationProvider authentication, IEventLogger eventLogger, ISpeechProvider speech, IActionLogManager actionLogManager) + public MainViewVM(IBuildProvider buildProvider, IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, INavigationManager navigationManager, IAuthenticationProvider authentication, IEventLogger eventLogger, ISpeechProvider speech, IActionLogManager actionLogManager) { _converter = new DefaultColorConverter(); @@ -781,6 +780,7 @@ namespace Tango.MachineStudio.Developer.ViewModels AuthenticationProvider = authentication; _actionLogManager = actionLogManager; + _buildProvider = buildProvider; _notification = notificationProvider; _speech = speech; _navigation = navigation; @@ -791,11 +791,11 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Initializing relay commands..."); - TangoIOC.Default.GetInstanceWhenAvailable<DataCapture.ViewModels.MainViewVM>((vm) => - { - _dataCaptureVM = vm; - _dataCaptureVM.RelayCommandsInvalidated += (_, __) => StartJobAndRecordCommand.RaiseCanExecuteChanged(); - }); + //TangoIOC.Default.GetInstanceWhenAvailable<DataCapture.ViewModels.MainViewVM>((vm) => + //{ + // _dataCaptureVM = vm; + // _dataCaptureVM.RelayCommandsInvalidated += (_, __) => StartJobAndRecordCommand.RaiseCanExecuteChanged(); + //}); //Initialize Commands... EditMachineCommand = new RelayCommand(EditMachine, () => SelectedMachine != null && CanWork); @@ -811,7 +811,7 @@ namespace Tango.MachineStudio.Developer.ViewModels SaveJobCommand = new RelayCommand(SaveActiveJob, () => SelectedMachine != null && CanWork); DiscardJobCommand = new RelayCommand(BackToJobs, () => SelectedMachine != null && CanWork); StartJobCommand = new RelayCommand(() => StartJob(), () => ActiveJob != null && CanWork && !IsJobRunning && MachineOperator != null); - StartJobAndRecordCommand = new RelayCommand(StartJobAndRecord, () => _dataCaptureVM != null && !_dataCaptureVM.Recorder.IsRecording && !_dataCaptureVM.Player.IsPlaying && ActiveJob != null && !IsJobRunning && MachineOperator != null && CanWork); + //StartJobAndRecordCommand = new RelayCommand(StartJobAndRecord, () => _dataCaptureVM != null && !_dataCaptureVM.Recorder.IsRecording && !_dataCaptureVM.Player.IsPlaying && ActiveJob != null && !IsJobRunning && MachineOperator != null && CanWork); StopJobCommand = new RelayCommand(StopJob, () => IsJobRunning && CanWork); CloseJobCompletionStatusCommand = new RelayCommand(CloseJobCompletionStatusBar); LoadJobCommand = new RelayCommand(() => LoadSelectedJob(), () => SelectedMachineJob != null && CanWork); @@ -856,7 +856,7 @@ namespace Tango.MachineStudio.Developer.ViewModels { Settings = SettingsManager.Default.GetOrCreate<DeveloperModuleSettings>(); - Settings.PropertyChanged += (x, e) => + Settings.PropertyChanged += (x, e) => { if (e.PropertyName == nameof(Settings.UsePreferredLiquidVolumeIndex)) { @@ -872,10 +872,17 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Initializing machine Db context..."); _machineDbContext = ObservablesContext.CreateDefault(); - if (_settings.LastSelectedMachineGuid != null) + if (_buildProvider.BuildType == MSBuildType.Lite) { - LogManager.Log("Setting last selected machine from settings..."); - SelectedMachine = _machineDbContext.Machines.SingleOrDefault(x => x.Guid == _settings.LastSelectedMachineGuid); + SelectedMachine = _machineDbContext.Machines.SingleOrDefault(x => x.Guid == AuthenticationProvider.Machine.Guid); + } + else + { + if (_settings.LastSelectedMachineGuid != null) + { + LogManager.Log("Setting last selected machine from settings..."); + SelectedMachine = _machineDbContext.Machines.SingleOrDefault(x => x.Guid == _settings.LastSelectedMachineGuid); + } } if (_settings.LastSelectedJobGuid != null && SelectedMachine != null) @@ -1352,17 +1359,17 @@ namespace Tango.MachineStudio.Developer.ViewModels private void OnSelectedJobEventChanged() { - if (SelectedJobEvent != null && SelectedJobEvent.Type != BL.Enumerations.EventTypes.APPLICATION_STARTED && !_dialog_shown) - { - _dialog_shown = true; - _notification.ShowModalDialog<EventDetailsViewVM, EventDetailsView>(new EventDetailsViewVM(SelectedJobEvent), (x) => - { + //if (SelectedJobEvent != null && SelectedJobEvent.Type != BL.Enumerations.EventTypes.APPLICATION_STARTED && !_dialog_shown) + //{ + // _dialog_shown = true; + // _notification.ShowModalDialog<EventDetailsViewVM, EventDetailsView>(new EventDetailsViewVM(SelectedJobEvent), (x) => + // { - }, () => - { - _dialog_shown = false; - }); - } + // }, () => + // { + // _dialog_shown = false; + // }); + //} } /// <summary> @@ -1588,9 +1595,9 @@ namespace Tango.MachineStudio.Developer.ViewModels /// </summary> private void StartJobAndRecord() { - _isRecording = true; - _dataCaptureVM.StartDiagnosticsRecording(); - StartJob(); + //_isRecording = true; + //_dataCaptureVM.StartDiagnosticsRecording(); + //StartJob(); } /// <summary> @@ -1598,11 +1605,11 @@ namespace Tango.MachineStudio.Developer.ViewModels /// </summary> private void StopRecordingIfInProgress() { - if (_isRecording) - { - _isRecording = false; - InvokeUI(() => _dataCaptureVM.StopRecorderOrPlayer()); - } + //if (_isRecording) + //{ + // _isRecording = false; + // InvokeUI(() => _dataCaptureVM.StopRecorderOrPlayer()); + //} } private void BackToJob() @@ -1901,9 +1908,9 @@ namespace Tango.MachineStudio.Developer.ViewModels //var processParamsGroups = _activeJobDbContext.ProcessParametersTablesGroups.ToList(); //var processParams = _activeJobDbContext.ProcessParametersTables.ToList(); - ColorSpaces = _activeJobDbContext.ColorSpaces.ToObservableCollection(); + ColorSpaces = _activeJobDbContext.ColorSpaces.ToList().Where(x => x.Space == BL.Enumerations.ColorSpaces.Volume || x.Space == BL.Enumerations.ColorSpaces.LAB || x.Space == BL.Enumerations.ColorSpaces.RGB).ToObservableCollection(); - Rmls = _activeJobDbContext.Rmls.Where(x => x.MachineType == SelectedMachine.MachineType || x.MachineType == null).ToList().OrderBy(i => i.FinalName).ToObservableCollection(); + Rmls = _activeJobDbContext.Rmls.Where(x => x.CreatedByOrganizationGuid == AuthenticationProvider.CurrentUser.Organization.Guid || _buildProvider.BuildType == MSBuildType.Default).Where(x => x.MachineType == SelectedMachine.MachineType || x.MachineType == null).ToList().OrderBy(i => i.FinalName).ToObservableCollection(); WindingMethods = _activeJobDbContext.WindingMethods.ToObservableCollection(); SpoolTypes = _activeJobDbContext.SpoolTypes.ToObservableCollection(); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml index 45c2d54cb..c326e5be2 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml @@ -16,7 +16,6 @@ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" - xmlns:designer="clr-namespace:Tango.MachineStudio.MachineDesigner.Views;assembly=Tango.MachineStudio.MachineDesigner" xmlns:vm="clr-namespace:Tango.MachineStudio.Developer.ViewModels" xmlns:localConverters="clr-namespace:Tango.MachineStudio.Developer.Converters" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" @@ -692,7 +691,7 @@ </StackPanel> </Border> - <Border Style="{StaticResource JobFieldBorder}" Height="82" Width="200" Visibility="{Binding IsSideBarOpened,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <!--<Border Style="{StaticResource JobFieldBorder}" Height="82" Width="200" Visibility="{Binding IsSideBarOpened,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <StackPanel Width="200"> <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> <Image Source="../Images/description.png" Width="32"></Image> @@ -703,7 +702,7 @@ <TextBox Padding="5 0 0 0" FontStyle="Italic" Background="Transparent" Style="{x:Null}" BorderThickness="0" Margin="5" Height="40" Text="{Binding ActiveJob.Description}" VerticalAlignment="Stretch" materialDesign:HintAssist.Hint="Enter description" AcceptsReturn="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"></TextBox> </Border> </StackPanel> - </Border> + </Border>--> </StackPanel> @@ -1312,9 +1311,9 @@ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="18" Foreground="{StaticResource WhiteTextBrush}">START JOB</TextBlock> </StackPanel> </Button> - <Button Height="60" Width="60" Margin="-60 0 0 0" Padding="0" Command="{Binding StartJobAndRecordCommand}" Click="OnJobStartClick" ToolTip="Start Job and Record"> + <!--<Button Height="60" Width="60" Margin="-60 0 0 0" Padding="0" Command="{Binding StartJobAndRecordCommand}" Click="OnJobStartClick" ToolTip="Start Job and Record"> <materialDesign:PackIcon VerticalAlignment="Center" Width="38" Height="38" Kind="Record" Foreground="{StaticResource RedBrush200}" /> - </Button> + </Button>--> </StackPanel> <Button Command="{Binding ToRunningJobCommand}" Width="280" Height="60" Visibility="{Binding IsJobRunning,Converter={StaticResource BooleanToVisibilityConverter}}"> <StackPanel Orientation="Horizontal"> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml index ce632539e..ae2bc5cd7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml @@ -4,7 +4,6 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:global="clr-namespace:Tango.MachineStudio.Developer" - xmlns:designer="clr-namespace:Tango.MachineStudio.MachineDesigner.Views;assembly=Tango.MachineStudio.MachineDesigner" xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:automation="clr-namespace:Tango.MachineStudio.Common.Automation;assembly=Tango.MachineStudio.Common" @@ -15,6 +14,7 @@ xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common" + xmlns:commonConverters="clr-namespace:Tango.MachineStudio.Common.Converters;assembly=Tango.MachineStudio.Common" xmlns:local="clr-namespace:Tango.MachineStudio.Developer.Views" mc:Ignorable="d" x:Name="control" d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> @@ -26,6 +26,8 @@ <converters:GreaterThanToBooleanConverter x:Key="GreaterThanToBooleanConverter" /> <converters:MathOperatorConverter x:Key="MathOperatorConverter" /> <converters:BooleanInverseConverter x:Key="BooleanInverseConverter" /> + <commonConverters:IsLiteToVisibilityInverseConverter x:Key="IsLiteToVisibilityInverseConverter" /> + <commonConverters:IsLiteToVisibilityConverter x:Key="IsLiteToVisibilityConverter" /> </UserControl.Resources> <Grid IsEnabled="{Binding IsFree}"> @@ -37,13 +39,13 @@ <Grid Background="{StaticResource TransparentBackgroundBrush400}"> <StackPanel> - <TextBlock Margin="40 20" FontSize="30" FontWeight="SemiBold" FontStyle="Italic">TARGET MACHINE</TextBlock> + <TextBlock Visibility="{Binding Converter={StaticResource IsLiteToVisibilityInverseConverter}}" Margin="40 20" FontSize="30" FontWeight="SemiBold" FontStyle="Italic">TARGET MACHINE</TextBlock> <DockPanel Margin="40 0 40 0" IsEnabled="{Binding CanWork}"> - <Button Command="{Binding ReloadMachinesCommand}" DockPanel.Dock="Right" ToolTip="Reload" Foreground="{StaticResource GrayBrush280}" Margin="20 0 0 0" Padding="0" Width="40" Height="Auto" Style="{StaticResource MaterialDesignFlatButton}"> + <Button Visibility="{Binding Converter={StaticResource IsLiteToVisibilityInverseConverter}}" Command="{Binding ReloadMachinesCommand}" DockPanel.Dock="Right" ToolTip="Reload" Foreground="{StaticResource GrayBrush280}" Margin="20 0 0 0" Padding="0" Width="40" Height="Auto" Style="{StaticResource MaterialDesignFlatButton}"> <materialDesign:PackIcon Kind="Refresh" Width="24" Height="24" /> </Button> - <autoComplete:AutoCompleteTextBox Provider="{Binding MachinesProvider}" LoadingContent="Loading..." FontSize="20" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}" materialDesign:HintAssist.Hint="Serial Number" DisplayMember="SerialNumber"> + <autoComplete:AutoCompleteTextBox Visibility="{Binding Converter={StaticResource IsLiteToVisibilityInverseConverter}}" Provider="{Binding MachinesProvider}" LoadingContent="Loading..." FontSize="20" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}" materialDesign:HintAssist.Hint="Serial Number" DisplayMember="SerialNumber"> <autoComplete:AutoCompleteTextBox.ItemTemplate> <DataTemplate> <StackPanel> @@ -54,7 +56,7 @@ </autoComplete:AutoCompleteTextBox.ItemTemplate> </autoComplete:AutoCompleteTextBox> </DockPanel> - <designer:MachineView Width="600" IsHitTestVisible="False" Margin="0 40 0 0" DataContext="{Binding SelectedMachine}" /> + <commonControls:MachineView Width="600" IsHitTestVisible="False" Margin="0 40 0 0" DataContext="{Binding SelectedMachine}" /> </StackPanel> </Grid> @@ -260,7 +262,7 @@ </Grid> </DockPanel> - <StackPanel Margin="20 0 0 -100" VerticalAlignment="Bottom" HorizontalAlignment="Left" Orientation="Horizontal"> + <StackPanel Visibility="{Binding Converter={StaticResource IsLiteToVisibilityInverseConverter}}" Margin="20 0 0 -100" VerticalAlignment="Bottom" HorizontalAlignment="Left" Orientation="Horizontal"> <Button Command="{Binding ImportJobFileCommand}" Foreground="{StaticResource BlackForegroundBrush}" FontSize="16" Style="{StaticResource emptyButton}" Cursor="Hand"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="FileImport" VerticalAlignment="Center" Width="30" Height="30" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Images/threads.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Images/threads.png Binary files differindex 86eb0b335..6d7c680ec 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Images/threads.png +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Images/threads.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs index c2245bcb2..74bebef45 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs @@ -47,6 +47,8 @@ namespace Tango.MachineStudio.RML.Models public MachineTypes? MachineType { get; set; } + public double DefaultLiquidFactor { get; set; } + public RmlModel() { DyeingSpeed = "-"; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs index 2fcb87c59..a8ec6a9ff 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs @@ -30,6 +30,7 @@ using Tango.ColorConversion; using Tango.CSV; using Tango.Core; using Tango.SharedUI.Helpers; +using Tango.MachineStudio.Common.Buid; namespace Tango.MachineStudio.RML.ViewModels { @@ -39,6 +40,7 @@ namespace Tango.MachineStudio.RML.ViewModels private IAuthenticationProvider _authentication; private IActionLogManager _actionLogManager; private RmlDTO _rmlBeforeSave; + private IBuildProvider _buildProvider; private ObservablesContext _active_context; @@ -320,8 +322,9 @@ namespace Tango.MachineStudio.RML.ViewModels #endregion - public MainViewVM(INotificationProvider notificationProvider, IAuthenticationProvider authentication, IActionLogManager actionLogManager) + public MainViewVM(IBuildProvider buildProvider, INotificationProvider notificationProvider, IAuthenticationProvider authentication, IActionLogManager actionLogManager) { + _buildProvider = buildProvider; _notification = notificationProvider; _authentication = authentication; _actionLogManager = actionLogManager; @@ -362,7 +365,7 @@ namespace Tango.MachineStudio.RML.ViewModels public override void OnApplicationReady() { - + } private async Task LoadRmls() @@ -375,8 +378,7 @@ namespace Tango.MachineStudio.RML.ViewModels using (ObservablesContext db = ObservablesContext.CreateDefault()) { - - var rmls = await db.Rmls.Where(x => x.Name.ToLower().Contains(filter) || x.DisplayName.ToLower().Contains(filter)) + var rmls = await db.Rmls.Where(x => x.CreatedByOrganizationGuid == _authentication.CurrentUser.Organization.Guid || _buildProvider.BuildType == MSBuildType.Default).Where(x => x.Name.ToLower().Contains(filter) || x.DisplayName.ToLower().Contains(filter)) .Include(x => x.Cct.FileName) .Include(x => x.LiquidTypesRmls) .Include(x => x.LiquidTypesRmls.Select(y => y.LiquidType)) @@ -395,11 +397,12 @@ namespace Tango.MachineStudio.RML.ViewModels x.HeadType, x.LastUpdated, x.MachineType, + x.DefaultLiquidFactor, BtsrApplicationType = x.BtsrApplicationType != null ? x.BtsrApplicationType.Name : String.Empty, BtsrYarnType = x.BtsrYarnType != null ? x.BtsrYarnType.Name : String.Empty, - //LiquidTypesRmls = x.LiquidTypesRmls, - //LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType), - ProcessParametersTables = x.ProcessParametersTablesGroups + //LiquidTypesRmls = x.LiquidTypesRmls, + //LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType), + ProcessParametersTables = x.ProcessParametersTablesGroups }).ToListAsync(); @@ -446,6 +449,7 @@ namespace Tango.MachineStudio.RML.ViewModels model.HeadType = (HeadTypes)rml.HeadType; model.Btsr = (String.IsNullOrEmpty(rml.BtsrApplicationType) ? "N/A" : rml.BtsrApplicationType) + ", " + (String.IsNullOrEmpty(rml.BtsrYarnType) ? "N/A" : rml.BtsrYarnType); model.MachineType = (MachineTypes?)rml.MachineType; + model.DefaultLiquidFactor = rml.DefaultLiquidFactor; if (tableZone1 != null) { @@ -570,7 +574,7 @@ namespace Tango.MachineStudio.RML.ViewModels ActiveProcessParametersGroup = ActiveRML.ProcessParametersTablesGroups.ToList().FirstOrDefault(); - var tables= ActiveRML.ProcessParametersTablesGroups.ToList(); + var tables = ActiveRML.ProcessParametersTablesGroups.ToList(); var zone1 = tables[0].ProcessParametersTables; /* * */ @@ -760,6 +764,16 @@ namespace Tango.MachineStudio.RML.ViewModels rml.QualificationDate = DateTime.UtcNow; rml.Manufacturer = "Twine"; rml.DefaultLiquidFactor = 140; + rml.ColorConversionVersion = 6; + rml.CreatedByUserGuid = _authentication.CurrentUser.Guid; + rml.CreatedByOrganizationGuid = _authentication.CurrentUser.Organization.Guid; + rml.VMax = 5; + rml.UseLightInks = true; + + if (_buildProvider.BuildType == MSBuildType.Lite) + { + rml.ForMachineType = _authentication.Machine.Type; + } using (ObservablesContext db = ObservablesContext.CreateDefault()) { @@ -787,13 +801,28 @@ namespace Tango.MachineStudio.RML.ViewModels group.Active = true; group.ProcessParametersTables.Add(new ProcessParametersTable() { - Name = "Process Table 1", + Name = "Zone 1", + }); + group.ProcessParametersTables.Add(new ProcessParametersTable() + { + Name = "Zone 2", }); group.Rml = rml; _active_context.ProcessParametersTablesGroups.Add(group); _active_context.ProcessParametersTables.Add(group.ProcessParametersTables[0]); + _active_context.ProcessParametersTables.Add(group.ProcessParametersTables[1]); + + LiquidTypesRml lubricantRelation = new LiquidTypesRml(); + lubricantRelation.LiquidTypeGuid = _active_context.LiquidTypes.FirstOrDefault(x => x.Code == (int)LiquidTypes.Lubricant).Guid; + lubricantRelation.RmlGuid = rml.Guid; + lubricantRelation.MaxNlPerCm = 1; + + _active_context.LiquidTypesRmls.Add(lubricantRelation); + + rml.CctGuid = _active_context.Ccts.OrderByDescending(x => x.LastUpdated).Take(1).Select(x => x.Guid).ToList().First(); + _active_context.Rmls.Add(rml); await _active_context.SaveChangesAsync(); @@ -903,6 +932,8 @@ namespace Tango.MachineStudio.RML.ViewModels cloned.DisplayName = name; cloned.RmlQualificationLevel = RmlQualifications.Provisional; cloned.QualificationDate = DateTime.UtcNow; + cloned.CreatedByUserGuid = _authentication.CurrentUser.Guid; + cloned.CreatedByOrganizationGuid = _authentication.CurrentUser.Organization.Guid; ProcessParametersTablesGroup group = new ProcessParametersTablesGroup(); group.Name = rml.GetActiveProcessGroup().Name; @@ -1183,7 +1214,7 @@ namespace Tango.MachineStudio.RML.ViewModels private async void ActivatedInSitesDialog() { - if(SelectedRML == null) + if (SelectedRML == null) return; try @@ -1191,9 +1222,9 @@ namespace Tango.MachineStudio.RML.ViewModels using (ObservablesContext db = ObservablesContext.CreateDefault()) { IsFree = false; - - var selSites = await db.SitesRmls.OrderBy(x => x.ID).Where(y => y.RmlGuid == SelectedRML.Guid).Include(x=>x.Site).Select(x => x.Site.Name).ToListAsync(); - + + var selSites = await db.SitesRmls.OrderBy(x => x.ID).Where(y => y.RmlGuid == SelectedRML.Guid).Include(x => x.Site).Select(x => x.Site.Name).ToListAsync(); + var vm = new RmlActiveSitesDialogVM(selSites, SelectedRML.Name); _notification.ShowModalDialog<RmlActiveSitesDialogVM, RmlActiveSitesDialog>(vm, (x) => { }, () => { }); @@ -1214,7 +1245,7 @@ namespace Tango.MachineStudio.RML.ViewModels IsFree = true; } } - + private async void BackToRmls() { View.NavigateTo(RmlNavigationView.RmlsView); @@ -1717,7 +1748,7 @@ namespace Tango.MachineStudio.RML.ViewModels { var json = File.ReadAllText(file); var rmlFile = await Rml.FromRmlFile(db, json); - + db.Rmls.Add(rmlFile); if (rmlFile.RmlsExtensions != null && rmlFile.RmlsExtensions.Count > 0) diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/CalibrationDataView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/CalibrationDataView.xaml index f1995283c..9d1c4a947 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/CalibrationDataView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/CalibrationDataView.xaml @@ -21,7 +21,7 @@ <ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding LiquidsCalibrationData}" IsEnabled="{Binding IsFree}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> - <UniformGrid Rows="1" /> + <StackPanel Orientation="Horizontal" /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml index b9e9f30c3..12571ed6e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml @@ -158,12 +158,12 @@ <ItemsControl Width="{Binding WidthLilquidFactors, RelativeSource={RelativeSource AncestorType=UserControl}}" ItemsSource="{Binding LiquidTypesRmls}" Margin="0 10 0 0"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> - <UniformGrid IsItemsHost="True" Rows="1"></UniformGrid> + <StackPanel IsItemsHost="True" Orientation="Horizontal"></StackPanel> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate DataType="{x:Type observables:LiquidTypesRml}"> - <Grid Margin="20 0 20 0" MaxWidth="230"> + <Grid Margin="20 0 20 0" Width="200"> <Button HorizontalAlignment="Right" Style="{StaticResource MaterialDesignFlatButton}" Padding="0" ToolTip="Remove liquid factor" Width="30" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.RemoveLiquidFactorCommand}" CommandParameter="{Binding}"> <materialDesign:PackIcon Kind="Delete" Foreground="#FF7D7D" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml index 7f6ebcbb6..de564c1ec 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml @@ -123,13 +123,13 @@ </ComboBox> <TextBlock Text="Count (den):" ></TextBlock> - <TextBlock Text="{Binding ActiveRML.DencityCount}" Foreground="Blue" ></TextBlock> + <TextBlock Text="{Binding ActiveRML.DencityCount}"></TextBlock> <TextBlock Text="Default Liquid Factor:" ></TextBlock> - <mahapps:NumericUpDown Minimum="1" Maximum="1000" Value="{Binding ActiveRML.DefaultLiquidFactor}" Foreground="Blue" ></mahapps:NumericUpDown> + <mahapps:NumericUpDown Minimum="1" Maximum="1000" Value="{Binding ActiveRML.DefaultLiquidFactor}"></mahapps:NumericUpDown> <TextBlock Text="Machine Type:" ></TextBlock> - <ComboBox ItemsSource="{Binding Source={x:Type enumerations:MachineTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ActiveRML.ForMachineType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName" Foreground="Blue" ></ComboBox> + <ComboBox ItemsSource="{Binding Source={x:Type enumerations:MachineTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ActiveRML.ForMachineType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox> <!--<TextBlock Text="Fiber Shape:" ></TextBlock> <ComboBox ItemsSource="{Binding FiberShapes}" SelectedItem="{Binding ActiveRML.FiberShape,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>--> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml index ff341f5ed..8f75bea90 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml @@ -10,6 +10,7 @@ xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:commonConverters="clr-namespace:Tango.MachineStudio.Common.Converters;assembly=Tango.MachineStudio.Common" xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:local="clr-namespace:Tango.MachineStudio.RML.Views" mc:Ignorable="d" @@ -22,15 +23,17 @@ <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" /> <converters:IsNullToVisibilityConverter x:Key="IsNullToVisibilityConverter" /> <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> + <commonConverters:IsLiteToVisibilityInverseConverter x:Key="IsLiteToVisibilityInverseConverter" /> + <commonConverters:IsLiteToVisibilityConverter x:Key="IsLiteToVisibilityConverter" /> </UserControl.Resources> <Grid IsEnabled="{Binding IsFree}"> <DockPanel Margin="100 50 100 50" MaxWidth="1500"> <Grid DockPanel.Dock="Top"> - <Image Source="../Images/threads.png" Width="300" Margin="10" /> + <Image Source="../Images/threads.png" Width="250" RenderOptions.BitmapScalingMode="Fant" Margin="10" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="0 0 10 30"> <materialDesign:PackIcon Kind="Magnify" Width="26" Height="26"/> - <TextBox Width="300" materialDesign:HintAssist.Hint="Search by name" Text="{Binding RMLFilter,UpdateSourceTrigger=PropertyChanged,Delay=500}"></TextBox> + <TextBox Width="300" materialDesign:HintAssist.Hint="Search thread by name / description" Text="{Binding RMLFilter,UpdateSourceTrigger=PropertyChanged,Delay=500}"></TextBox> </StackPanel> </Grid> <Grid DockPanel.Dock="Bottom"> @@ -66,7 +69,7 @@ </StackPanel> </Grid> - <StackPanel Orientation="Horizontal" Margin="0 40 0 0"> + <StackPanel Orientation="Horizontal" Margin="0 40 0 0" Visibility="{Binding Converter={StaticResource IsLiteToVisibilityInverseConverter}}"> <Button Command="{Binding ImportRMLFileCommand}" Foreground="{StaticResource BlackForegroundBrush}" FontSize="16" Style="{StaticResource emptyButton}" Cursor="Hand"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="FileImport" VerticalAlignment="Center" Width="30" Height="30" /> @@ -112,7 +115,7 @@ </Style> </controls:DoubleClickDataGrid.CellStyle> <DataGrid.Columns> - <DataGridTemplateColumn Header="NAME" Width="220"> + <DataGridTemplateColumn Header="NAME" Width="420"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel> @@ -124,16 +127,19 @@ </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> + <DataGridTextColumn Header="MACHINE TYPE" Binding="{Binding MachineType,Converter={StaticResource EnumToDescriptionConverter}}" Width="Auto" /> <DataGridTextColumn Header="Dyeing speed" Width="Auto" Binding="{Binding DyeingSpeed}"></DataGridTextColumn> <DataGridTextColumn Header="Zone1 ink uptake" Width="Auto" Binding="{Binding Zone1InkUptake}"></DataGridTextColumn> <DataGridTextColumn Header="Zone2 ink uptake" Width="Auto" Binding="{Binding Zone2InkUptake}"></DataGridTextColumn> <!--<DataGridTextColumn Header="HEAD" Binding="{Binding HeadType}" Width="Auto" />--> <!--<DataGridTextColumn Header="BTSR" Binding="{Binding Btsr}" Width="Auto" />--> <DataGridTextColumn Header="CCT" Binding="{Binding CCT}" Width="Auto" /> + <DataGridTextColumn Header="DEFAULT FACTOR" Binding="{Binding DefaultLiquidFactor}" Width="Auto" /> <!--<DataGridTextColumn Header="CL GR" Binding="{Binding UseGradients,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />--> <!--<DataGridTextColumn Header="LIGHT INKS" Binding="{Binding UseLightInks,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />--> + + <DataGridTextColumn Header="LAST UPDATED" Binding="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" /> - <DataGridTextColumn Header="MACHINE TYPE" Binding="{Binding MachineType,Converter={StaticResource EnumToDescriptionConverter}}" Width="Auto" /> <!--<DataGridTemplateColumn Header="LIQUID FACTORS" Width="1*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs index f581988f7..967aca679 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a Blower controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(16)] + [TechItem(16, true)] public class BlowerItem : TechItem { public event EventHandler<bool> SetCommandClicked; @@ -114,7 +114,7 @@ namespace Tango.MachineStudio.Technician.TechItems SetCommand = new RelayCommand(() => { SetCommandClicked?.Invoke(this, _isActive); }); - ToggleActiveCommand = new RelayCommand(() => + ToggleActiveCommand = new RelayCommand(() => { SetCommandClicked?.Invoke(this, _isActive); }); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs index 4a0d1c9c9..4b8c140f4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs @@ -15,7 +15,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a BreakSensor controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(17)] + [TechItem(17, false)] public class BreakSensorItem : TechItem { private static List<HardwareBreakSensor> _BreakSensorConfigurations; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs index 2d8763f74..dcdc79d4e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs @@ -15,7 +15,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a single component value controller and monitor. /// </summary> /// <seealso cref="TechItem" /> - [TechItem(10)] + [TechItem(10, true)] public class ControllerItem : TechItem { public event EventHandler SetCommandClicked; @@ -157,7 +157,7 @@ namespace Tango.MachineStudio.Technician.TechItems cloned.OptimalRangeMinimum = OptimalRangeMinimum; cloned.OptimalRangeMaximum = OptimalRangeMaximum; cloned.IsSetToDefault = IsSetToDefault; - + return cloned; } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs index 1115c6dbf..ffcae21f0 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a dancer controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(15)] + [TechItem(15, false)] public class DancerItem : TechItem { private static List<HardwareDancer> _dancerConfigurations; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalInItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalInItem.cs index bf06aae95..f920ae1e7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalInItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalInItem.cs @@ -14,7 +14,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a digital input pin item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(0)] + [TechItem(0, false)] public class DigitalInItem : TechItem { private TechIo _techIo; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalOutItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalOutItem.cs index 42d5afe0a..4321597d3 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalOutItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DigitalOutItem.cs @@ -14,7 +14,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a digital output pin item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(1)] + [TechItem(1, true)] public class DigitalOutItem : TechItem { /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs index d3cd9622f..7fec34242 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs @@ -15,7 +15,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a dispenser controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(8)] + [TechItem(8, true)] public class DispenserItem : TechItem { /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs index d419127c5..dbea885fd 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/HeaterItem.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a heater controller. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(10)] + [TechItem(10, true)] public class HeaterItem : TechItem { public event Action SetCommandClicked; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs index 3443c008e..68a101b2f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs @@ -13,7 +13,7 @@ using Tango.SharedUI.Helpers; namespace Tango.MachineStudio.Technician.TechItems { - [TechItem(21)] + [TechItem(21,false)] public class JobRunnerItem : TechItem { public event Action StartJob; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MeterItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MeterItem.cs index 1eb5469d7..a42f6dace 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MeterItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MeterItem.cs @@ -15,7 +15,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents an analog style VU meter item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(3)] + [TechItem(3, true)] public class MeterItem : TechItem { private TechMonitor _techMonitor; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorItem.cs index 5c302e969..f475876f5 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorItem.cs @@ -14,7 +14,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents an analog style integer monitor item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(2)] + [TechItem(2, true)] public class MonitorItem : TechItem { private String _format; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorRecorderItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorRecorderItem.cs index 321d87632..90f7a6653 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorRecorderItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MonitorRecorderItem.cs @@ -14,7 +14,7 @@ using Tango.SharedUI.Helpers; namespace Tango.MachineStudio.Technician.TechItems { - [TechItem(25)] + [TechItem(25, true)] public class MonitorRecorderItem : TechItem { private DispatcherTimer _timer; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs index a5288e6bc..40d071a4d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs @@ -17,7 +17,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a motors group item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(7)] + [TechItem(7, true)] public class MotorGroupItem : TechItem { /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs index c097a0b7b..9bb7a7f19 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a motor controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(6)] + [TechItem(6, true)] public class MotorItem : TechItem { /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MultiGraphItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MultiGraphItem.cs index 1412175a0..f514e9096 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MultiGraphItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MultiGraphItem.cs @@ -19,7 +19,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a multi channel real-time graph item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(5)] + [TechItem(5, true)] public class MultiGraphItem : TechItem { private DispatcherTimer _timer; @@ -190,7 +190,7 @@ namespace Tango.MachineStudio.Technician.TechItems Description = "Multi channel real-time graph"; Image = ResourceHelper.GetImageFromResources("Images/multi-graph.png"); - ClearCommand = new RelayCommand(() => + ClearCommand = new RelayCommand(() => { if (Editor != null) { @@ -214,7 +214,7 @@ namespace Tango.MachineStudio.Technician.TechItems { if (Editor != null) { - var controller = Editor.InnerGraph.Controller as WpfGraphController<TimeSpanDataPoint,DoubleDataPoint>; + var controller = Editor.InnerGraph.Controller as WpfGraphController<TimeSpanDataPoint, DoubleDataPoint>; controller.Range.MaximumX = new TimeSpanDataPoint(TimeSpan.FromSeconds(_duration)); controller.Range.MinimumY = new DoubleDataPoint(_min); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs index 70ecc1a70..95aeb929a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a PID controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(12)] + [TechItem(12, false)] public class PidItem : TechItem { private static List<HardwarePidControl> _pidConfigurations; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs index 5e6bffa82..9c1361b24 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs @@ -18,7 +18,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a process parameters table item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(20)] + [TechItem(20, false)] public class ProcessParametersItem : TechItem { public static ObservableCollection<ProcessParametersTable> ProcessParametersTables { get; set; } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SingleGraphItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SingleGraphItem.cs index 8ccd5e718..50a95be12 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SingleGraphItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SingleGraphItem.cs @@ -21,7 +21,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a single channel real-time graph item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(4)] + [TechItem(4, true)] public class SingleGraphItem : TechItem { private DispatcherTimer _timer; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs index e43a518c1..6ca947157 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a SpeedSensor controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(15)] + [TechItem(15, false)] public class SpeedSensorItem : TechItem { private static List<HardwareSpeedSensor> _SpeedSensorConfigurations; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs index 95b36eb70..d1248f914 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs @@ -12,6 +12,8 @@ using Tango.Core.Helpers; using Tango.BL.Entities; using System.Reflection; using Tango.BL; +using Tango.Core.DI; +using Tango.MachineStudio.Common.Buid; namespace Tango.MachineStudio.Technician.TechItems { @@ -254,7 +256,9 @@ namespace Tango.MachineStudio.Technician.TechItems { List<TechItem> items = new List<TechItem>(); - foreach (var type in typeof(TechItem).Assembly.GetTypes().Where(x => typeof(TechItem).IsAssignableFrom(x) && !x.IsAbstract).OrderBy(x => x.GetCustomAttribute<TechItemAttribute>().Index)) + var buildProvder = TangoIOC.Default.GetInstance<IBuildProvider>(); + + foreach (var type in typeof(TechItem).Assembly.GetTypes().Where(x => typeof(TechItem).IsAssignableFrom(x) && !x.IsAbstract).Where(x => x.GetCustomAttribute<TechItemAttribute>().SupportsLite || buildProvder.BuildType == MSBuildType.Default).OrderBy(x => x.GetCustomAttribute<TechItemAttribute>().Index)) { items.Add(Activator.CreateInstance(type) as TechItem); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItemAttribute.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItemAttribute.cs index fafd00954..3011f5907 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItemAttribute.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItemAttribute.cs @@ -17,13 +17,16 @@ namespace Tango.MachineStudio.Technician.TechItems /// </summary> public int Index { get; set; } + public bool SupportsLite { get; set; } + /// <summary> /// Initializes a new instance of the <see cref="TechItemAttribute"/> class. /// </summary> /// <param name="index">The index.</param> - public TechItemAttribute(int index) + public TechItemAttribute(int index, bool supportsLite) { Index = index; + SupportsLite = supportsLite; } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TextItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TextItem.cs index 939809504..8450901a6 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TextItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TextItem.cs @@ -8,7 +8,7 @@ using Tango.SharedUI.Helpers; namespace Tango.MachineStudio.Technician.TechItems { - [TechItem(25)] + [TechItem(25,true)] public class TextItem : TechItem { private String _text; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ThreadMotionItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ThreadMotionItem.cs index a5789377f..42ad80c2e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ThreadMotionItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ThreadMotionItem.cs @@ -13,7 +13,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a thread motion controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(9)] + [TechItem(9, true)] public class ThreadMotionItem : TechItem { /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ValveItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ValveItem.cs index e2f01565a..9372baaca 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ValveItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ValveItem.cs @@ -12,7 +12,7 @@ using Tango.SharedUI.Helpers; namespace Tango.MachineStudio.Technician.TechItems { - [TechItem(10)] + [TechItem(10, false)] public class ValveItem : TechItem { /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs index 2df2d7ad7..51444dcad 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Represents a winder controller item. /// </summary> /// <seealso cref="Tango.MachineStudio.Technician.TechItems.TechItem" /> - [TechItem(14)] + [TechItem(14, false)] public class WinderItem : TechItem { private static List<HardwareWinder> _winderConfigurations; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml index 06e0a59fa..e52129de4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml @@ -15,6 +15,7 @@ xmlns:items="clr-namespace:Tango.MachineStudio.Technician.TechItems" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:localConverters="clr-namespace:Tango.MachineStudio.Technician.Converters" + xmlns:commonConverters="clr-namespace:Tango.MachineStudio.Common.Converters;assembly=Tango.MachineStudio.Common" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Tango.MachineStudio.Technician.Views" mc:Ignorable="d" @@ -24,6 +25,8 @@ <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" /> <converters:NumberToFileSizeConverter x:Key="NumberToFileSizeConverter" /> <localConverters:SecondsToTimeSpanConverter x:Key="SecondsToTimeSpanConverter" /> + <commonConverters:IsLiteToVisibilityInverseConverter x:Key="IsLiteToVisibilityInverseConverter" /> + <commonConverters:IsLiteToVisibilityConverter x:Key="IsLiteToVisibilityConverter" /> <DataTemplate x:Key="TabTemplate"> <Border IsVisibleChanged="Border_IsVisibleChanged"> @@ -231,7 +234,7 @@ </MenuItem> </MenuItem> <MenuItem Header="Tools"> - <MenuItem Header="Upload partial hardware configuration" Command="{Binding UploadPartialHardwareConfigurationCommand}"> + <MenuItem Visibility="{Binding Converter={StaticResource IsLiteToVisibilityInverseConverter}}" Header="Upload partial hardware configuration" Command="{Binding UploadPartialHardwareConfigurationCommand}"> <MenuItem.Icon> <fa:ImageAwesome Icon="Upload" Width="16" Foreground="{StaticResource MainWindow.Foreground}"/> </MenuItem.Icon> @@ -283,7 +286,7 @@ </Menu> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0 0 5 10" Height="40"> + <StackPanel Visibility="{Binding Converter={StaticResource IsLiteToVisibilityInverseConverter}}" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0 0 5 10" Height="40"> <Button Height="Auto" Margin="0 0 10 0" FontSize="12" Command="{Binding ResetHardwareConfigurationCommand}" ToolTip="Reset all visual elements to the hardware configuration defined for the current machine"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Margin="0 0 2 0" Width="24" Height="24" Kind="Refresh"/> |
