summaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/EventDetailsView.xaml
Commit message (Expand)AuthorAgeFilesLines
* Added TransparentComboBoxStyle styleVictoria Plitt2019-08-131-1/+1
* Machine Studio : added configuration for dark /light themeVictoria Plitt2019-08-111-3/+3
* Refactored machine studio for using colors static resources.Victoria Plitt2019-07-281-2/+2
* Implemented job upload using JobDescriptionFile.Roy Ben-Shabat2019-01-091-2/+2
* Added new events !!!Roy Ben-Shabat2019-01-071-2/+2
* Implemented timeline events !Roy Ben-Shabat2018-04-081-0/+93
a> 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362
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
{
    /// <summary>
    /// Represents the main PPC settings.
    /// </summary>
    /// <seealso cref="Tango.Settings.SettingsBase" />
    public class PPCSettings : SettingsBase
    {
        /// <summary>
        /// Gets or sets the state of the application.
        /// </summary>
        public ApplicationStates ApplicationState { get; set; }

        /// <summary>
        /// Gets or sets the machine scanning timeout seconds.
        /// </summary>
        public int MachineScanningTimeoutSeconds { get; set; }

        /// <summary>
        /// Gets or sets the name of the WiFi network to automatically connect to when the application starts.
        /// </summary>
        public String AutoConnectWiFiName { get; set; }

        /// <summary>
        /// Gets or sets the password of the WiFi network to automatically connect to when the application starts.
        /// </summary>
        public String AutoConnectWiFiPassword { get; set; }

        /// <summary>
        /// Gets or sets the embedded COM port if not specified will use auto scanning.
        /// </summary>
        public String EmbeddedComPort { get; set; }

        /// <summary>
        /// Gets or sets the embedded device scanning hint.
        /// </summary>
        public String EmbeddedDeviceHint { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [enable external bridge].
        /// </summary>
        public bool EnableExternalBridge { get; set; }

        /// <summary>
        /// Gets or sets the external bridge password.
        /// </summary>
        public String ExternalBridgePassword { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [enable hot spot].
        /// </summary>
        public bool EnableHotSpot { get; set; }

        /// <summary>
        /// Gets or sets the hot spot password.
        /// </summary>
        public String HotSpotPassword { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable team viewer service.
        /// </summary>
        public bool EnableRemoteAssistance { get; set; }

        /// <summary>
        /// Gets or sets the deployment slot.
        /// </summary>
        public DeploymentSlot DeploymentSlot { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable the watch dog process.
        /// </summary>
        public bool EnableWatchDog { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable the technician mode when the application starts.
        /// </summary>
        public bool EnableTechnicianModeByDefault { get; set; }

        /// <summary>
        /// Gets or sets the job upload strategy.
        /// </summary>
        public JobUploadStrategy JobUploadStrategy { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable gradient generation.
        /// </summary>
        public bool EnableGradientGeneration { get; set; }

        /// <summary>
        /// Gets or sets the gradient generation resolution.
        /// </summary>
        public int GradientGenerationResolution { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable the application lock screen.
        /// </summary>
        public bool EnableLockScreen { get; set; }

        /// <summary>
        /// Gets or sets the lock screen timeout.
        /// </summary>
        public TimeSpan LockScreenTimeout { get; set; }

        /// <summary>
        /// Gets or sets the lock screen password.
        /// </summary>
        public String LockScreenPassword { get; set; }

        /// <summary>
        /// Gets or sets the enable emergency notifications.
        /// </summary>
        public bool EnableEmergencyNotifications { get; set; }

        /// <summary>
        /// Gets or sets the emergency COM port.
        /// </summary>
        public String EmergencyComPort { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable the job liquid quantity validation.
        /// </summary>
        public bool EnableJobLiquidQuantityValidation { get; set; }

        /// <summary>
        /// Gets or sets the job number of units method.
        /// </summary>
        public JobUnitsMethods JobUnitsMethod { get; set; }

        /// <summary>
        /// Gets or sets the loaded RML unique identifier.
        /// </summary>
        public String LoadedRmlGuid { get; set; }

        /// <summary>
        /// Gets or sets the default RML unique identifier.
        /// </summary>
        public String DefaultRmlGuid { get; set; }

        /// <summary>
        /// Gets or sets the default color space unique identifier.
        /// </summary>
        public List<ColorSpaces> SupportedColorSpaces { get; set; }

        /// <summary>
        /// Gets or sets the target job types.
        /// </summary>
        public List<JobTypes> SupportedJobTypes { get; set; }

        /// <summary>
        /// Gets or sets the default spool type unique identifier.
        /// </summary>
        public String DefaultSpoolTypeGuid { get; set; }

        /// <summary>
        /// Gets or sets the default length of the segment.
        /// </summary>
        public int DefaultSegmentLength { get; set; }

        /// <summary>
        /// Gets or sets the previous application version.
        /// </summary>
        public String PreviousApplicationVersion { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether synchronize jobs with twine server.
        /// </summary>
        public bool SynchronizeJobs { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether synchronize diagnostics data.
        /// </summary>
        public bool SynchronizeDiagnostics { get; set; }

        /// <summary>
        /// Gets or sets the synchronization interval.
        /// </summary>
        public TimeSpan SynchronizationInterval { get; set; }

        /// <summary>
        /// Gets or sets the known firmware version.
        /// </summary>
        public String FirmwareVersion { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to display the power up screen.
        /// </summary>
        public bool DisplayPowerUpScreen { get; set; }

        /// <summary>
        /// Gets or sets the power up screen timeout.
        /// </summary>
        public TimeSpan PowerUpScreenTimeout { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to automatically check for software and database (quick) updates.
        /// </summary>
        public bool AutoCheckForUpdates { get; set; }

        /// <summary>
        /// Gets or sets the automatic update check interval.
        /// </summary>
        public TimeSpan AutoUpdateCheckInterval { get; set; }        

        /// <summary>
        /// Gets or sets a value indicating whether to enable the automatic thread loading support.
        /// </summary>
        public bool EnableAutomaticThreadLoading { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to display the thread loading screen.
        /// </summary>
        public bool DisplayAutomaticThreadLoadingScreen { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable embedded debug logs.
        /// </summary>
        public bool EnableEmbeddedDebugLogs { get; set; }

        /// <summary>
        /// Gets or sets the TCP transport adapter write mode.
        /// </summary>
        public TcpTransportAdapterWriteMode TcpTransportAdapterWriteMode { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to expose the external bridge service via SignalR.
        /// </summary>
        public bool EnableExternalBridgeSignalR { get; set; }

        /// <summary>
        /// Gets or sets the name of the exteral bridge SignalR hub.
        /// </summary>
        public String ExternalBridgeSignalRHub { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable the internal remote desktop service.
        /// </summary>
        public bool EnableRemoteDesktop { get; set; }

        /// <summary>
        /// Gets or sets the internal remote desktop service frame rate (1-20).
        /// </summary>
        public int RemoteDesktopFrameRate { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable insights.
        /// </summary>
        public bool InsightsEnabled { get; set; }

        /// <summary>
        /// Gets or sets the insights sampling interval.
        /// </summary>
        public TimeSpan InsightsSamplingInterval { get; set; }

        /// <summary>
        /// Gets or sets the insights storage cleanup interval.
        /// </summary>
        public TimeSpan InsightsStorageCleanupInterval { get; set; }

        /// <summary>
        /// Gets or sets the duration of the insights maximum storage duration.
        /// </summary>
        public TimeSpan InsightsMaxStorageDuration { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to bypass Internet connectivity checks before attempting to perform an update for example.
        /// </summary>
        public bool BypassInternetConnectivityCheck { get; set; }

        /// <summary>
        /// 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.
        /// </summary>
        public String LastDatabaseBackupFile { get; set; }

        /// <summary>
        /// Gets or sets the RMLs lubrication levels.
        /// </summary>
        public List<RmlLubricationLevel> LubricationLevels { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable the raising of the spool replacement dialog.
        /// </summary>
        public bool EnableSpoolReplacementDialog { get; set; }

        /// <summary>
        /// Gets the machine service address.
        /// </summary>
        /// <returns></returns>
        public String GetMachineServiceAddress()
        {
            return DeploymentSlot.ToAddress();
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="PPCSettings"/> class.
        /// </summary>
        public PPCSettings()
        {
            LubricationLevels = new List<RmlLubricationLevel>();
            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<ColorSpaces>();
            SupportedJobTypes = new List<JobTypes>();
            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);

            EnableSpoolReplacementDialog = true;
        }
    }
}