diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-10-13 08:20:23 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-10-13 08:20:23 +0300 |
| commit | 9c59f5be697bd0a1a7992239a3701dd7670747ec (patch) | |
| tree | 3d13fd0a9ad11431414c630b827973c983ab91d3 /Software/Visual_Studio | |
| parent | 28f7a6f566c4e951d3d40c449813fce0c7460ca7 (diff) | |
| download | Tango-9c59f5be697bd0a1a7992239a3701dd7670747ec.tar.gz Tango-9c59f5be697bd0a1a7992239a3701dd7670747ec.zip | |
Implemented ink waste cartridge filling emptying progress.
Diffstat (limited to 'Software/Visual_Studio')
12 files changed, 408 insertions, 30 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Images/cl-full.png b/Software/Visual_Studio/PPC/Tango.PPC.Common/Images/cl-full.png Binary files differnew file mode 100644 index 000000000..5aaea8e6c --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Images/cl-full.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Images/lubricant2.png b/Software/Visual_Studio/PPC/Tango.PPC.Common/Images/lubricant2.png Binary files differnew file mode 100644 index 000000000..554c16305 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Images/lubricant2.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Colors.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Colors.xaml index 03f4b6f36..5fdbcf5f8 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Colors.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Colors.xaml @@ -2,6 +2,17 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Tango.PPC.Common.Resources"> + <BitmapImage x:Key="TangoImageLubricant" UriSource="../Images/lubricant2.png" /> + <BitmapImage x:Key="TangoImageCleaner" UriSource="../Images/cl-full.png" /> + <SolidColorBrush x:Key="TangoBlackInkBrush" Color="Black" /> + <SolidColorBrush x:Key="TangoMagentaInkBrush" Color="#ED008C" /> + <SolidColorBrush x:Key="TangoCyanInkBrush" Color="#1662EB" /> + <SolidColorBrush x:Key="TangoYellowInkBrush" Color="#E8FF0C" /> + <SolidColorBrush x:Key="TangoWasteBrush" Color="#2BA221" /> + <SolidColorBrush x:Key="TangoTransparentInkBrush" Color="#E9E9E9" /> + <SolidColorBrush x:Key="TangoLubricantBrush" Color="#DEDAC4" /> + <SolidColorBrush x:Key="TangoCleanerBrush" Color="#8BEC83" /> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj index 87b322f04..2e0c6843e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj @@ -479,6 +479,10 @@ <ItemGroup> <None Include="Resources\tap.png" /> </ItemGroup> + <ItemGroup> + <Resource Include="Images\cl-full.png" /> + <Resource Include="Images\lubricant2.png" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" /> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> @@ -489,7 +493,7 @@ </Target> <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/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs index 2bb4e9286..65df72878 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs @@ -3,11 +3,16 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media; using System.Windows.Threading; +using Tango.Core; using Tango.Core.Commands; using Tango.Core.DI; using Tango.Integration.Operation; +using Tango.PMR.IFS; using Tango.PPC.Common; +using Tango.PPC.Common.Connection; using Tango.PPC.Common.Modules; using Tango.PPC.Common.Navigation; using Tango.PPC.UI.Views; @@ -31,6 +36,86 @@ namespace Tango.PPC.UI.ViewModels [TangoInject] public IPPCModuleLoader ModuleLoader { get; set; } + #region Classes + + public class CartridgeModel : ExtendedObject + { + private IMachineProvider _machineProvider; + + public CartridgeStatus Status { get; set; } + + public bool InProgress + { + get { return Status.State == CartridgeState.Filling || Status.State == CartridgeState.Emptying; } + } + + public String Message + { + get { return Status.Cartridge.Slot == PMR.Diagnostics.CartridgeSlot.Ink ? "Ink filling is in progress..." : "Waste emptying is in progress..."; } + } + + public Brush Brush + { + get + { + if (Status.Cartridge.Slot == PMR.Diagnostics.CartridgeSlot.Ink) + { + try + { + int index = Status.Cartridge.Index; + + var idsPack = _machineProvider.Machine.Configuration.IdsPacks.FirstOrDefault(x => x.PackIndex == index); + + if (idsPack != null) + { + switch (idsPack.LiquidType.Type) + { + case BL.Enumerations.LiquidTypes.Cyan: + return Application.Current.Resources["TangoCyanInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.Magenta: + return Application.Current.Resources["TangoMagentaInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.Yellow: + return Application.Current.Resources["TangoYellowInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.Black: + return Application.Current.Resources["TangoBlackInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.Lubricant: + return Application.Current.Resources["TangoLubricantBrush"] as Brush; + case BL.Enumerations.LiquidTypes.Cleaner: + return Application.Current.Resources["TangoCleanerBrush"] as Brush; + case BL.Enumerations.LiquidTypes.TransparentInk: + return Application.Current.Resources["TangoTransparentInkBrush"] as Brush; + } + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error generating ink filling brush."); + } + + return Application.Current.Resources["TangoPrimaryAccentBrush"] as Brush; + } + else + { + return Application.Current.Resources["TangoWasteBrush"] as Brush; + } + } + } + + public CartridgeModel(IMachineProvider machineProvider) + { + _machineProvider = machineProvider; + Status = new CartridgeStatus(); + } + + public void Invalidate() + { + RaisePropertyChanged(nameof(InProgress)); + RaisePropertyChanged(nameof(Status)); + } + } + + #endregion + #region Properties private bool _isMenuOpened; @@ -74,6 +159,23 @@ namespace Tango.PPC.UI.ViewModels set { _isPowerOpened = value; RaisePropertyChangedAuto(); } } + private bool _isInkFillingOrWasteEmptying; + /// <summary> + /// Gets or sets a value indicating whether ink filling or waste emptying is active. + /// </summary> + public bool IsInkFillingOrWasteEmptying + { + get { return _isInkFillingOrWasteEmptying; } + set { _isInkFillingOrWasteEmptying = value; RaisePropertyChangedAuto(); } + } + + private List<CartridgeModel> _cartridges; + public List<CartridgeModel> Cartridges + { + get { return _cartridges; } + set { _cartridges = value; RaisePropertyChangedAuto(); } + } + #endregion #region Commands @@ -312,6 +414,34 @@ namespace Tango.PPC.UI.ViewModels { base.OnApplicationStarted(); MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted; + MachineProvider.MachineOperator.InkFillingStatusChanged += MachineOperator_InkFillingStatusChanged; + } + + private void MachineOperator_InkFillingStatusChanged(object sender, InkFillingStatusChangedEventArgs e) + { + if (Cartridges == null) + { + Cartridges = MachineProvider.MachineOperator.InkFillingStatus.CartridgesStatuses.Select(x => new CartridgeModel(MachineProvider) { Status = x }).ToList(); + } + else + { + foreach (var cartridgeStatus in e.Status.CartridgesStatuses) + { + var model = Cartridges.SingleOrDefault(x => x.Status == cartridgeStatus); + + if (model != null) + { + model.Status = cartridgeStatus; + } + } + } + + foreach (var cartridgeModel in Cartridges) + { + cartridgeModel.Invalidate(); + } + + IsInkFillingOrWasteEmptying = Cartridges.Any(x => x.Status.State == CartridgeState.Filling || x.Status.State == CartridgeState.Emptying); } /// <summary> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml index d428b1aba..8b701156a 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml @@ -325,6 +325,21 @@ </DockPanel> </Border> + <Border Margin="0 0 0 0" DockPanel.Dock="Top" Visibility="{Binding IsInkFillingOrWasteEmptying,Converter={StaticResource BooleanToVisibilityConverter}}"> + <ItemsControl ItemsSource="{Binding Cartridges}"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border Margin="0 5 0 0" Visibility="{Binding InProgress,Converter={StaticResource BooleanToVisibilityConverter}}"> + <StackPanel> + <TextBlock Margin="5 0 0 0" Text="{Binding Message,Mode=OneWay}" FontSize="{StaticResource TangoSmallFontSize}"></TextBlock> + <touch:TouchProgressBar Foreground="{Binding Brush,Mode=OneWay}" Background="#DBDBDB" Height="3" Margin="0 2 0 0" Minimum="0" Maximum="100" Value="{Binding Status.ProgressPercentage}" /> + </StackPanel> + </Border> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Border> + <Grid Background="{StaticResource TangoKeyboardBackground}"> <controls:NavigationControl x:Name="NavigationControl" x:FieldModifier="public" TransitionAlwaysFades="False" TransitionType="Zoom" KeepElementsAttached="False" UseDefferedRendering="True"> <!--MODULES GOES HERE--> diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs index 779e110e8..5276aba8d 100644 --- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs +++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs @@ -240,20 +240,20 @@ namespace Tango.Emulations.Emulators Index = i, Slot = CartridgeSlot.Ink, }, - State = CartridgeState.Exists + State = CartridgeState.Present }); } InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus() { - Cartridge = new Cartridge() { Index = 0, Slot = CartridgeSlot.WasteLower }, - State = CartridgeState.Exists + Cartridge = new Cartridge() { Index = 0, Slot = CartridgeSlot.WasteMiddle }, + State = CartridgeState.Present }); InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus() { - Cartridge = new Cartridge() { Index = 1, Slot = CartridgeSlot.WasteMiddle }, - State = CartridgeState.Exists + Cartridge = new Cartridge() { Index = 1, Slot = CartridgeSlot.WasteLower }, + State = CartridgeState.Present }); } diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs index 8bce840d9..9bd0932e9 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs @@ -25,6 +25,7 @@ using Tango.Integration.Emergency; using Tango.PMR.MachineStatus; using Tango.PMR.ThreadLoading; using Tango.PMR.Power; +using Tango.PMR.IFS; namespace Tango.Integration.Operation { @@ -81,6 +82,11 @@ namespace Tango.Integration.Operation StartThreadLoadingResponse ThreadLoadingStatus { get; } /// <summary> + /// Gets the ink filling status. + /// </summary> + InkFillingStatus InkFillingStatus { get; } + + /// <summary> /// Gets or sets the firmware upgrade mode. /// </summary> FirmwareUpgradeModes FirmwareUpgradeMode { get; set; } @@ -246,6 +252,11 @@ namespace Tango.Integration.Operation event EventHandler<HeadCleaningEndedEventArgs> HeadCleaningEnded; /// <summary> + /// Occurs when the ink filling status has changed. + /// </summary> + event EventHandler<InkFillingStatusChangedEventArgs> InkFillingStatusChanged; + + /// <summary> /// Gets or sets a value indicating whether direct the embedded device to send diagnostics messages. /// </summary> bool EnableDiagnostics { get; set; } @@ -281,6 +292,11 @@ namespace Tango.Integration.Operation bool EnablePowerUpSequence { get; set; } /// <summary> + /// Gets or sets a value indicating whether to enable the ink/waste filling status channel. + /// </summary> + bool EnableInkFillingStatus { get; set; } + + /// <summary> /// Gets the last process parameters table sent to the embedded device. /// </summary> ProcessParametersTable CurrentProcessParameters { get; } diff --git a/Software/Visual_Studio/Tango.Integration/Operation/InkFillingStatusChangedEventArgs.cs b/Software/Visual_Studio/Tango.Integration/Operation/InkFillingStatusChangedEventArgs.cs new file mode 100644 index 000000000..e674dc777 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/Operation/InkFillingStatusChangedEventArgs.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.PMR.IFS; + +namespace Tango.Integration.Operation +{ + public class InkFillingStatusChangedEventArgs : EventArgs + { + public InkFillingStatus Status { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 85034f278..4978a90f3 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -44,6 +44,7 @@ using System.Globalization; using Tango.PMR.Power; using Tango.PMR.ThreadLoading; using Tango.BL.DTO; +using Tango.PMR.IFS; namespace Tango.Integration.Operation { @@ -70,6 +71,7 @@ namespace Tango.Integration.Operation private bool _eventsSent; private bool _debugSent; private bool _machineStatusSent; + private bool _inkFillingStatusSent; private bool _threadLoadingSent; private static RunningJobStatus _last_job_status; private bool _isPowerDownRequestInProgress; @@ -129,6 +131,7 @@ namespace Tango.Integration.Operation JobRunsLogger.Start(); EnableEventsNotification = true; EnableMachineStatusUpdates = true; + EnableInkFillingStatus = true; EnableJobResume = true; LogEmbeddedDebuggingToFile = true; FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; @@ -137,6 +140,7 @@ namespace Tango.Integration.Operation EnableJobLiquidQuantityValidation = true; FailsWithAdapter = true; ContinuousRequestTimeout = TimeSpan.FromSeconds(2); + ResetInkFllingStatus(); } /// <summary> @@ -277,6 +281,11 @@ namespace Tango.Integration.Operation /// </summary> public event EventHandler<HeadCleaningEndedEventArgs> HeadCleaningEnded; + /// <summary> + /// Occurs when the ink filling status has changed. + /// </summary> + public event EventHandler<InkFillingStatusChangedEventArgs> InkFillingStatusChanged; + #endregion #region Properties @@ -354,6 +363,16 @@ namespace Tango.Integration.Operation private set { _machineStatus = value; RaisePropertyChangedAuto(); } } + private InkFillingStatus _inkFillingStatus; + /// <summary> + /// Gets or sets the ink filling status. + /// </summary> + public InkFillingStatus InkFillingStatus + { + get { return _inkFillingStatus; } + private set { _inkFillingStatus = value; RaisePropertyChangedAuto(); } + } + private StartThreadLoadingResponse _threadLoadingStatus; /// <summary> /// Gets the current thread loading status. @@ -499,6 +518,21 @@ namespace Tango.Integration.Operation } } + private bool _enableInkFillingStatus; + public bool EnableInkFillingStatus + { + get { return _enableInkFillingStatus; } + set + { + if (_enableInkFillingStatus != value) + { + _enableInkFillingStatus = value; + RaisePropertyChangedAuto(); + OnEnableInkFillingStatus(value); + } + } + } + private bool _enableAutomaticThreadLoading; /// <summary> /// Gets or sets a value indicating whether to enable automatic thread loading support. @@ -816,6 +850,45 @@ namespace Tango.Integration.Operation } /// <summary> + /// Called when the enable ink filling status has been changed. + /// </summary> + /// <param name="value">if set to <c>true</c> [value].</param> + protected virtual void OnEnableInkFillingStatus(bool value) + { + if (value && State == TransportComponentState.Connected && !_inkFillingStatusSent) + { + var request = new StartInkFillingStatusRequest(); + + bool responseLogged = false; + _inkFillingStatusSent = true; + + SendContinuousRequest<StartInkFillingStatusRequest, StartInkFillingStatusResponse>(request, new TransportContinuousRequestConfig() { ShouldLog = true }).ObserveOn(new NewThreadScheduler()).Subscribe( + (response) => + { + OnInkFillingStatusChanged(response); + + if (!responseLogged) + { + responseLogged = true; + } + }, + (ex) => + { + _inkFillingStatusSent = false; + }, + () => + { + _inkFillingStatusSent = false; + LogManager.Log("Ink filling status response completed!?", LogCategory.Warning); + }); + } + else if (_inkFillingStatusSent) + { + _inkFillingStatusSent = false; + } + } + + /// <summary> /// Called when the enable automatic thread loading has been changed /// </summary> /// <param name="value">if set to <c>true</c> [value].</param> @@ -922,6 +995,60 @@ namespace Tango.Integration.Operation } /// <summary> + /// Called when ink filling status has been changed. + /// </summary> + /// <param name="response">The response.</param> + protected virtual void OnInkFillingStatusChanged(StartInkFillingStatusResponse response) + { + if (response.Status == null || response.Status.CartridgesStatuses == null || response.Status.CartridgesStatuses.Count == 0) return; + + int index = -1; + bool raiseChange = false; + + foreach (var remoteCartridge in response.Status.CartridgesStatuses) + { + index++; + + if (remoteCartridge.Cartridge == null) + { + LogManager.Log($"Remote cartridge arrived with null cartridge at position [{index}] and will be ignored.", LogCategory.Error); + continue; + } + + var localCartridge = InkFillingStatus.CartridgesStatuses.SingleOrDefault(x => x.Cartridge.Index == remoteCartridge.Cartridge.Index && x.Cartridge.Slot == remoteCartridge.Cartridge.Slot); + + if (localCartridge != null) + { + if (localCartridge.State != remoteCartridge.State) + { + localCartridge.State = remoteCartridge.State; + LogManager.Log($"{localCartridge.Cartridge.Slot} Cartridge '{localCartridge.Cartridge.Index}' state changed: '{localCartridge.State}' => '{remoteCartridge.State}'."); + } + + if (remoteCartridge.Cartridge.Tag != null) + { + LogManager.Log($"{localCartridge.Cartridge.Slot} Cartridge '{localCartridge.Cartridge.Index}' Tag arrived:\n{remoteCartridge.Cartridge.Tag.ToJsonString()}"); + } + + localCartridge.Message = remoteCartridge.Message; + localCartridge.ProgressPercentage = remoteCartridge.ProgressPercentage; + + raiseChange = true; + } + else + { + LogManager.Log($"Could not locate local cartridge with slot '{remoteCartridge.Cartridge.Slot}' and index '{remoteCartridge.Cartridge.Index}'.", LogCategory.Error); + } + } + + if (raiseChange) + { + RaisePropertyChanged(nameof(InkFillingStatus)); + InkFillingStatusChanged?.Invoke(this, new InkFillingStatusChangedEventArgs() { Status = InkFillingStatus }); + } + } + + /// <summary> /// Called when the machine state has been changed. /// </summary> /// <param name="state">The state.</param> @@ -1267,6 +1394,7 @@ namespace Tango.Integration.Operation } ResetEvents(); + ResetInkFllingStatus(); await base.Disconnect(); } @@ -1318,6 +1446,7 @@ namespace Tango.Integration.Operation OnEnableEventsNotification(EnableEventsNotification); OnEnableMachineStatusUpdatesChanged(EnableMachineStatusUpdates); OnEnableAutomaticThreadLoadingChanged(EnableAutomaticThreadLoading); + OnEnableInkFillingStatus(EnableInkFillingStatus); if (EnablePowerUpSequence) { @@ -1351,6 +1480,52 @@ namespace Tango.Integration.Operation #region Private Methods + private void ResetInkFllingStatus() + { + if (InkFillingStatus == null) + { + var status = new InkFillingStatus(); + + for (int i = 0; i < 8; i++) + { + status.CartridgesStatuses.Add(new CartridgeStatus() + { + Cartridge = new Cartridge() + { + Index = i, + Slot = CartridgeSlot.Ink, + }, + State = CartridgeState.Absent + }); + } + + status.CartridgesStatuses.Add(new CartridgeStatus() + { + Cartridge = new Cartridge() { Index = 0, Slot = CartridgeSlot.WasteMiddle }, + State = CartridgeState.Absent + }); + + status.CartridgesStatuses.Add(new CartridgeStatus() + { + Cartridge = new Cartridge() { Index = 1, Slot = CartridgeSlot.WasteLower }, + State = CartridgeState.Absent + }); + + InkFillingStatus = status; + } + else + { + foreach (var cartridge in InkFillingStatus.CartridgesStatuses) + { + cartridge.ProgressPercentage = 0; + cartridge.Message = String.Empty; + cartridge.State = CartridgeState.Absent; + } + } + + InkFillingStatusChanged?.Invoke(this, new InkFillingStatusChangedEventArgs() { Status = InkFillingStatus }); + } + private void SaveCachedJobOperation(Job job) { try diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj index 7efd29d0a..591cd282a 100644 --- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj +++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj @@ -121,6 +121,7 @@ <Compile Include="Operation\HeadCleaningHandler.cs" /> <Compile Include="Operation\HeadCleaningStatusChangedEventArgs.cs" /> <Compile Include="Operation\IGradientGenerationConfiguration.cs" /> + <Compile Include="Operation\InkFillingStatusChangedEventArgs.cs" /> <Compile Include="Operation\InsufficientLiquidQuantityException.cs" /> <Compile Include="Operation\JobDescriptionFile.cs" /> <Compile Include="Operation\JobLiquidQuantityCalculationMode.cs" /> @@ -220,7 +221,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.PMR/IFS/CartridgeState.cs b/Software/Visual_Studio/Tango.PMR/IFS/CartridgeState.cs index 815d7b370..6b2daa8f7 100644 --- a/Software/Visual_Studio/Tango.PMR/IFS/CartridgeState.cs +++ b/Software/Visual_Studio/Tango.PMR/IFS/CartridgeState.cs @@ -22,12 +22,13 @@ namespace Tango.PMR.IFS { static CartridgeStateReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChRDYXJ0cmlkZ2VTdGF0ZS5wcm90bxINVGFuZ28uUE1SLklGUyqoAQoOQ2Fy", - "dHJpZGdlU3RhdGUSCAoETm9uZRAAEgoKBkFic2VudBABEgoKBkV4aXN0cxAC", - "EgwKCEluc2VydGVkEAMSCwoHRmlsbGluZxAEEhQKEEZpbGxpbmdDb21wbGV0", - "ZWQQBRIMCghFbXB0eWluZxAGEhUKEUVtcHR5aW5nQ29tcGxldGVkEAcSCQoF", - "RW1wdHkQCBIICgRGdWxsEAkSCQoFRXJyb3IQCkIZChdjb20udHdpbmUudGFu", - "Z28ucG1yLmlmc2IGcHJvdG8z")); + "ChRDYXJ0cmlkZ2VTdGF0ZS5wcm90bxINVGFuZ28uUE1SLklGUyrPAQoOQ2Fy", + "dHJpZGdlU3RhdGUSCAoETm9uZRAAEgoKBkFic2VudBABEgsKB1ByZXNlbnQQ", + "AhIMCghJbnNlcnRlZBADEgkKBUVtcHR5EAQSCAoERnVsbBAFEgkKBUVycm9y", + "EAYSCwoHRmlsbGluZxAKEhQKEEZpbGxpbmdDb21wbGV0ZWQQCxIRCg1GaWxs", + "aW5nRmFpbGVkEAwSDAoIRW1wdHlpbmcQFBIVChFFbXB0eWluZ0NvbXBsZXRl", + "ZBAVEhEKDUVtcHlpbmdGYWlsZWQQFkIZChdjb20udHdpbmUudGFuZ28ucG1y", + "Lmlmc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.IFS.CartridgeState), }, null)); @@ -36,6 +37,9 @@ namespace Tango.PMR.IFS { } #region Enums + /// <summary> + ///OT = One Trigger, meaning, the state should be sent once, then return to a none OT state. + /// </summary> public enum CartridgeState { /// <summary> ///Unspecified. @@ -46,41 +50,49 @@ namespace Tango.PMR.IFS { /// </summary> [pbr::OriginalName("Absent")] Absent = 1, /// <summary> - ///Waste or ink cartridge exists. + ///Waste or ink cartridge present. /// </summary> - [pbr::OriginalName("Exists")] Exists = 2, + [pbr::OriginalName("Present")] Present = 2, /// <summary> - ///Waste or ink cartridge inserted. + ///Waste or ink cartridge inserted. | OT /// </summary> [pbr::OriginalName("Inserted")] Inserted = 3, /// <summary> - ///Ink cartridge is now filling... + ///Waste or ink cartridge is empty. /// </summary> - [pbr::OriginalName("Filling")] Filling = 4, + [pbr::OriginalName("Empty")] Empty = 4, /// <summary> - ///Ink cartridge filing completed. + ///Waste or ink cartridge is full. /// </summary> - [pbr::OriginalName("FillingCompleted")] FillingCompleted = 5, + [pbr::OriginalName("Full")] Full = 5, /// <summary> - ///Waste cartridge is emptying... + ///Waste or ink is in an error state. (unrelated to filling or emptying) /// </summary> - [pbr::OriginalName("Emptying")] Emptying = 6, + [pbr::OriginalName("Error")] Error = 6, /// <summary> - ///Waste cartridge emptying completed. + ///Ink cartridge is now filling... /// </summary> - [pbr::OriginalName("EmptyingCompleted")] EmptyingCompleted = 7, + [pbr::OriginalName("Filling")] Filling = 10, /// <summary> - ///Waste or ink cartridge is empty. + ///Ink cartridge filing completed. | OT /// </summary> - [pbr::OriginalName("Empty")] Empty = 8, + [pbr::OriginalName("FillingCompleted")] FillingCompleted = 11, /// <summary> - ///Waste or ink cartridge is full. + ///Error occurred while ink filling. | OT + /// </summary> + [pbr::OriginalName("FillingFailed")] FillingFailed = 12, + /// <summary> + ///Waste cartridge is emptying... + /// </summary> + [pbr::OriginalName("Emptying")] Emptying = 20, + /// <summary> + ///Waste cartridge emptying completed. | OT /// </summary> - [pbr::OriginalName("Full")] Full = 9, + [pbr::OriginalName("EmptyingCompleted")] EmptyingCompleted = 21, /// <summary> - ///Error occurred while filling or emptying. + ///Error occurred while waste emptying. | OT /// </summary> - [pbr::OriginalName("Error")] Error = 10, + [pbr::OriginalName("EmpyingFailed")] EmpyingFailed = 22, } #endregion |
