Advertisement
danineuss

LoggerSettingsManager

Aug 5th, 2021
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.12 KB | None | 0 0
  1. using ExpoMRF4Utility.ExpomRF4;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Threading;
  6. using System.Windows.Forms;
  7.  
  8. namespace ExpoMRF4Utility
  9. {
  10.     public interface IDeviceSettingsWin
  11.     {
  12.         void UpdateWindowParameter();
  13.     }
  14.    
  15.     public interface IDeviceSettings
  16.     {
  17.         void GetLoggerSettings(ILoggerSettings loggerSettings);
  18.     }
  19.  
  20.     public enum LoggerMode
  21.     {
  22.         Normal,
  23.         Calibration
  24.     }
  25.  
  26.     public class LoggerSettings : ILoggerSettings
  27.     {
  28.         public bool DataIsValid { get; set; }
  29.         public int SampleInterval_ms { get; set; }
  30.         public int NumberOfbands { get; set; }
  31.         public MeasurementType MeasurementType { get; set; }
  32.         public LoggerMode LoggerMode { get; set; }
  33.         public List<IBandSettings> BandSettings { get; set; }
  34.  
  35.         public LoggerSettings()
  36.         {
  37.             DataIsValid = false;
  38.             SampleInterval_ms = 0;
  39.             NumberOfbands = 0;
  40.             BandSettings = new List<IBandSettings>();
  41.             MeasurementType = MeasurementType.Logger;
  42.             LoggerMode = LoggerMode.Normal;
  43.         }
  44.  
  45.         public void ValidateLoggerSettings()
  46.         {
  47.             if (NumberOfbands == 0)
  48.                 throw new InvalidLoggerSettings_Exceptions("LoggerSettings: no band settings available!");
  49.  
  50.             if (NumberOfbands > DeviceSettingsWin.CMaxNumberOfLoggerBands)
  51.                 throw new InvalidLoggerSettings_Exceptions("Number of bands exceeds maximum allowed bands!");
  52.  
  53.             if (SampleInterval_ms == 0)
  54.                 throw new InvalidLoggerSettings_Exceptions("Invalid sample interval (\"0\")!");
  55.  
  56.             DataIsValid = true;
  57.         }
  58.     }
  59.  
  60.     public class LoggerSettingsManager
  61.     {
  62.         public LoggerSettings LoggerSettings { get; private set; }
  63.  
  64.         readonly IDeviceSettingsWin _deviceSettingsWin;
  65.         readonly IDeviceSettings _deviceSettings;
  66.         readonly bool _developerMode;
  67.  
  68.         public LoggerSettingsManager(
  69.             IDeviceSettingsWin deviceSettingsWin,
  70.             IDeviceSettings deviceSettings,
  71.             bool developerMode)
  72.         {
  73.             _deviceSettingsWin = deviceSettingsWin;
  74.             _deviceSettings = deviceSettings;
  75.             _developerMode = developerMode;
  76.  
  77.             LoggerSettings = new LoggerSettings();
  78.         }
  79.        
  80.         public void UpdateLoggerSettings(string measurementType)
  81.         {
  82.             if (_developerMode)
  83.                 LoggerSettings.MeasurementType = MeasurementType.Parse(measurementType);
  84.             else
  85.                 LoggerSettings.MeasurementType = MeasurementType.Logger;
  86.        
  87.             try
  88.             {
  89.                 _deviceSettings.GetLoggerSettings(LoggerSettings);
  90.  
  91.                 if (LoggerSettings.DataIsValid)
  92.                     _deviceSettingsWin.UpdateWindowParameter();
  93.             }
  94.             catch (ArgumentException ex)
  95.             {
  96.                 MessageBox.Show("Requesting Data Logger Settings: Packet contained invalid time stamps\n\n" +
  97.                     ex.Message + "\n\n" + ex.StackTrace);
  98.             }
  99.         }
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement