using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing.Printing; using System.IO; using System.IO.Ports; using System.Globalization; namespace GenesisDisplayTool { public partial class GENESIS_DISPLAY_TOOL : Form { private void serialPortCmdMeter1DataReceived(object sender, SerialDataReceivedEventArgs e) { const UInt16 MeterNumber = Constants.Meter1; Byte Data = 0; try { serialPortCmdMeter1.ReadTo("["); //ascii value for 0x5B CommandInterface1.Gp30LastByte = 0; Byte length = (Byte)serialPortCmdMeter1.ReadChar(); RxStringCmd[MeterNumber].Add(length); for (UInt16 i = 0; i < length - 1; i++) { Data = (Byte)serialPortCmdMeter1.ReadByte(); RxStringCmd[MeterNumber].Add(Data); if (Data == GP30Commands.Startbyte && CommandInterface1.Gp30LastByte == GP30Commands.Startbyte) { length++; CommandInterface1.Gp30LastByte = 0; // restart if two consecutive bytes with 0x5B occure } CommandInterface1.Gp30LastByte = Data; } RxStringCmd[MeterNumber] = Gp30.Remove0x5B(RxStringCmd[MeterNumber], GetGlobalCulture()); this.Invoke(new EventHandler(GetReplyCmdMeter1)); this.Invoke(new EventHandler(JsonRxData)); } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "serialPortCmdMeter1DataReceived() failed", $"0x{ex.HResult.ToString("X", this.globalCulture)}", String.Empty); } } private void serialPortCmdMeter2DataReceived(object sender, SerialDataReceivedEventArgs e) { Byte Data = 0; const UInt16 MeterNumber = Constants.Meter2; try { serialPortCmdMeter2.ReadTo("["); //ascii value for 0x5B CommandInterface2.Gp30LastByte = 0; Byte length = (Byte)serialPortCmdMeter2.ReadChar(); RxStringCmd[MeterNumber].Add(length); for (UInt16 i = 0; i < length - 1; i++) { Data = (Byte)serialPortCmdMeter2.ReadByte(); RxStringCmd[MeterNumber].Add(Data); if (Data == GP30Commands.Startbyte && CommandInterface2.Gp30LastByte == GP30Commands.Startbyte) { length++; CommandInterface2.Gp30LastByte = 0; // restart if two consecutive bytes with 0x5B occure } CommandInterface2.Gp30LastByte = Data; } RxStringCmd[MeterNumber] = Gp30.Remove0x5B(RxStringCmd[MeterNumber], GetGlobalCulture()); this.Invoke(new EventHandler(GetReplyCmdMeter2)); this.Invoke(new EventHandler(JsonRxData)); } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "serialPortCmdMeter2DataReceived() failed", $"0x{ex.HResult.ToString("X", this.globalCulture)}", String.Empty); } } private void serialPortCmdMeter3DataReceived(object sender, SerialDataReceivedEventArgs e) { Byte Data = 0; const UInt16 MeterNumber = Constants.Meter3; try { serialPortCmdMeter3.ReadTo("["); //ascii value for 0x5B CommandInterface3.Gp30LastByte = 0; Byte length = (Byte)serialPortCmdMeter3.ReadChar(); RxStringCmd[MeterNumber].Add(length); for (UInt16 i = 0; i < length - 1; i++) { Data = (Byte)serialPortCmdMeter3.ReadByte(); RxStringCmd[Constants.Meter3].Add(Data); if (Data == GP30Commands.Startbyte && CommandInterface3.Gp30LastByte == GP30Commands.Startbyte) { length++; CommandInterface3.Gp30LastByte = 0; // restart if two consecutive bytes with 0x5B occure } CommandInterface3.Gp30LastByte = Data; } RxStringCmd[MeterNumber] = Gp30.Remove0x5B(RxStringCmd[MeterNumber], GetGlobalCulture()); this.Invoke(new EventHandler(GetReplyCmdMeter3)); this.Invoke(new EventHandler(JsonRxData)); } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "serialPortCmdMeter3DataReceived() failed", $"0x{ex.HResult.ToString("X", this.globalCulture)}", String.Empty); } } private void serialPortDataMeter1DataReceived(object sender, SerialDataReceivedEventArgs e) { const UInt16 MeterNumber = Constants.Meter1; try { //RxDataBuffer[MeterNumber] = $"{RxDataBuffer[MeterNumber]}{serialPortDataMeter1.ReadExisting()}"; RxDataBuffer[MeterNumber] = serialPortDataMeter1.ReadLine(); if (!cB_SerialConfigMassLoggingEn.Checked) this.Invoke(new EventHandler(MainLoop)); else this.Invoke(new EventHandler(MainLoopMassLoggingMeter1)); } catch (Exception ex) { InvokeMainloopExceptionsCounter++; ErrorLog.Log(LogErrReason.Exception(), "serialPortDataMeter1DataReceived() failed", $"0x{ex.HResult.ToString("X", this.globalCulture)}", String.Empty); RxDataBuffer[MeterNumber] = String.Empty; } } private void serialPortDataMeter2DataReceived(object sender, SerialDataReceivedEventArgs e) { const UInt16 MeterNumber = Constants.Meter2; try { RxDataBuffer[MeterNumber] = $"{RxDataBuffer[MeterNumber]}{serialPortDataMeter2.ReadExisting()}"; this.Invoke(new EventHandler(MainLoopMassLoggingMeter2)); } catch (Exception ex) { InvokeMainloopExceptionsCounter++; ErrorLog.Log(LogErrReason.Exception(), "serialPortDataMeter2DataReceived() failed", $"0x{ex.HResult.ToString("X", this.globalCulture)}", String.Empty); RxDataBuffer[MeterNumber] = String.Empty; } } private void serialPortDataMeter3DataReceived(object sender, SerialDataReceivedEventArgs e) { const UInt16 MeterNumber = Constants.Meter3; try { RxDataBuffer[MeterNumber] = $"{RxDataBuffer[MeterNumber]}{serialPortDataMeter3.ReadExisting()}"; this.Invoke(new EventHandler(MainLoopMassLoggingMeter3)); } catch (Exception ex) { InvokeMainloopExceptionsCounter++; ErrorLog.Log(LogErrReason.Exception(), "serialPortDataMeter3DataReceived() failed", $"0x{ex.HResult.ToString("X", this.globalCulture)}", String.Empty); RxDataBuffer[MeterNumber] = String.Empty; } } private Boolean SerialPortInhibit(ref SerialPort serialPort, UInt16 portNumber) { Boolean Ok = false; if (serialPort.IsOpen) { btn_SerialCfg_CmdClose.Enabled = false; serialPort.DiscardInBuffer(); serialPort.DiscardOutBuffer(); switch (portNumber) { case Constants.CmdMeter1: serialPort.DataReceived -= serialPortCmdMeter1DataReceived; // remove event break; case Constants.DataMeter1: serialPort.DataReceived -= serialPortDataMeter1DataReceived; // remove event break; case Constants.DataMeter2: serialPort.DataReceived -= serialPortDataMeter2DataReceived; // remove event break; case Constants.DataMeter3: serialPort.DataReceived -= serialPortDataMeter3DataReceived; // remove event break; } for (UInt16 i = 0; i < 5; i++) { serialPort.DiscardInBuffer(); serialPort.DiscardOutBuffer(); } // System.Threading.Thread.Sleep(800); // serialPort2.Dispose(); MessageBox.Show("Serial Port disabled", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); Ok = true; return Ok; } else MessageBox.Show("Serial Port is not open", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } private Boolean SerialPortClose(ref SerialPort serialPort, UInt16 portNumber, out String messageBoxText) { Boolean Ok = false; messageBoxText = String.Empty; if (serialPort.IsOpen == true) { serialPort.DiscardInBuffer(); serialPort.DiscardOutBuffer(); switch (portNumber) { case Constants.CmdMeter1: serialPort.DataReceived -= serialPortCmdMeter1DataReceived; // remove event?? Former serial port1 break; case Constants.CmdMeter2: serialPort.DataReceived -= serialPortCmdMeter2DataReceived; // remove event?? Former serial port1 break; case Constants.CmdMeter3: serialPort.DataReceived -= serialPortCmdMeter3DataReceived; // remove event?? Former serial port1 break; case Constants.DataMeter1: serialPort.DataReceived -= serialPortDataMeter1DataReceived; // remove event?? Former serial port2 break; case Constants.DataMeter2: serialPort.DataReceived -= serialPortDataMeter2DataReceived; // remove event?? Former serial port3 break; case Constants.DataMeter3: serialPort.DataReceived -= serialPortDataMeter3DataReceived; // remove event?? Former serial port4 break; } for (UInt16 i = 0; i < 5; i++) { serialPort.DiscardInBuffer(); serialPort.DiscardOutBuffer(); } // System.Threading.Thread.Sleep(800); serialPort.Close(); Ok = true; return Ok; } else { messageBoxText = "Serial Port is not open"; //MessageBox.Show("Serial Port is not open", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); } return Ok; } private Boolean SerialPortCmdMeter1Open(Boolean massLogging) { Boolean Ok = false; return Ok; } private Boolean SerialPort_CmdMeter2Open(Boolean massLogging) { Boolean Ok = false; String Portname = String.Empty; String Baudrate = String.Empty; String Databits = String.Empty; if (serialPortCmdMeter2.IsOpen == false) { #region Get parameters if (lB_SerialCfgMass_CmdMeter2ComSelect.SelectedItem == null) { MessageBox.Show("No COMPORT selected", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } else Portname = lB_SerialCfgMass_CmdMeter2ComSelect.Text; if ((serialPortDataMeter1.IsOpen && serialPortDataMeter1.PortName == Portname) || (serialPortDataMeter2.IsOpen && serialPortDataMeter2.PortName == Portname) || (serialPortDataMeter3.IsOpen && serialPortDataMeter3.PortName == Portname) || (serialPortCmdMeter1.IsOpen && serialPortCmdMeter1.PortName == Portname) || (serialPortCmdMeter3.IsOpen && serialPortCmdMeter3.PortName == Portname)) { MessageBox.Show("Port is already in use", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } #region Get settings serialPortCmdMeter2 = SerialConfig_CmdMeter2.GetParamsFromGUI(lB_SerialCfgMass_CmdMeter2ComSelect.Text, lB_SerialCfgMass_CmdMeter2Baudrate.Text, lB_SerialCfgMass_CmdMeter2Databits.Text, lB_SerialCfgMass_CmdMeter2Handshake.SelectedIndex, lB_SerialCfgMass_CmdMeter2Parity.SelectedIndex, lB_SerialCfgMass_CmdMeter2Stopbits.SelectedIndex); #endregion #endregion #region Open serial port serialPortCmdMeter2.Open(); #endregion #region SerialPortOpenCheck if (serialPortCmdMeter2.IsOpen == false) { MessageBox.Show("Serial Port could not be opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // -- open serial port successfully -- serialPortCmdMeter2.DataReceived += new SerialDataReceivedEventHandler(serialPortCmdMeter2DataReceived); Ok = true; MessageBox.Show("Serial Port opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } else { serialPortCmdMeter2.DataReceived += serialPortCmdMeter2DataReceived; MessageBox.Show("Serial Port enabled", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); Ok = true; } return Ok; } private Boolean SerialPort_CmdMeter3Open(Boolean massLogging) { Boolean Ok = false; String Portname = String.Empty; String Baudrate = String.Empty; String Databits = String.Empty; if (serialPortCmdMeter3.IsOpen == false) { #region Get parameters if (lB_SerialCfgMass_CmdMeter3ComSelect.SelectedItem == null) { MessageBox.Show("No COMPORT selected", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } else Portname = lB_SerialCfgMass_CmdMeter2ComSelect.Text; if ((serialPortDataMeter1.IsOpen && serialPortDataMeter1.PortName == Portname) || (serialPortDataMeter2.IsOpen && serialPortDataMeter2.PortName == Portname) || (serialPortDataMeter3.IsOpen && serialPortDataMeter3.PortName == Portname) || (serialPortCmdMeter1.IsOpen && serialPortCmdMeter1.PortName == Portname) || (serialPortCmdMeter2.IsOpen && serialPortCmdMeter2.PortName == Portname)) { MessageBox.Show("Port is already in use", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } #region Get parameters serialPortCmdMeter3 = SerialConfig_CmdMeter3.GetParamsFromGUI(lB_SerialCfgMass_CmdMeter3ComSelect.Text, lB_SerialCfgMass_CmdMeter3Baudrate.Text, lB_SerialCfgMass_CmdMeter3Databits.Text, lB_SerialCfgMass_CmdMeter3Handshake.SelectedIndex, lB_SerialCfgMass_CmdMeter3Parity.SelectedIndex, lB_SerialCfgMass_CmdMeter3Stopbits.SelectedIndex); #endregion #endregion #region Open serial port serialPortCmdMeter3.Open(); #endregion #region SerialPortOpenCheck if (serialPortCmdMeter3.IsOpen == false) { MessageBox.Show("Serial Port could not be opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // -- open serial port successfully -- serialPortCmdMeter3.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPortCmdMeter3DataReceived); // Former serial port1 Ok = true; MessageBox.Show("Serial Port opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } else { serialPortCmdMeter3.DataReceived += serialPortCmdMeter3DataReceived; MessageBox.Show("Serial Port enabled", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); Ok = true; } return Ok; } private Boolean SerialPort_DataMeter1Open(Boolean massLogging) { Boolean Ok = false; String Portname = String.Empty; String Baudrate = String.Empty; String Databits = String.Empty; if (serialPortDataMeter1.IsOpen == false) { #region Get parameters if (lB_SerialCfgMass_DataMeter1ComSelect.SelectedItem == null) { MessageBox.Show("No COMPORT selected", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } else { if (massLogging) Portname = lB_SerialCfgMass_DataMeter1ComSelect.Text; else Portname = "COM34";// lB_SerialCfg_DataComSelect.Text; } if ((serialPortCmdMeter1.IsOpen && serialPortCmdMeter1.PortName == Portname) || (serialPortCmdMeter2.IsOpen && serialPortCmdMeter2.PortName == Portname) || (serialPortCmdMeter3.IsOpen && serialPortCmdMeter3.PortName == Portname) || (serialPortDataMeter2.IsOpen && serialPortDataMeter2.PortName == Portname) || (serialPortDataMeter3.IsOpen && serialPortDataMeter3.PortName == Portname)) { MessageBox.Show("Port is already in use", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } if (massLogging) serialPortDataMeter1 = SerialConfig_DataMeter1.GetParamsFromGUI(lB_SerialCfgMass_DataMeter1ComSelect.Text, lB_SerialCfgMass_DataMeter1Baudrate.Text, lB_SerialCfgMass_DataMeter1Databits.Text, lB_SerialCfgMass_DataMeter1Handshake.SelectedIndex, lB_SerialCfgMass_DataMeter1Parity.SelectedIndex, lB_SerialCfgMass_DataMeter1Stopbits.SelectedIndex); // else // serialPortDataMeter1 = SerialConfig_DataMeter1.GetParamsFromGUI(lB_SerialCfg_DataComSelect.Text, String.Empty, String.Empty, String.Empty, 0, 0); #endregion #region Open serial port serialPortCmdMeter1.BaudRate = 115200; serialPortDataMeter1.Open(); #endregion #region SerialPortOpenCheck if (serialPortDataMeter1.IsOpen == false) { MessageBox.Show("Serial Port could not be opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // -- open serial port successfully -- serialPortDataMeter1.DataReceived += new SerialDataReceivedEventHandler(serialPortDataMeter1DataReceived); Ok = true; MessageBox.Show("Serial Port opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } else { MessageBox.Show("Serial Port enabled", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); serialPortDataMeter1.DataReceived += serialPortDataMeter1DataReceived; Ok = true; } return Ok; } private Boolean SerialPort_DataMeter2Open(Boolean massLogging) { Boolean Ok = false; String Portname = String.Empty; String Baudrate = String.Empty; String Databits = String.Empty; if (serialPortDataMeter2.IsOpen == false) { #region Get parameters if (lB_SerialCfgMass_DataMeter2ComSelect.SelectedItem == null) { MessageBox.Show("No COMPORT selected", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } else Portname = lB_SerialCfgMass_DataMeter2ComSelect.Text; if ((serialPortCmdMeter1.IsOpen && serialPortCmdMeter1.PortName == Portname) || (serialPortCmdMeter2.IsOpen && serialPortCmdMeter2.PortName == Portname) || (serialPortCmdMeter3.IsOpen && serialPortCmdMeter3.PortName == Portname) || (serialPortDataMeter1.IsOpen && serialPortDataMeter1.PortName == Portname) || (serialPortDataMeter3.IsOpen && serialPortDataMeter3.PortName == Portname)) { MessageBox.Show("Port is already in use", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } if (massLogging) serialPortDataMeter2 = SerialConfig_DataMeter2.GetParamsFromGUI(lB_SerialCfgMass_DataMeter2ComSelect.Text, lB_SerialCfgMass_DataMeter2Baudrate.Text, lB_SerialCfgMass_DataMeter2Databits.Text, lB_SerialCfgMass_DataMeter2Handshake.SelectedIndex, lB_SerialCfgMass_DataMeter2Parity.SelectedIndex, lB_SerialCfgMass_DataMeter2Stopbits.SelectedIndex); #endregion #region Open serial port serialPortDataMeter2.Open(); #endregion #region SerialPortOpenCheck if (serialPortDataMeter2.IsOpen == false) { MessageBox.Show("Serial Port could not be opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // -- open serial port successfully -- serialPortDataMeter2.DataReceived += new SerialDataReceivedEventHandler(serialPortDataMeter2DataReceived); Ok = true; MessageBox.Show("Serial Port opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } else { MessageBox.Show("Serial Port enabled", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); serialPortDataMeter2.DataReceived += serialPortDataMeter2DataReceived; Ok = true; } return Ok; } private Boolean SerialPort_DataMeter3Open(Boolean massLogging) { Boolean Ok = false; String Portname = String.Empty; String Baudrate = String.Empty; String Databits = String.Empty; if (serialPortDataMeter3.IsOpen == false) { #region Get parameters if (lB_SerialCfgMass_DataMeter3ComSelect.SelectedItem == null) { MessageBox.Show("No COMPORT selected", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } else Portname = lB_SerialCfgMass_DataMeter3ComSelect.Text; if ((serialPortCmdMeter1.IsOpen && serialPortCmdMeter1.PortName == Portname) || (serialPortCmdMeter2.IsOpen && serialPortCmdMeter2.PortName == Portname) || (serialPortCmdMeter3.IsOpen && serialPortCmdMeter3.PortName == Portname) || (serialPortDataMeter1.IsOpen && serialPortDataMeter1.PortName == Portname) || (serialPortDataMeter2.IsOpen && serialPortDataMeter2.PortName == Portname)) { MessageBox.Show("Port is already in use", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return Ok; } if (massLogging) serialPortDataMeter3 = SerialConfig_DataMeter3.GetParamsFromGUI(lB_SerialCfgMass_DataMeter3ComSelect.Text, lB_SerialCfgMass_DataMeter3Baudrate.Text, lB_SerialCfgMass_DataMeter3Databits.Text, lB_SerialCfgMass_DataMeter3Handshake.SelectedIndex, lB_SerialCfgMass_DataMeter3Parity.SelectedIndex, lB_SerialCfgMass_DataMeter3Stopbits.SelectedIndex); #endregion #region Open serial port serialPortDataMeter3.Open(); #endregion #region SerialPortOpenCheck if (serialPortDataMeter3.IsOpen == false) { MessageBox.Show("Serial Port could not be opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // -- open serial port successfully -- serialPortDataMeter3.DataReceived += new SerialDataReceivedEventHandler(serialPortDataMeter3DataReceived); Ok = true; MessageBox.Show("Serial Port opened", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } else { MessageBox.Show("Serial Port enabled", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Information); serialPortDataMeter3.DataReceived += serialPortDataMeter3DataReceived; Ok = true; } return Ok; } private void GetSettingsFromFile(String[] listOfComports) { #region Definitions and initializations Int32 ListIndex = 0; String CmdChannelMeter1Comport = String.Empty; String CmdChannelMeter2Comport = String.Empty; String CmdChannelMeter3Comport = String.Empty; String DataChannelMeter1Comport = String.Empty; String DataChannelMeter2Comport = String.Empty; String DataChannelMeter3Comport = String.Empty; String Data = String.Empty; Boolean GetListIndexOk = false; #endregion try { #region Check if file exists if (File.Exists(@"..\OBS_settings.txt")) Data = File.ReadAllText(@"..\OBS_settings.txt"); else { MessageBox.Show("Settings file not found", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } #endregion #region Command channel METER1 // GetReadSettings.CmdMeter1(Data, ref lB_SerialCfg_CmdBaudrate, ref lB_SerialCfg_CmdDatabits, ref CmdChannelMeter1Comport, ref lB_SerialCfg_CmdStopbits, ref lB_SerialCfg_CmdParity, ref lB_SerialCfg_CmdHandshake); GetReadSettings.CmdMeter1(Data, ref lB_SerialCfgMass_CmdMeter1Baudrate, ref lB_SerialCfgMass_CmdMeter1Databits, ref CmdChannelMeter1Comport, ref lB_SerialCfgMass_CmdMeter1Stopbits, ref lB_SerialCfgMass_CmdMeter1Parity, ref lB_SerialCfgMass_CmdMeter1Handshake); ListIndex = GetReadSettings.UartListIndex(listOfComports, CmdChannelMeter1Comport, out GetListIndexOk); if (GetListIndexOk) { lB_SerialCfg_CmdChannel.SelectedIndex = ListIndex; lB_SerialCfgMass_CmdMeter1ComSelect.SelectedIndex = ListIndex; } #endregion #region Data channel meter1 //GetReadSettings.DataMeter1(Data, ref DataChannelMeter1Comport); ListIndex = GetReadSettings.UartListIndex(listOfComports, DataChannelMeter1Comport, out GetListIndexOk); if (GetListIndexOk) { lB_SerialCfg_DataComSelect.SelectedIndex = ListIndex; lB_SerialCfgMass_DataMeter1ComSelect.SelectedIndex = ListIndex; } #endregion #region Command channel meter2 GetReadSettings.CmdMeter2(Data, ref lB_SerialCfgMass_CmdMeter2Baudrate, ref lB_SerialCfgMass_CmdMeter2Databits, ref CmdChannelMeter2Comport, ref lB_SerialCfgMass_CmdMeter2Stopbits, ref lB_SerialCfgMass_CmdMeter2Parity, ref lB_SerialCfgMass_CmdMeter2Handshake); ListIndex = GetReadSettings.UartListIndex(listOfComports, CmdChannelMeter2Comport, out GetListIndexOk); if (GetListIndexOk) lB_SerialCfgMass_CmdMeter2ComSelect.SelectedIndex = ListIndex; #endregion #region Data channel meter2 GetReadSettings.DataMeter2(Data, ref lB_SerialCfgMass_DataMeter2Baudrate, ref lB_SerialCfgMass_DataMeter2Databits, ref DataChannelMeter2Comport, ref lB_SerialCfgMass_DataMeter2Stopbits, ref lB_SerialCfgMass_DataMeter2Parity, ref lB_SerialCfgMass_DataMeter2Handshake); ListIndex = GetReadSettings.UartListIndex(listOfComports, DataChannelMeter2Comport, out GetListIndexOk); if (GetListIndexOk) lB_SerialCfgMass_DataMeter2ComSelect.SelectedIndex = ListIndex; #endregion #region Command channel meter3 GetReadSettings.CmdMeter3(Data, ref lB_SerialCfgMass_CmdMeter3Baudrate, ref lB_SerialCfgMass_CmdMeter3Databits, ref CmdChannelMeter3Comport, ref lB_SerialCfgMass_CmdMeter3Stopbits, ref lB_SerialCfgMass_CmdMeter3Parity, ref lB_SerialCfgMass_CmdMeter3Handshake); ListIndex = GetReadSettings.UartListIndex(listOfComports, CmdChannelMeter3Comport, out GetListIndexOk); if (GetListIndexOk) lB_SerialCfgMass_CmdMeter3ComSelect.SelectedIndex = ListIndex; #endregion #region Data channel meter3 GetReadSettings.DataMeter3(Data, ref lB_SerialCfgMass_DataMeter3Baudrate, ref lB_SerialCfgMass_DataMeter3Databits, ref DataChannelMeter3Comport, ref lB_SerialCfgMass_DataMeter3Stopbits, ref lB_SerialCfgMass_DataMeter3Parity, ref lB_SerialCfgMass_DataMeter3Handshake); ListIndex = GetReadSettings.UartListIndex(listOfComports, DataChannelMeter3Comport,out GetListIndexOk); if (GetListIndexOk) lB_SerialCfgMass_DataMeter3ComSelect.SelectedIndex = ListIndex; #endregion #region Various checkboxes GetReadSettings.Raw(Data, ref cB_Form1LogRawDataEn); // GetReadSettings.Csv(Data, ref cB_Form1LogCsvEn, ref cB_Form1CsvLoggingPath0, ref cB_Form1CsvLoggingPath1, ref cB_Form1CsvLoggingPath2); GetReadSettings.Maingraph(Data, ref lB_Graph_SelectGraph, ref cB_GraphOptionEnPath0, ref cB_GraphOptionEnPath1, ref cB_GraphOptionEnPath2, ref nUD_SettingsXMainGraph, ref nUD_MaingraphNomVal); #endregion #region Std deviation GetReadSettings.StdDeviation(Data, ref nUD_SettingsXrangeStdDevGraph, ref nUD_SettingsStdDev); GetReadSettings.StdDeviationEnPath0(Data, ref cB_StdDev0path0, ref cB_StdDev1path0, ref cB_StdDev2path0, ref cB_StdDev3path0, ref cB_StdDev4path0, ref cB_StdDev5path0, ref cB_StdDev6path0, ref cB_StdDev7path0, ref cB_StdDev3CrossingsPath0, ref cB_StdDev8CrossingsPath0); GetReadSettings.StdDeviationEnPath1(Data, ref cB_StdDev0path1, ref cB_StdDev1path1, ref cB_StdDev2path1, ref cB_StdDev3path1, ref cB_StdDev4path1, ref cB_StdDev5path1, ref cB_StdDev6path1, ref cB_StdDev7path1, ref cB_StdDev3CrossingsPath1, ref cB_StdDev8CrossingsPath1); GetReadSettings.StdDeviationEnPath2(Data, ref cB_StdDev0path2, ref cB_StdDev1path2, ref cB_StdDev2path2, ref cB_StdDev3path2, ref cB_StdDev4path2, ref cB_StdDev5path2, ref cB_StdDev6path2, ref cB_StdDev7path2, ref cB_StdDev3CrossingsPath2, ref cB_StdDev8CrossingsPath2); #endregion #region Paths GetReadSettings.JsonPath(Data, out JsonDataPath); GetReadSettings.LogDirectory(Data, out DefaultLogDirectory); GetReadSettings.ReportDirectory(Data, out DefaultReportDirectory); GetReadSettings.ImagesDirectory(Data, out DefaultImagesDirectory); GetReadSettings.CsvDirectory(Data, out DefaultCsvDirectory); GetReadSettings.MassLogging(Data, out MassLogging); #endregion #region Splitcounter Boolean UseSplitcounter = false; GetReadSettings.SplitSettings(Data, out UseSplitcounter); cB_Form1UseSplitcounter.Checked = UseSplitcounter; #endregion MaingraphPreviousValue = (Double)nUD_MaingraphNomVal.Value; } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetSettingsFromFile() failed", $"0x{ex.HResult.ToString("X", GetGlobalCulture())}", String.Empty); } } public void WriteSettingsToFile(String FilePath, Boolean massLogging) { #region Prepare data String WriteData = String.Empty; if (massLogging) { WriteData = WriteData + PrepareWriteSettings.SerialSettings("9600", "8", lB_SerialCfgMass_CmdMeter1ComSelect.Text, lB_SerialCfgMass_CmdMeter1Stopbits.Text, lB_SerialCfgMass_CmdMeter1Parity.Text, lB_SerialCfgMass_CmdMeter1Handshake.Text); WriteData = WriteData + PrepareWriteSettings.SerialSettings(lB_SerialCfgMass_DataMeter1Baudrate.Text, lB_SerialCfgMass_DataMeter1Databits.Text, lB_SerialCfgMass_DataMeter1ComSelect.Text, lB_SerialCfgMass_DataMeter1Stopbits.Text, lB_SerialCfgMass_DataMeter1Parity.Text, lB_SerialCfgMass_DataMeter1Handshake.Text); } else { // WriteData = WriteData + PrepareWriteSettings.SerialSettings("9600", "8", lB_SerialCfg_CmdComSelect.Text, lB_SerialCfg_CmdStopbits.Text, lB_SerialCfg_CmdParity.Text, lB_SerialCfg_CmdHandshake.Text); // WriteData = WriteData + PrepareWriteSettings.SerialSettings(lB_SerialCfg_DataBaudrate.Text, lB_SerialCfg_DataDatabits.Text, lB_SerialCfg_DataComSelect.Text, lB_SerialCfg_DataStopbits.Text, lB_SerialCfg_DataParity.Text, ); } WriteData = WriteData + PrepareWriteSettings.Raw(cB_Form1LogRawDataEn.Checked); WriteData = WriteData + PrepareWriteSettings.Maingraph((UInt16)nUD_SettingsXMainGraph.Value,(UInt16)lB_Graph_SelectGraph.SelectedIndex, cB_GraphOptionEnPath0.Checked, cB_GraphOptionEnPath1.Checked, cB_GraphOptionEnPath2.Checked, (Double)nUD_MaingraphNomVal.Value); WriteData = WriteData + PrepareWriteSettings.Password(tBLogOnMeter1.Text); WriteData = WriteData + PrepareWriteSettings.JsonPath(JsonDataPath); WriteData = WriteData + PrepareWriteSettings.StdDeviation((int)nUD_SettingsXrangeStdDevGraph.Value, (int)nUD_SettingsStdDev.Value); WriteData = WriteData + PrepareWriteSettings.StdDeviationEn(cB_StdDev0path0.Checked, cB_StdDev1path0.Checked, cB_StdDev2path0.Checked, cB_StdDev3path0.Checked, cB_StdDev4path0.Checked, cB_StdDev5path0.Checked, cB_StdDev6path0.Checked, cB_StdDev7path0.Checked, cB_StdDev3CrossingsPath0.Checked, cB_StdDev8CrossingsPath0.Checked); WriteData = WriteData + PrepareWriteSettings.StdDeviationEn(cB_StdDev0path1.Checked, cB_StdDev1path1.Checked, cB_StdDev2path1.Checked, cB_StdDev3path1.Checked, cB_StdDev4path1.Checked, cB_StdDev5path1.Checked, cB_StdDev6path1.Checked, cB_StdDev7path1.Checked, cB_StdDev3CrossingsPath1.Checked, cB_StdDev8CrossingsPath1.Checked); WriteData = WriteData + PrepareWriteSettings.StdDeviationEn(cB_StdDev0path2.Checked, cB_StdDev1path2.Checked, cB_StdDev2path2.Checked, cB_StdDev3path2.Checked, cB_StdDev4path2.Checked, cB_StdDev5path2.Checked, cB_StdDev6path2.Checked, cB_StdDev7path2.Checked, cB_StdDev3CrossingsPath2.Checked, cB_StdDev8CrossingsPath2.Checked); WriteData = WriteData + PrepareWriteSettings.LogDirectory(DefaultLogDirectory); WriteData = WriteData + PrepareWriteSettings.ReportDirectory(DefaultReportDirectory); WriteData = WriteData + PrepareWriteSettings.ImagesDirectory(DefaultImagesDirectory); WriteData = WriteData + PrepareWriteSettings.CsvDirectory(DefaultCsvDirectory); WriteData = WriteData + PrepareWriteSettings.MassMode(MassLogging); WriteData = WriteData + PrepareWriteSettings.SerialSettings(lB_SerialCfgMass_CmdMeter2Baudrate.Text, lB_SerialCfgMass_CmdMeter2Databits.Text, lB_SerialCfgMass_CmdMeter2ComSelect.Text, lB_SerialCfgMass_CmdMeter2Stopbits.Text, lB_SerialCfgMass_CmdMeter2Parity.Text, lB_SerialCfgMass_CmdMeter2Handshake.Text); WriteData = WriteData + PrepareWriteSettings.SerialSettings(lB_SerialCfgMass_DataMeter2Baudrate.Text, lB_SerialCfgMass_DataMeter2Databits.Text, lB_SerialCfgMass_DataMeter2ComSelect.Text, lB_SerialCfgMass_DataMeter2Stopbits.Text, lB_SerialCfgMass_DataMeter2Parity.Text, lB_SerialCfgMass_DataMeter2Handshake.Text); WriteData = WriteData + PrepareWriteSettings.SerialSettings(lB_SerialCfgMass_CmdMeter3Baudrate.Text, lB_SerialCfgMass_CmdMeter3Databits.Text, lB_SerialCfgMass_CmdMeter3ComSelect.Text, lB_SerialCfgMass_CmdMeter3Stopbits.Text, lB_SerialCfgMass_CmdMeter3Parity.Text, lB_SerialCfgMass_CmdMeter3Handshake.Text); WriteData = WriteData + PrepareWriteSettings.SerialSettings(lB_SerialCfgMass_DataMeter3Baudrate.Text, lB_SerialCfgMass_DataMeter3Databits.Text, lB_SerialCfgMass_DataMeter3ComSelect.Text, lB_SerialCfgMass_DataMeter3Stopbits.Text, lB_SerialCfgMass_DataMeter3Parity.Text, lB_SerialCfgMass_DataMeter3Handshake.Text); WriteData = WriteData + PrepareWriteSettings.Password(tBLogOnMeter1.Text); WriteData = WriteData + PrepareWriteSettings.Password(tBLogOnMeter1.Text); WriteData = WriteData + PrepareWriteSettings.SplitSettings(cB_Form1UseSplitcounter.Checked); #endregion #region Write settings to file try { File.WriteAllText(FilePath, WriteData); } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "WriteSettingsToFile() failed", "0x" + ex.HResult.ToString("X", GetGlobalCulture()), String.Empty); MessageBox.Show("Serial Port parameters could not be written to file", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error); } #endregion } } public partial class SerialConfig { public String Comport { get; set; } public Int32 Baudrate { get; set; } public Int16 DataBits { get; set; } public Handshake Handshake { get; set; } public Parity Parity { get; set; } public StopBits StopBits { get; set; } public SerialPort GetParamsFromGUI(String comport, String baudrate, String dataBits, int handshake, int parity, int stopbits) { #region Definitions and initializations Int32 Baudrate = 0; Int16 DataBits = 0; SerialPort serialPort = new SerialPort(); #endregion #region Comport this.Comport = comport; if (Int32.TryParse(baudrate, out Baudrate)) this.Baudrate = Baudrate; else this.Baudrate = 9600; #endregion #region Databits if (Int16.TryParse(dataBits, out DataBits)) this.DataBits = DataBits; else this.DataBits = 8; #endregion #region Handshake switch (handshake) { case Constants.ListItem0: this.Handshake = Handshake.None; break; case Constants.ListItem1: this.Handshake = Handshake.RequestToSend; break; case Constants.ListItem2: this.Handshake = Handshake.RequestToSendXOnXOff; break; case Constants.ListItem3: this.Handshake = Handshake.XOnXOff; break; default: this.Handshake = Handshake.None; break; } #endregion #region Parity switch (parity) { case Constants.ListItem0: this.Parity = Parity.None; break; case Constants.ListItem1: this.Parity = Parity.Even; break; case Constants.ListItem2: this.Parity = Parity.Odd; break; case Constants.ListItem3: this.Parity = Parity.Mark; break; case Constants.ListItem4: this.Parity = Parity.Space; break; default: this.Parity = Parity.None; break; } #endregion #region StopBits switch (stopbits) { case Constants.ListItem0: this.StopBits = StopBits.None; break; case 1: this.StopBits = StopBits.One; break; case 2: this.StopBits = StopBits.OnePointFive; break; case 3: this.StopBits = StopBits.Two; break; default: this.StopBits = StopBits.One; break; } #endregion serialPort.PortName = this.Comport; serialPort.BaudRate = this.Baudrate; serialPort.DataBits = this.DataBits; serialPort.Handshake = this.Handshake; serialPort.Parity = this.Parity; serialPort.StopBits = this.StopBits; return serialPort; } public Boolean CheckIfPortInUse(SerialPort port) { Boolean IsUsed = false; if ((this.Comport == port.PortName) && (port.IsOpen)) return true; return IsUsed; } } public static class GetReadSettings { public static String[] PortNames() { String[] data = SerialPort.GetPortNames(); return data; } public static Int32 UartListIndex(String[] listValues, String fileValue, out Boolean Ok) { Int32 UartInList = 0; Ok = false; for (int i = 0; i < listValues.Count(); i++) { if (listValues[i] == fileValue) { UartInList = i; Ok = true; break; } } return UartInList; } public static Boolean CmdMeter1(String inputData, ref ListBox baudRate, ref ListBox dataBits, ref String comSelect, ref ListBox stopBits, ref ListBox parity, ref ListBox handshake) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.CmdMeter1Handshake) { #region Default values baudRate.SetSelected(Constants.ListItem1, true); // 9600 dataBits.SetSelected(Constants.ListItem0, true); // 8 // no default com select! stopBits.SetSelected(Constants.ListItem1, true); // 1 parity.SetSelected(Constants.ListItem0, true); // none handshake.SetSelected(Constants.ListItem0, true); // no #endregion } else { #region Data from file #region Get data String Baudrate = values[Settingsfile.CmdMeter1Baudrate]; String DataBits = values[Settingsfile.CmdMeter1Databits]; comSelect = values[Settingsfile.CmdMeter1Comselect]; String StopBits = values[Settingsfile.CmdMeter1Stopbits]; String Parity = values[Settingsfile.CmdMeter1Parity]; String Handshake = values[Settingsfile.CmdMeter1Handshake]; #endregion #region Baudrate switch (Baudrate) { case "4800": baudRate.SetSelected(Constants.ListItem0, true); break; case "9600": baudRate.SetSelected(Constants.ListItem1, true); break; case "19200": baudRate.SetSelected(Constants.ListItem2, true); break; case "38400": baudRate.SetSelected(Constants.ListItem3, true); break; case "115200": baudRate.SetSelected(Constants.ListItem4, true); break; default: baudRate.SetSelected(Constants.ListItem1, true); break; } #endregion #region Databits switch (DataBits) { case "8": dataBits.SetSelected(Constants.ListItem0, true); break; case "9": dataBits.SetSelected(Constants.ListItem1, true); break; default: dataBits.SetSelected(Constants.ListItem0, true); break; } #endregion #region Stopbits switch (StopBits) { case "None": stopBits.SetSelected(Constants.ListItem0, true); break; case "1": stopBits.SetSelected(Constants.ListItem1, true); break; case "1.5": stopBits.SetSelected(Constants.ListItem2, true); break; case "2": stopBits.SetSelected(Constants.ListItem3, true); break; default: stopBits.SetSelected(Constants.ListItem1, true); break; } #endregion #region Parity switch (Parity) { case "None": parity.SetSelected(Constants.ListItem0, true); break; case "Even": parity.SetSelected(Constants.ListItem1, true); break; case "Odd": parity.SetSelected(Constants.ListItem2, true); break; case "Mark": parity.SetSelected(Constants.ListItem3, true); break; case "Space": parity.SetSelected(Constants.ListItem4, true); break; default: parity.SetSelected(Constants.ListItem0, true); break; } #endregion #region Handshake switch (Handshake) { case "None": handshake.SetSelected(Constants.ListItem0, true); break; case "RTS": handshake.SetSelected(Constants.ListItem1, true); break; case "RTS Xon Xoff":handshake.SetSelected(Constants.ListItem2, true); break; case "Xon Xoff": handshake.SetSelected(Constants.ListItem3, true); break; default: handshake.SetSelected(Constants.ListItem0, true); break; } #endregion #region Set flag Ok = true; #endregion #endregion } } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.CmdChannelMeter1() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean CmdMeter2(String inputData, ref ListBox baudRate, ref ListBox dataBits, ref String comSelect, ref ListBox stopBits, ref ListBox parity, ref ListBox handshake) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.CmdMeter2Handshake) { #region Default values baudRate.SetSelected(Constants.ListItem1, true); // 9600 dataBits.SetSelected(Constants.ListItem0, true); // 8 // no default com select! stopBits.SetSelected(Constants.ListItem1, true); // 1 parity.SetSelected(Constants.ListItem0, true); // none handshake.SetSelected(Constants.ListItem0, true); // no #endregion } else { #region Data from file #region Get data String Baudrate = values[Settingsfile.CmdMeter2Baudrate]; String DataBits = values[Settingsfile.CmdMeter2Databits]; comSelect = values[Settingsfile.CmdMeter2Comselect]; String StopBits = values[Settingsfile.CmdMeter2Stopbits]; String Parity = values[Settingsfile.CmdMeter2Parity]; String Handshake = values[Settingsfile.CmdMeter2Handshake]; #endregion #region Baudrate switch (Baudrate) { case "4800": baudRate.SetSelected(Constants.ListItem0, true); break; case "9600": baudRate.SetSelected(Constants.ListItem1, true); break; case "19200": baudRate.SetSelected(Constants.ListItem2, true); break; case "38400": baudRate.SetSelected(Constants.ListItem3, true); break; case "115200": baudRate.SetSelected(Constants.ListItem4, true); break; default: baudRate.SetSelected(Constants.ListItem1, true); break; } #endregion #region Databits switch (DataBits) { case "8": dataBits.SetSelected(Constants.ListItem0, true); break; case "9": dataBits.SetSelected(Constants.ListItem1, true); break; default: dataBits.SetSelected(Constants.ListItem0, true); break; } #endregion #region Stopbits switch (StopBits) { case "None": stopBits.SetSelected(Constants.ListItem0, true); break; case "1": stopBits.SetSelected(Constants.ListItem1, true); break; case "1.5": stopBits.SetSelected(Constants.ListItem2, true); break; case "2": stopBits.SetSelected(Constants.ListItem3, true); break; default: stopBits.SetSelected(Constants.ListItem1, true); break; } #endregion #region Parity switch (Parity) { case "None": parity.SetSelected(Constants.ListItem0, true); break; case "Even": parity.SetSelected(Constants.ListItem1, true); break; case "Odd": parity.SetSelected(Constants.ListItem2, true); break; case "Mark": parity.SetSelected(Constants.ListItem3, true); break; case "Space": parity.SetSelected(Constants.ListItem4, true); break; default: parity.SetSelected(Constants.ListItem0, true); break; } #endregion #region Handshake switch (Handshake) { case "None": handshake.SetSelected(Constants.ListItem0, true); break; case "RTS": handshake.SetSelected(Constants.ListItem1, true); break; case "RTS Xon Xoff": handshake.SetSelected(Constants.ListItem2, true); break; case "Xon Xoff": handshake.SetSelected(Constants.ListItem3, true); break; default: handshake.SetSelected(Constants.ListItem0, true); break; } #endregion #region Set flag Ok = true; #endregion #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.CmdMeter2() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean CmdMeter3(String inputData, ref ListBox baudRate, ref ListBox dataBits, ref String comSelect, ref ListBox stopBits, ref ListBox parity, ref ListBox handshake) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.CmdMeter3Handshake) { #region Default values baudRate.SetSelected(Constants.ListItem1, true); // 9600 dataBits.SetSelected(Constants.ListItem0, true); // 8 // no default com select! stopBits.SetSelected(Constants.ListItem1, true); // 1 parity.SetSelected(Constants.ListItem0, true); // none handshake.SetSelected(Constants.ListItem0, true); // no #endregion } else { #region Data from file #region Get data String Baudrate = values[Settingsfile.CmdMeter3Baudrate]; String DataBits = values[Settingsfile.CmdMeter3Databits]; comSelect = values[Settingsfile.CmdMeter3Comselect]; String StopBits = values[Settingsfile.CmdMeter3Stopbits]; String Parity = values[Settingsfile.CmdMeter3Parity]; String Handshake = values[Settingsfile.CmdMeter3Handshake]; #endregion #region Baudrate switch (Baudrate) { case "4800": baudRate.SetSelected(Constants.ListItem0, true); break; case "9600": baudRate.SetSelected(Constants.ListItem1, true); break; case "19200": baudRate.SetSelected(Constants.ListItem2, true); break; case "38400": baudRate.SetSelected(Constants.ListItem3, true); break; case "115200": baudRate.SetSelected(Constants.ListItem4, true); break; default: baudRate.SetSelected(Constants.ListItem1, true); break; } #endregion #region Databits switch (DataBits) { case "8": dataBits.SetSelected(Constants.ListItem0, true); break; case "9": dataBits.SetSelected(Constants.ListItem1, true); break; default: dataBits.SetSelected(Constants.ListItem0, true); break; } #endregion #region Stopbits switch (StopBits) { case "None": stopBits.SetSelected(Constants.ListItem0, true); break; case "1": stopBits.SetSelected(Constants.ListItem1, true); break; case "1.5": stopBits.SetSelected(Constants.ListItem2, true); break; case "2": stopBits.SetSelected(Constants.ListItem3, true); break; default: stopBits.SetSelected(Constants.ListItem1, true); break; } #endregion #region Parity switch (Parity) { case "None": parity.SetSelected(Constants.ListItem0, true); break; case "Even": parity.SetSelected(Constants.ListItem1, true); break; case "Odd": parity.SetSelected(Constants.ListItem2, true); break; case "Mark": parity.SetSelected(Constants.ListItem3, true); break; case "Space": parity.SetSelected(Constants.ListItem4, true); break; default: parity.SetSelected(Constants.ListItem0, true); break; } #endregion #region Handshake switch (Handshake) { case "None": handshake.SetSelected(Constants.ListItem0, true); break; case "RTS": handshake.SetSelected(Constants.ListItem1, true); break; case "RTS Xon Xoff": handshake.SetSelected(Constants.ListItem2, true); break; case "Xon Xoff": handshake.SetSelected(Constants.ListItem3, true); break; default: handshake.SetSelected(Constants.ListItem0, true); break; } #endregion #region Set flag Ok = true; #endregion #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.CmdMeter3() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean DataMeter1(String inputData, ref String comSelecte) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.DataMeter1Handshake) { #region Default values //baudRate.SetSelected(Constants.ListItem4, true); // 115200 //dataBits.SetSelected(Constants.ListItem0, true); // 8 //comSelect = String.Empty; //stopBits.SetSelected(Constants.ListItem1, true); // 1 //parity.SetSelected(Constants.ListItem0, true); // none //handshake.SetSelected(Constants.ListItem0, true); // no #endregion } else { #region Data from file #region Get data String Baudrate = values[Settingsfile.DataMeter1Baudrate]; String DataBits = values[Settingsfile.DataMeter1Databits]; //comSelect = values[Settingsfile.DataMeter1Comselect]; String StopBits = values[Settingsfile.DataMeter1Stopbits]; String Parity = values[Settingsfile.DataMeter1Parity]; String Handshake = values[Settingsfile.DataMeter1Handshake]; #endregion #region Baudrate switch (Baudrate) { case "4800": // baudRate.SetSelected(Constants.ListItem0, true); break; case "9600": // baudRate.SetSelected(Constants.ListItem1, true); break; case "19200": // baudRate.SetSelected(Constants.ListItem2, true); break; case "38400": // baudRate.SetSelected(Constants.ListItem3, true); break; case "115200": // baudRate.SetSelected(Constants.ListItem4, true); break; default: // baudRate.SetSelected(Constants.ListItem4, true); break; } #endregion #region Databits switch (DataBits) { case "8": // dataBits.SetSelected(Constants.ListItem0, true); break; case "9": // dataBits.SetSelected(Constants.ListItem1, true); break; default: // dataBits.SetSelected(Constants.ListItem0, true); break; } #endregion #region Stopbits switch(StopBits) { case "None": //stopBits.SetSelected(Constants.ListItem0, true); break; case "1": //stopBits.SetSelected(Constants.ListItem1, true); break; case "1.5": //stopBits.SetSelected(Constants.ListItem2, true); break; case "2": //stopBits.SetSelected(Constants.ListItem3, true); break; default: //stopBits.SetSelected(Constants.ListItem1, true); break; } #endregion #region Parity switch(Parity) { case "None": //parity.SetSelected(Constants.ListItem0, true); break; case "Even": //parity.SetSelected(Constants.ListItem1, true); break; case "Odd": //parity.SetSelected(Constants.ListItem2, true); break; case "Mark": //parity.SetSelected(Constants.ListItem3, true); break; case "Space": //parity.SetSelected(Constants.ListItem4, true); break; default: //parity.SetSelected(Constants.ListItem0, true); break; } #endregion #region Handshake switch(Handshake) { case "None": //handshake.SetSelected(Constants.ListItem0, true); break; case "RTS": //handshake.SetSelected(Constants.ListItem1, true); break; case "RTS Xon Xoff": //handshake.SetSelected(Constants.ListItem2, true); break; case "Xon Xoff": //handshake.SetSelected(Constants.ListItem3, true); break; default: //handshake.SetSelected(Constants.ListItem0, true); break; } #endregion #region Set flag Ok = true; #endregion #endregion } } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.DataMeter1() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean DataMeter2(String inputData, ref ListBox baudRate, ref ListBox dataBits, ref String comSelect, ref ListBox stopBits, ref ListBox parity, ref ListBox handshake) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.DataMeter2Handshake) { #region Default values baudRate.SetSelected(Constants.ListItem4, true); // 115200 dataBits.SetSelected(Constants.ListItem0, true); // 8 comSelect = String.Empty; stopBits.SetSelected(Constants.ListItem1, true); // 1 parity.SetSelected(Constants.ListItem0, true); // none handshake.SetSelected(Constants.ListItem0, true); // no #endregion } else { #region Data from file #region Get data String Baudrate = values[Settingsfile.DataMeter2Baudrate]; String DataBits = values[Settingsfile.DataMeter2Databits]; comSelect = values[Settingsfile.DataMeter2Comselect]; String StopBits = values[Settingsfile.DataMeter2Stopbits]; String Parity = values[Settingsfile.DataMeter2Parity]; String Handshake = values[Settingsfile.DataMeter2Handshake]; #endregion #region Baudrate switch (Baudrate) { case "4800": baudRate.SetSelected(Constants.ListItem0, true); break; case "9600": baudRate.SetSelected(Constants.ListItem1, true); break; case "19200": baudRate.SetSelected(Constants.ListItem2, true); break; case "38400": baudRate.SetSelected(Constants.ListItem3, true); break; case "115200": baudRate.SetSelected(Constants.ListItem4, true); break; default: baudRate.SetSelected(Constants.ListItem4, true); break; } #endregion #region Databits switch (DataBits) { case "8": dataBits.SetSelected(Constants.ListItem0, true); break; case "9": dataBits.SetSelected(Constants.ListItem1, true); break; default: dataBits.SetSelected(Constants.ListItem0, true); break; } #endregion #region Stopbits switch (StopBits) { case "None": stopBits.SetSelected(Constants.ListItem0, true); break; case "1": stopBits.SetSelected(Constants.ListItem1, true); break; case "1.5": stopBits.SetSelected(Constants.ListItem2, true); break; case "2": stopBits.SetSelected(Constants.ListItem3, true); break; default: stopBits.SetSelected(Constants.ListItem1, true); break; } #endregion #region Parity switch (Parity) { case "None": parity.SetSelected(Constants.ListItem0, true); break; case "Even": parity.SetSelected(Constants.ListItem1, true); break; case "Odd": parity.SetSelected(Constants.ListItem2, true); break; case "Mark": parity.SetSelected(Constants.ListItem3, true); break; case "Space": parity.SetSelected(Constants.ListItem4, true); break; default: parity.SetSelected(Constants.ListItem0, true); break; } #endregion #region Handshake switch (Handshake) { case "None": handshake.SetSelected(Constants.ListItem0, true); break; case "RTS": handshake.SetSelected(Constants.ListItem1, true); break; case "RTS Xon Xoff": handshake.SetSelected(Constants.ListItem2, true); break; case "Xon Xoff": handshake.SetSelected(Constants.ListItem3, true); break; default: handshake.SetSelected(Constants.ListItem0, true); break; } #endregion #region Set flag Ok = true; #endregion #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.DataMeter2() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean DataMeter3(String inputData, ref ListBox baudRate, ref ListBox dataBits, ref String comSelect, ref ListBox stopBits, ref ListBox parity, ref ListBox handshake) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.DataMeter3Handshake) { #region Default values baudRate.SetSelected(Constants.ListItem4, true); // 115200 dataBits.SetSelected(Constants.ListItem0, true); // 8 comSelect = String.Empty; stopBits.SetSelected(Constants.ListItem1, true); // 1 parity.SetSelected(Constants.ListItem0, true); // none handshake.SetSelected(Constants.ListItem0, true); // no #endregion } else { #region Data from file #region Get data String Baudrate = values[Settingsfile.DataMeter3Baudrate]; String DataBits = values[Settingsfile.DataMeter3Databits]; comSelect = values[Settingsfile.DataMeter3Comselect]; String StopBits = values[Settingsfile.DataMeter3Stopbits]; String Parity = values[Settingsfile.DataMeter3Parity]; String Handshake = values[Settingsfile.DataMeter3Handshake]; #endregion #region Baudrate switch (Baudrate) { case "4800": baudRate.SetSelected(Constants.ListItem0, true); break; case "9600": baudRate.SetSelected(Constants.ListItem1, true); break; case "19200": baudRate.SetSelected(Constants.ListItem2, true); break; case "38400": baudRate.SetSelected(Constants.ListItem3, true); break; case "115200": baudRate.SetSelected(Constants.ListItem4, true); break; default: baudRate.SetSelected(Constants.ListItem4, true); break; } #endregion #region Databits switch (DataBits) { case "8": dataBits.SetSelected(Constants.ListItem0, true); break; case "9": dataBits.SetSelected(Constants.ListItem1, true); break; default: dataBits.SetSelected(Constants.ListItem0, true); break; } #endregion #region Stopbits switch (StopBits) { case "None": stopBits.SetSelected(Constants.ListItem0, true); break; case "1": stopBits.SetSelected(Constants.ListItem1, true); break; case "1.5": stopBits.SetSelected(Constants.ListItem2, true); break; case "2": stopBits.SetSelected(Constants.ListItem3, true); break; default: stopBits.SetSelected(Constants.ListItem1, true); break; } #endregion #region Parity switch (Parity) { case "None": parity.SetSelected(Constants.ListItem0, true); break; case "Even": parity.SetSelected(Constants.ListItem1, true); break; case "Odd": parity.SetSelected(Constants.ListItem2, true); break; case "Mark": parity.SetSelected(Constants.ListItem3, true); break; case "Space": parity.SetSelected(Constants.ListItem4, true); break; default: parity.SetSelected(Constants.ListItem0, true); break; } #endregion #region Handshake switch (Handshake) { case "None": handshake.SetSelected(Constants.ListItem0, true); break; case "RTS": handshake.SetSelected(Constants.ListItem1, true); break; case "RTS Xon Xoff": handshake.SetSelected(Constants.ListItem2, true); break; case "Xon Xoff": handshake.SetSelected(Constants.ListItem3, true); break; default: handshake.SetSelected(Constants.ListItem0, true); break; } #endregion #region Set flag Ok = true; #endregion #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.DataMeter3() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean Raw(String inputData, ref CheckBox rawLogEn) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.RawLogEnable) { #region Default rawLogEn.Checked = false; #endregion } else { #region Data from file if (values[Settingsfile.RawLogEnable] == "1") rawLogEn.Checked = true; else rawLogEn.Checked = false; #endregion #region Set flags Ok = true; #endregion } } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.Raw() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean Csv(String inputData, ref CheckBox loggingEn, ref CheckBox loggingPath0, ref CheckBox loggingPath1, ref CheckBox loggingPath2) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.CsvLogPath2) { #region Default values loggingEn.Checked = false; loggingPath0.Checked = false; loggingPath1.Checked = false; loggingPath2.Checked = false; #endregion } else { #region Data from file if (values[Settingsfile.CsvLogEnable] == "1") loggingEn.Checked = true; else loggingEn.Checked = false; if (values[Settingsfile.CsvLogPath0] == "1") loggingPath0.Checked = true; else loggingPath0.Checked = false; if (values[Settingsfile.CsvLogPath1] == "1") loggingPath1.Checked = true; else loggingPath1.Checked = false; if (values[Settingsfile.CsvLogPath2] == "1") loggingPath2.Checked = true; else loggingPath2.Checked = false; #endregion #region Set flag Ok = true; #endregion } } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.Csv() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean Maingraph(String inputData, ref ListBox optionSelect, ref CheckBox graphPath0, ref CheckBox graphPath1, ref CheckBox graphPath2, ref NumericUpDown settingsXMainGraph, ref NumericUpDown maingraphNomVal) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); Decimal FlowNominalValue = 0; #endregion if ((values.Count() - 1) < Settingsfile.MaingraphFlowVal) { #region Default values optionSelect.SetSelected(Constants.ListItem0, true); graphPath0.Checked = false; graphPath1.Checked = false; graphPath2.Checked = false; settingsXMainGraph.Value = (Decimal)Constants.MainGraphDefaultXValues; maingraphNomVal.Value = Constants.MainGraphDefaultFlowValue; #endregion } else { #region Settings from file if (Misc.OnlyDecimalInString(values[Settingsfile.ListBoxOption])) optionSelect.SetSelected(int.Parse(values[Settingsfile.ListBoxOption]), true); else optionSelect.SetSelected(Constants.ListItem0, true); // PATH0 if (values[Settingsfile.MaingraphPath0] == "1") graphPath0.Checked = true; else graphPath0.Checked = false; // PATH1 if (values[Settingsfile.MaingraphPath1] == "1") graphPath1.Checked = true; else graphPath1.Checked = false; // PATH2 if (values[Settingsfile.MaingraphPath2] == "1") graphPath2.Checked = true; else graphPath2.Checked = false; // Numeric Up Down - x-Values if (Misc.OnlyDecimalInString(values[Settingsfile.MaingraphXval])) settingsXMainGraph.Value = Decimal.Parse(values[Settingsfile.MaingraphXval]); else settingsXMainGraph.Value = (Decimal)Constants.MainGraphDefaultXValues; // Numeric Up Down - Flow value if (Misc.OnlyDecimalInString(values[Settingsfile.MaingraphFlowVal])) { FlowNominalValue = Decimal.Parse(values[Settingsfile.MaingraphFlowVal]); if (FlowNominalValue == 0) // Zero forbidden FlowNominalValue = FlowNominalValue + 1; maingraphNomVal.Value = FlowNominalValue; } else maingraphNomVal.Value = Constants.MainGraphDefaultFlowValue; #endregion #region Set flag Ok = true; #endregion } } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.Maingraph() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Int32 Password(String inputData, ref RichTextBox password, UInt16 meter) { #region Definitions and initializations Int32 Error = SettingsFileError.Ok; String Data = String.Empty; Boolean IsOnlyHex = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion switch(meter) { case Constants.Meter1: if ((values.Count() - 1) < Settingsfile.Password1) { #region Default values password.Text = String.Empty; Error = SettingsFileError.Length; #endregion } else { #region Get data from file Data = values[Settingsfile.Password1]; IsOnlyHex = Misc.OnlyHexInString(Data); if (IsOnlyHex) { if (Data.Count() <= GP30Parameters.PasswordMaxlength) { password.Text = values[Settingsfile.Password1]; } else { Error = SettingsFileError.Length; password.Text = String.Empty; } } else { password.Text = String.Empty; Error = SettingsFileError.Format; } #endregion } break; case Constants.Meter2: if ((values.Count() - 1) < Settingsfile.Password2) { #region Default values password.Text = String.Empty; Error = SettingsFileError.Length; #endregion } else { #region Get data from file Data = values[Settingsfile.Password2]; IsOnlyHex = Misc.OnlyHexInString(Data); if (IsOnlyHex) { if (Data.Count() <= GP30Parameters.PasswordMaxlength) { password.Text = values[Settingsfile.Password2]; } else { Error = SettingsFileError.Length; password.Text = String.Empty; } } else { password.Text = String.Empty; Error = SettingsFileError.Format; } #endregion } break; case Constants.Meter3: if ((values.Count() - 1) < Settingsfile.Password3) { #region Default values password.Text = String.Empty; Error = SettingsFileError.Length; #endregion } else { #region Get data from file Data = values[Settingsfile.Password3]; IsOnlyHex = Misc.OnlyHexInString(Data); if (IsOnlyHex) { if (Data.Count() <= GP30Parameters.PasswordMaxlength) { password.Text = values[Settingsfile.Password3]; } else { Error = SettingsFileError.Length; password.Text = String.Empty; } } else { password.Text = String.Empty; Error = SettingsFileError.Format; } #endregion } break; } } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.Password() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Error; } public static Boolean JsonPath(String inputData, out String jsonPath) { #region Definitions and initializations Boolean Ok = false; jsonPath = String.Empty; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.JsonPath) { #region Default data jsonPath = String.Empty; #endregion } else { #region Data from file jsonPath = values[Settingsfile.JsonPath]; #endregion #region Set flag Ok = true; #endregion } } catch(Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.JsonPath() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean StdDeviation(String inputData, ref NumericUpDown xRange, ref NumericUpDown numberOfValues) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.StdDeviationValues) { #region Default values xRange.Value = (Decimal)Constants.StdDevGraphDefaultXValues; numberOfValues.Value = (Decimal)Constants.StdDevGraphDefaultElements; #endregion } else { #region Data from file #region Number of display points in graph if (Misc.OnlyDecimalInString(values[Settingsfile.StdDeviationXval])) xRange.Value = Decimal.Parse(values[Settingsfile.StdDeviationXval]); else xRange.Value = (Decimal)Constants.StdDevGraphDefaultXValues; #endregion #region Number of values for calculation if (Misc.OnlyDecimalInString(values[Settingsfile.StdDeviationValues])) numberOfValues.Value = Decimal.Parse(values[Settingsfile.StdDeviationValues]); else numberOfValues.Value = (Decimal)Constants.StdDevGraphDefaultElements; #endregion #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.StdDeviation() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean StdDeviationEnPath0(String inputData, ref CheckBox hit0, ref CheckBox hit1, ref CheckBox hit2, ref CheckBox hit3, ref CheckBox hit4, ref CheckBox hit5, ref CheckBox hit6, ref CheckBox hit7, ref CheckBox threeHits, ref CheckBox eightHits ) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.StdDeviationEn8HitsPath0) { #region Default values hit0.Checked = false; hit1.Checked = false; hit2.Checked = false; hit3.Checked = false; hit4.Checked = false; hit5.Checked = false; hit6.Checked = false; hit7.Checked = false; threeHits.Checked = false; eightHits.Checked = false; #endregion } else { #region Data from file if (values[Settingsfile.StdDeviationEnHit0Path0] == "1") hit0.Checked = true; else hit0.Checked = false; if (values[Settingsfile.StdDeviationEnHit1Path0] == "1") hit1.Checked = true; else hit1.Checked = false; if (values[Settingsfile.StdDeviationEnHit2Path0] == "1") hit2.Checked = true; else hit2.Checked = false; if (values[Settingsfile.StdDeviationEnHit3Path0] == "1") hit3.Checked = true; else hit3.Checked = false; if (values[Settingsfile.StdDeviationEnHit4Path0] == "1") hit4.Checked = true; else hit4.Checked = false; if (values[Settingsfile.StdDeviationEnHit5Path0] == "1") hit5.Checked = true; else hit5.Checked = false; if (values[Settingsfile.StdDeviationEnHit6Path0] == "1") hit6.Checked = true; else hit6.Checked = false; if (values[Settingsfile.StdDeviationEnHit7Path0] == "1") hit7.Checked = true; else hit7.Checked = false; if (values[Settingsfile.StdDeviationEn3HitsPath0] == "1") threeHits.Checked = true; else threeHits.Checked = false; if (values[Settingsfile.StdDeviationEn8HitsPath0] == "1") eightHits.Checked = true; else eightHits.Checked = false; #endregion #region Set file Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.StdDeviationEnPath0() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean StdDeviationEnPath1(String inputData, ref CheckBox hit0, ref CheckBox hit1, ref CheckBox hit2, ref CheckBox hit3, ref CheckBox hit4, ref CheckBox hit5, ref CheckBox hit6, ref CheckBox hit7, ref CheckBox threeHits, ref CheckBox eightHits) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.StdDeviationEn8HitsPath1) { #region Default values hit0.Checked = false; hit1.Checked = false; hit2.Checked = false; hit3.Checked = false; hit4.Checked = false; hit5.Checked = false; hit6.Checked = false; hit7.Checked = false; threeHits.Checked = false; eightHits.Checked = false; #endregion } else { #region Values from file if (values[Settingsfile.StdDeviationEnHit0Path1] == "1") hit0.Checked = true; else hit0.Checked = false; if (values[Settingsfile.StdDeviationEnHit1Path1] == "1") hit1.Checked = true; else hit1.Checked = false; if (values[Settingsfile.StdDeviationEnHit2Path1] == "1") hit2.Checked = true; else hit2.Checked = false; if (values[Settingsfile.StdDeviationEnHit3Path1] == "1") hit3.Checked = true; else hit3.Checked = false; if (values[Settingsfile.StdDeviationEnHit4Path1] == "1") hit4.Checked = true; else hit4.Checked = false; if (values[Settingsfile.StdDeviationEnHit5Path1] == "1") hit5.Checked = true; else hit5.Checked = false; if (values[Settingsfile.StdDeviationEnHit6Path1] == "1") hit6.Checked = true; else hit6.Checked = false; if (values[Settingsfile.StdDeviationEnHit7Path1] == "1") hit7.Checked = true; else hit7.Checked = false; if (values[Settingsfile.StdDeviationEn3HitsPath1] == "1") threeHits.Checked = true; else threeHits.Checked = false; if (values[Settingsfile.StdDeviationEn8HitsPath1] == "1") eightHits.Checked = true; else eightHits.Checked = false; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.StdDeviationEnPath1() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean StdDeviationEnPath2(String inputData, ref CheckBox hit0, ref CheckBox hit1, ref CheckBox hit2, ref CheckBox hit3, ref CheckBox hit4, ref CheckBox hit5, ref CheckBox hit6, ref CheckBox hit7, ref CheckBox threeHits, ref CheckBox eightHits) { #region Definitions and initializations Boolean Ok = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.StdDeviationEn8HitsPath2) { #region Default values hit0.Checked = false; hit1.Checked = false; hit2.Checked = false; hit3.Checked = false; hit4.Checked = false; hit5.Checked = false; hit6.Checked = false; hit7.Checked = false; threeHits.Checked = false; eightHits.Checked = false; #endregion } else { #region Values from file if (values[Settingsfile.StdDeviationEnHit0Path2] == "1") hit0.Checked = true; else hit0.Checked = false; if (values[Settingsfile.StdDeviationEnHit1Path2] == "1") hit1.Checked = true; else hit1.Checked = false; if (values[Settingsfile.StdDeviationEnHit2Path2] == "1") hit2.Checked = true; else hit2.Checked = false; if (values[Settingsfile.StdDeviationEnHit3Path2] == "1") hit3.Checked = true; else hit3.Checked = false; if (values[Settingsfile.StdDeviationEnHit4Path2] == "1") hit4.Checked = true; else hit4.Checked = false; if (values[Settingsfile.StdDeviationEnHit5Path2] == "1") hit5.Checked = true; else hit5.Checked = false; if (values[Settingsfile.StdDeviationEnHit6Path2] == "1") hit6.Checked = true; else hit6.Checked = false; if (values[Settingsfile.StdDeviationEnHit7Path2] == "1") hit7.Checked = true; else hit7.Checked = false; if (values[Settingsfile.StdDeviationEn3HitsPath2] == "1") threeHits.Checked = true; else threeHits.Checked = false; if (values[Settingsfile.StdDeviationEn8HitsPath2] == "1") eightHits.Checked = true; else eightHits.Checked = false; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.StdDeviationEnPath2() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean LogDirectory(String inputData, out String logDirectory) { #region Definitions and initializations Boolean Ok = false; logDirectory = String.Empty; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.LogDirectory) { #region Default value logDirectory = String.Empty; #endregion } else { #region Value from file logDirectory = values[Settingsfile.LogDirectory]; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.LogDirectory() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean ReportDirectory(String inputData, out String reportDirectory) { #region Definitions and initializations Boolean Ok = false; reportDirectory = String.Empty; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.ReportDirectory) #region Default value reportDirectory = String.Empty; #endregion else { #region Value from file reportDirectory = values[Settingsfile.ReportDirectory]; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.ReportDirectory() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean ImagesDirectory(String inputData, out String imagesDirectory) { #region Definitions and initializations Boolean Ok = false; imagesDirectory = String.Empty; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.ImagesDirectory) #region Default value imagesDirectory = String.Empty; #endregion else { #region Value from file imagesDirectory = values[Settingsfile.ImagesDirectory]; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.ImagesDirectory() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean CsvDirectory(String inputData, out String csvDirectory) { #region Definitions and initializations Boolean Ok = false; csvDirectory = String.Empty; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.CsvDirectory) #region Default data csvDirectory = String.Empty; #endregion else { #region Data from file csvDirectory = values[Settingsfile.CsvDirectory]; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.CsvDirectory() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean MassLogging(String inputData, out Boolean massLogging) { #region Definitions and initializations Boolean Ok = false; massLogging = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.MassLogging) #region Default data massLogging = false; #endregion else { #region Data from file if (values[Settingsfile.MassLogging] == "1") massLogging = true; else massLogging = false; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.MassLogging() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } public static Boolean SplitSettings(String inputData, out Boolean filesplitterEn) { #region Definitions and initializations Boolean Ok = false; filesplitterEn = false; #endregion try { #region Prepare data String[] values = inputData.Split(';'); #endregion if ((values.Count() - 1) < Settingsfile.Splitcounter) #region Default data filesplitterEn = false; #endregion else { #region Data from file if (values[Settingsfile.Splitcounter] == "1") filesplitterEn = true; else filesplitterEn = false; #endregion #region Set flag Ok = true; #endregion } } catch (Exception ex) { ErrorLog.Log(LogErrReason.Exception(), "GetReadSettings.SplitSettings() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty); } return Ok; } } public static class PrepareWriteSettings { public static String SerialSettings(String baudRate, String dataBits, String comSelect, String stopBits, String parity, String handshake) { String Data = String.Empty; Data = baudRate + ";"; Data = Data + dataBits + ";"; Data = Data + comSelect + ";"; Data = Data + stopBits + ";"; Data = Data + parity + ";"; Data = Data + handshake + ";"; return Data; } public static String Raw(Boolean rawLogEn) { String Data = "0;"; if (rawLogEn) Data = "1;"; return Data; } public static String Csv(Boolean csvLogEn, Boolean csvLogEnPath0, Boolean csvLogEnPath1, Boolean csvLogEnPath2) { String Data = String.Empty; String CsvLogEn = "0;"; String CsvLogEnPath0 = "0;"; String CsvLogEnPath1 = "0;"; String CsvLogEnPath2 = "0;"; if (csvLogEn) CsvLogEn = "1;"; if (csvLogEnPath0) CsvLogEnPath0 = "1;"; if (csvLogEnPath1) CsvLogEnPath1 = "1;"; if (csvLogEnPath2) CsvLogEnPath2 = "1;"; Data = CsvLogEn + CsvLogEnPath0 + CsvLogEnPath1 + CsvLogEnPath2; return Data; } public static String Maingraph(UInt16 xRange, UInt16 listboxIndex, Boolean enPath0, Boolean enPath1, Boolean enPath2, Double flowValue) { #region Definitions and initializations CultureInfo culture = GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture(); String Data = String.Empty; String EnPath0 = "0;"; String EnPath1 = "0;"; String EnPath2 = "0;"; #endregion #region Listbox index if (listboxIndex < 0) listboxIndex = 0; Data = Data + listboxIndex.ToString(GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()) + ";"; #endregion #region Enable paths if (enPath0) EnPath0 = "1;"; if (enPath1) EnPath1 = "1;"; if (enPath2) EnPath2 = "1;"; #endregion #region Final String Data = Data + xRange.ToString(culture) +";" + EnPath0 + EnPath1 + EnPath2 + Math.Round(flowValue, 1).ToString(culture) +";"; #endregion return Data; } public static String Password(String password) { password = password + ";"; return password; } public static String JsonPath(String path) { String Data = path + ";"; return Data; } public static String StdDeviation(int xRange, int xValues) { CultureInfo culture = GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture(); String data = xRange.ToString(culture) + ";" + xValues.ToString(culture) + ";"; return data; } public static String StdDeviationEn(Boolean hit0, Boolean hit1, Boolean hit2, Boolean hit3, Boolean hit4, Boolean hit5, Boolean hit6, Boolean hit7, Boolean threeHits, Boolean eightHits) { String Data = String.Empty; if (hit0) Data = "1;"; else Data = "0;"; if (hit1) Data = Data + "1;"; else Data = Data + "0;"; if (hit2) Data = Data + "1;"; else Data = Data + "0;"; if (hit3) Data = Data + "1;"; else Data = Data + "0;"; if (hit4) Data = Data + "1;"; else Data = Data + "0;"; if (hit5) Data = Data + "1;"; else Data = Data + "0;"; if (hit6) Data = Data + "1;"; else Data = Data + "0;"; if (hit7) Data = Data + "1;"; else Data = Data + "0;"; if (threeHits) Data = Data + "1;"; else Data = Data + "0;"; if (eightHits) Data = Data + "1;"; else Data = Data + "0;"; return Data; } public static String LogDirectory(String logDirectory) { String Data = logDirectory + ";"; return Data; } public static String ReportDirectory(String reportDirectory) { String Data = reportDirectory + ";"; return Data; } public static String ImagesDirectory(String imagesDirectory) { String Data = imagesDirectory + ";"; return Data; } public static String CsvDirectory(String csvDirectory) { String Data = csvDirectory + ";"; return Data; } public static String MassMode(Boolean massEnable) { String Data = String.Empty; if (massEnable) Data = "1;"; else Data = "0;"; return Data; } public static String SplitSettings(Boolean filesplitterEn) { String Data = String.Empty; if (filesplitterEn) Data = "1;"; else Data = "0;"; return Data; } } }