using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; using System.Text; using System.Threading.Tasks; using Tango.BL.Enumerations; using Tango.Integration.Operation; using Tango.Logging; using Tango.PMR.Integration; using Tango.PMR.Printing; using Tango.PPC.Common.Lubrication; using Tango.Settings; using Tango.Transport.Adapters; using Tango.Web; namespace Tango.PPC.Common { /// /// Represents the main PPC settings. /// /// public class PPCSettings : SettingsBase { /// /// Gets or sets the state of the application. /// public ApplicationStates ApplicationState { get; set; } /// /// Gets or sets the machine scanning timeout seconds. /// public int MachineScanningTimeoutSeconds { get; set; } /// /// Gets or sets the name of the WiFi network to automatically connect to when the application starts. /// public String AutoConnectWiFiName { get; set; } /// /// Gets or sets the password of the WiFi network to automatically connect to when the application starts. /// public String AutoConnectWiFiPassword { get; set; } /// /// Gets or sets the embedded COM port if not specified will use auto scanning. /// public String EmbeddedComPort { get; set; } /// /// Gets or sets the embedded device scanning hint. /// public String EmbeddedDeviceHint { get; set; } /// /// Gets or sets a value indicating whether [enable external bridge]. /// public bool EnableExternalBridge { get; set; } /// /// Gets or sets the external bridge password. /// public String ExternalBridgePassword { get; set; } /// /// Gets or sets a value indicating whether [enable hot spot]. /// public bool EnableHotSpot { get; set; } /// /// Gets or sets the hot spot password. /// public String HotSpotPassword { get; set; } /// /// Gets or sets a value indicating whether to enable team viewer service. /// public bool EnableRemoteAssistance { get; set; } /// /// Gets or sets the deployment slot. /// public DeploymentSlot DeploymentSlot { get; set; } /// /// Gets or sets a value indicating whether to enable the watch dog process. /// public bool EnableWatchDog { get; set; } /// /// Gets or sets a value indicating whether to enable the technician mode when the application starts. /// public bool EnableTechnicianModeByDefault { get; set; } /// /// Gets or sets the job upload strategy. /// public JobUploadStrategy JobUploadStrategy { get; set; } /// /// Gets or sets a value indicating whether to enable gradient generation. /// public bool EnableGradientGeneration { get; set; } /// /// Gets or sets the gradient generation resolution. /// public int GradientGenerationResolution { get; set; } /// /// Gets or sets a value indicating whether to enable the application lock screen. /// public bool EnableLockScreen { get; set; } /// /// Gets or sets the lock screen timeout. /// public TimeSpan LockScreenTimeout { get; set; } /// /// Gets or sets the lock screen password. /// public String LockScreenPassword { get; set; } /// /// Gets or sets the enable emergency notifications. /// public bool EnableEmergencyNotifications { get; set; } /// /// Gets or sets the emergency COM port. /// public String EmergencyComPort { get; set; } /// /// Gets or sets a value indicating whether to enable the job liquid quantity validation. /// public bool EnableJobLiquidQuantityValidation { get; set; } /// /// Gets or sets the job number of units method. /// public JobUnitsMethods JobUnitsMethod { get; set; } /// /// Gets or sets the loaded RML unique identifier. /// public String LoadedRmlGuid { get; set; } /// /// Gets or sets the default RML unique identifier. /// public String DefaultRmlGuid { get; set; } /// /// Gets or sets the default color space unique identifier. /// public List SupportedColorSpaces { get; set; } /// /// Gets or sets the target job types. /// public List SupportedJobTypes { get; set; } /// /// Gets or sets the default spool type unique identifier. /// public String DefaultSpoolTypeGuid { get; set; } /// /// Gets or sets the default length of the segment. /// public int DefaultSegmentLength { get; set; } /// /// Gets or sets the previous application version. /// public String PreviousApplicationVersion { get; set; } /// /// Gets or sets a value indicating whether synchronize jobs with twine server. /// public bool SynchronizeJobs { get; set; } /// /// Gets or sets a value indicating whether synchronize diagnostics data. /// public bool SynchronizeDiagnostics { get; set; } /// /// Gets or sets the synchronization interval. /// public TimeSpan SynchronizationInterval { get; set; } /// /// Gets or sets the known firmware version. /// public String FirmwareVersion { get; set; } /// /// Gets or sets a value indicating whether to display the power up screen. /// public bool DisplayPowerUpScreen { get; set; } /// /// Gets or sets the power up screen timeout. /// public TimeSpan PowerUpScreenTimeout { get; set; } /// /// Gets or sets a value indicating whether to automatically check for software and database (quick) updates. /// public bool AutoCheckForUpdates { get; set; } /// /// Gets or sets the automatic update check interval. /// public TimeSpan AutoUpdateCheckInterval { get; set; } /// /// Gets or sets a value indicating whether to enable the automatic thread loading support. /// public bool EnableAutomaticThreadLoading { get; set; } /// /// Gets or sets a value indicating whether to display the thread loading screen. /// public bool DisplayAutomaticThreadLoadingScreen { get; set; } /// /// Gets or sets a value indicating whether to enable embedded debug logs. /// public bool EnableEmbeddedDebugLogs { get; set; } /// /// Gets or sets the TCP transport adapter write mode. /// public TcpTransportAdapterWriteMode TcpTransportAdapterWriteMode { get; set; } /// /// Gets or sets a value indicating whether to expose the external bridge service via SignalR. /// public bool EnableExternalBridgeSignalR { get; set; } /// /// Gets or sets the name of the exteral bridge SignalR hub. /// public String ExternalBridgeSignalRHub { get; set; } /// /// Gets or sets a value indicating whether to enable the internal remote desktop service. /// public bool EnableRemoteDesktop { get; set; } /// /// Gets or sets the internal remote desktop service frame rate (1-20). /// public int RemoteDesktopFrameRate { get; set; } /// /// Gets or sets a value indicating whether to enable insights. /// public bool InsightsEnabled { get; set; } /// /// Gets or sets the insights sampling interval. /// public TimeSpan InsightsSamplingInterval { get; set; } /// /// Gets or sets the insights storage cleanup interval. /// public TimeSpan InsightsStorageCleanupInterval { get; set; } /// /// Gets or sets the duration of the insights maximum storage duration. /// public TimeSpan InsightsMaxStorageDuration { get; set; } /// /// Gets or sets a value indicating whether to bypass Internet connectivity checks before attempting to perform an update for example. /// public bool BypassInternetConnectivityCheck { get; set; } /// /// Gets or sets the last database backup file that was generated before application update. /// If updater utility was successful, this file should be deleted. Otherwise should be restored. /// public String LastDatabaseBackupFile { get; set; } /// /// Gets or sets the RMLs lubrication levels. /// public List LubricationLevels { get; set; } /// /// Gets the machine service address. /// /// public String GetMachineServiceAddress() { return DeploymentSlot.ToAddress(); } /// /// Initializes a new instance of the class. /// public PPCSettings() { LubricationLevels = new List(); JobUploadStrategy = JobUploadStrategy.JobDescriptionFile; EnableGradientGeneration = true; GradientGenerationResolution = 20; MachineScanningTimeoutSeconds = 20; EmbeddedComPort = "COM10"; EmbeddedDeviceHint = "Tango USB Serial Port"; ExternalBridgePassword = "Aa123456"; HotSpotPassword = "Aa123456"; LockScreenTimeout = TimeSpan.FromMinutes(10); LockScreenPassword = "1111"; DeploymentSlot = DeploymentSlot.DEV; EnableWatchDog = true; EnableEmergencyNotifications = true; EmergencyComPort = "COM2"; EnableJobLiquidQuantityValidation = true; JobUnitsMethod = JobUnitsMethods.Device; DefaultSegmentLength = 100; SupportedColorSpaces = new List(); SupportedJobTypes = new List(); PreviousApplicationVersion = "1.0.0.0"; SynchronizeJobs = false; SynchronizeDiagnostics = true; SynchronizationInterval = TimeSpan.FromMinutes(60); FirmwareVersion = "1.0.0.0"; DisplayPowerUpScreen = true; PowerUpScreenTimeout = TimeSpan.FromSeconds(60); AutoCheckForUpdates = true; AutoUpdateCheckInterval = TimeSpan.FromMinutes(30); EnableAutomaticThreadLoading = true; DisplayAutomaticThreadLoadingScreen = true; EnableEmbeddedDebugLogs = true; TcpTransportAdapterWriteMode = TcpTransportAdapterWriteMode.Interval; EnableExternalBridgeSignalR = true; ExternalBridgeSignalRHub = "ExternalBridgeHub"; EnableRemoteDesktop = true; RemoteDesktopFrameRate = 5; BypassInternetConnectivityCheck = false; InsightsEnabled = true; InsightsSamplingInterval = TimeSpan.FromMinutes(1); InsightsMaxStorageDuration = TimeSpan.FromDays(30); InsightsStorageCleanupInterval = TimeSpan.FromMinutes(60); } } }