From 6256d1636c17543ca6ef565664cfd49a2c0b6e83 Mon Sep 17 00:00:00 2001 From: Thomas Wiedebusch Date: Thu, 23 Oct 2025 15:36:17 +0200 Subject: [PATCH] GTB: - Refactoring RegisterStore --- .../.vs/Common/config/applicationhost.config | 2 +- Common/Ui/GenesisToolBox/FrmAlarmMng.cs | 20 +- Common/Ui/GenesisToolBox/FrmCustomerText.cs | 8 +- Common/Ui/GenesisToolBox/FrmFileCURD.cs | 10 +- Common/Ui/GenesisToolBox/FrmFrozenMeter.cs | 2 +- Common/Ui/GenesisToolBox/FrmLogSplit.cs | 2 +- Common/Ui/GenesisToolBox/FrmManCalibration.cs | 4 +- Common/Ui/GenesisToolBox/FrmMasterMapping.cs | 14 +- Common/Ui/GenesisToolBox/FrmMultiWrite.cs | 4 +- .../Ui/GenesisToolBox/FrmParameterization.cs | 8 +- .../GenesisToolBox/FrmRawDataInterpreter.cs | 4 +- .../Ui/GenesisToolBox/FrmResearchMapping.cs | 8 +- .../Ui/GenesisToolBox/GenesisToolBox.csproj | 2 + Common/Ui/GenesisToolBox/frmLeagcyTestApp.cs | 10 +- .../frmRegisterStore.Designer.cs | 126 +- Common/Ui/GenesisToolBox/frmRegisterStore.cs | 2545 +++++++---------- Common/Ui/LegacyGenesisControl/PreAdjWr.cs | 8 +- 17 files changed, 1136 insertions(+), 1641 deletions(-) diff --git a/Common/.vs/Common/config/applicationhost.config b/Common/.vs/Common/config/applicationhost.config index 5616ab8b..8f2db308 100644 --- a/Common/.vs/Common/config/applicationhost.config +++ b/Common/.vs/Common/config/applicationhost.config @@ -171,7 +171,7 @@ - + diff --git a/Common/Ui/GenesisToolBox/FrmAlarmMng.cs b/Common/Ui/GenesisToolBox/FrmAlarmMng.cs index 3cebe677..b4988a3b 100644 --- a/Common/Ui/GenesisToolBox/FrmAlarmMng.cs +++ b/Common/Ui/GenesisToolBox/FrmAlarmMng.cs @@ -152,7 +152,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } else { - MessageBox.Show("not connected"); + MessageBox.Show(@"not connected"); } } private void clbAlarms_SelectedIndexChanged(Object sender, EventArgs e) @@ -163,7 +163,7 @@ namespace Xylem.Common.Ui.GenesisToolBox { if (e.NewValue == CheckState.Checked) { - MessageBox.Show("Alarms cannot write, they have to set by meter"); + MessageBox.Show(@"Alarms cannot write, they have to set by meter"); e.NewValue = CheckState.Unchecked; } else if (e.NewValue == CheckState.Unchecked) @@ -456,11 +456,11 @@ namespace Xylem.Common.Ui.GenesisToolBox _currentGenesis.WriteRegister(Register.Metrologyasst.PulseMode, 0); button6.Enabled = true; button7.Enabled = false; - MessageBox.Show("Weiter"); + MessageBox.Show(@"Weiter"); } else { - MessageBox.Show("Noch mal 1. Connect"); + MessageBox.Show(@"Noch mal 1. Connect"); } @@ -498,11 +498,11 @@ namespace Xylem.Common.Ui.GenesisToolBox { if (cAlarm == Alarm.EMPTY_PIPE) { - MessageBox.Show("weiter"); + MessageBox.Show(@"weiter"); } else { - MessageBox.Show("Emptypipe fehlt bitte vor dem verpacken überprüfen"); + MessageBox.Show(@"Emptypipe fehlt bitte vor dem verpacken überprüfen"); } button7.Enabled = true; @@ -511,7 +511,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } else { - MessageBox.Show("fehler"); + MessageBox.Show(@"fehler"); } } @@ -521,7 +521,7 @@ namespace Xylem.Common.Ui.GenesisToolBox { finishMeter(_currentGenesis); File.AppendAllText("WriteLines.txt", _currentGenesis.PcbId + "mit Update;"); - MessageBox.Show("fertig"); + MessageBox.Show(@"fertig"); button6.Enabled = false; button7.Enabled = false; @@ -533,9 +533,9 @@ namespace Xylem.Common.Ui.GenesisToolBox if (ex.Message.Contains("Check the configuration.json for latest version!")) { _currentGenesis.Login(); - MessageBox.Show("Wiederholen 3."); + MessageBox.Show(@"Wiederholen 3."); } - MessageBox.Show("fehler"); + MessageBox.Show(@"fehler"); } diff --git a/Common/Ui/GenesisToolBox/FrmCustomerText.cs b/Common/Ui/GenesisToolBox/FrmCustomerText.cs index 599a1bf6..14bd55ad 100644 --- a/Common/Ui/GenesisToolBox/FrmCustomerText.cs +++ b/Common/Ui/GenesisToolBox/FrmCustomerText.cs @@ -60,7 +60,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } else { - MessageBox.Show("not connected"); + MessageBox.Show(@"not connected"); } } private void btnWriteText_Click(Object sender, EventArgs e) @@ -73,18 +73,18 @@ namespace Xylem.Common.Ui.GenesisToolBox if (r) { - MessageBox.Show($"Write was successful"); + MessageBox.Show($@"Write was successful"); } else { - MessageBox.Show($"Write was unsuccessful!"); + MessageBox.Show($@"Write was unsuccessful!"); } } else { - MessageBox.Show("not connected"); + MessageBox.Show(@"not connected"); } } diff --git a/Common/Ui/GenesisToolBox/FrmFileCURD.cs b/Common/Ui/GenesisToolBox/FrmFileCURD.cs index 6ed9c026..f889f086 100644 --- a/Common/Ui/GenesisToolBox/FrmFileCURD.cs +++ b/Common/Ui/GenesisToolBox/FrmFileCURD.cs @@ -457,7 +457,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } catch (Exception ex) { - MessageBox.Show($"Error On{item.Name}"); + MessageBox.Show($@"Error On{item.Name}"); } @@ -520,7 +520,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } catch (Exception ex) { - MessageBox.Show($"Error On{item.Name}"); + MessageBox.Show($@"Error On{item.Name}"); } } @@ -533,7 +533,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } catch (Exception ex) { - MessageBox.Show($"Error On{item.Name}"); + MessageBox.Show($@"Error On{item.Name}"); } } @@ -548,11 +548,11 @@ namespace Xylem.Common.Ui.GenesisToolBox if (result.StatusCode == System.Net.HttpStatusCode.OK) { - MessageBox.Show("done"); + MessageBox.Show(@"done"); } else { - MessageBox.Show($"error{result.StatusCode} : {result.Content}"); + MessageBox.Show($@"error{result.StatusCode} : {result.Content}"); } } diff --git a/Common/Ui/GenesisToolBox/FrmFrozenMeter.cs b/Common/Ui/GenesisToolBox/FrmFrozenMeter.cs index 69bf4bf9..fa41cc9b 100644 --- a/Common/Ui/GenesisToolBox/FrmFrozenMeter.cs +++ b/Common/Ui/GenesisToolBox/FrmFrozenMeter.cs @@ -335,7 +335,7 @@ namespace Xylem.Common.Ui.GenesisToolBox if (int.MaxValue <= estTimeInMs) { lblEstDate.Text = "-"; - MessageBox.Show("you really think a software from roland can run that long without a fatal crash? No way!"); + MessageBox.Show(@"you really think a software from roland can run that long without a fatal crash? No way!"); } else { diff --git a/Common/Ui/GenesisToolBox/FrmLogSplit.cs b/Common/Ui/GenesisToolBox/FrmLogSplit.cs index 1148e91e..8f501bc3 100644 --- a/Common/Ui/GenesisToolBox/FrmLogSplit.cs +++ b/Common/Ui/GenesisToolBox/FrmLogSplit.cs @@ -201,7 +201,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } - MessageBox.Show("done"); + MessageBox.Show(@"done"); } catch (Exception ex) { diff --git a/Common/Ui/GenesisToolBox/FrmManCalibration.cs b/Common/Ui/GenesisToolBox/FrmManCalibration.cs index a3df8ba8..d570e763 100644 --- a/Common/Ui/GenesisToolBox/FrmManCalibration.cs +++ b/Common/Ui/GenesisToolBox/FrmManCalibration.cs @@ -700,14 +700,14 @@ { if (!gen.WriteRegister(row.Cells[0].Value.ToString(), val)) { - MessageBox.Show("Error"); + MessageBox.Show(@"Error"); } } else if (Int64.TryParse(row.Cells[1].Value.ToString(), out valBig)) { if (!gen.WriteRegister(row.Cells[0].Value.ToString(), valBig)) { - MessageBox.Show("Error"); + MessageBox.Show(@"Error"); } } diff --git a/Common/Ui/GenesisToolBox/FrmMasterMapping.cs b/Common/Ui/GenesisToolBox/FrmMasterMapping.cs index a1b89b6b..c4c6a0d0 100644 --- a/Common/Ui/GenesisToolBox/FrmMasterMapping.cs +++ b/Common/Ui/GenesisToolBox/FrmMasterMapping.cs @@ -39,7 +39,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } else { - MessageBox.Show("error"); + MessageBox.Show(@"error"); } } @@ -73,7 +73,7 @@ namespace Xylem.Common.Ui.GenesisToolBox var retSeri = LocalWebRequest.GetRequest(url, 18000); if (retSeri.Contains("store")) { - MessageBox.Show("hat geklappt"); + MessageBox.Show(@"hat geklappt"); } } } @@ -141,7 +141,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } catch (Exception ex) { - MessageBox.Show($"Slot #{slotNR} failed: {ex.Message}"); + MessageBox.Show($@"Slot #{slotNR} failed: {ex.Message}"); } return _currentGenesis.GetPcbId(); @@ -171,12 +171,12 @@ namespace Xylem.Common.Ui.GenesisToolBox var ret = LocalWebRequest.PostRequestAsync($"http://10.49.40.25/MeterProcessState/api/Order/DeleteCordonelMapping?PcbId={ipcb}", 80000); if (ret) { - MessageBox.Show("succeed. mapping is deleted "); + MessageBox.Show(@"succeed. mapping is deleted "); btnRemoveSure.Visible = false; } else { - MessageBox.Show("something went wrong"); + MessageBox.Show(@"something went wrong"); } } } @@ -196,11 +196,11 @@ namespace Xylem.Common.Ui.GenesisToolBox var ret = LocalWebRequest.PostRequestAsync("http://10.49.40.25/MeterProcessState/api/ProccesState/SetPressureStateHydralic?PcbId=" + txtHyMapPcb.Text + "&FertigungsauftragsNr=" + txtHyMapOrder.Text, 80000); if (ret) { - MessageBox.Show("Erfogreich"); + MessageBox.Show(@"Erfogreich"); } else { - MessageBox.Show("Fehler"); + MessageBox.Show(@"Fehler"); } } } diff --git a/Common/Ui/GenesisToolBox/FrmMultiWrite.cs b/Common/Ui/GenesisToolBox/FrmMultiWrite.cs index 9bfdffe0..3a1b50de 100644 --- a/Common/Ui/GenesisToolBox/FrmMultiWrite.cs +++ b/Common/Ui/GenesisToolBox/FrmMultiWrite.cs @@ -65,11 +65,11 @@ namespace Xylem.Common.Ui.GenesisToolBox if (res) { - MessageBox.Show("success"); + MessageBox.Show(@"success"); } else { - MessageBox.Show("error"); + MessageBox.Show(@"error"); } } diff --git a/Common/Ui/GenesisToolBox/FrmParameterization.cs b/Common/Ui/GenesisToolBox/FrmParameterization.cs index c5a1ea47..dcdc87e7 100644 --- a/Common/Ui/GenesisToolBox/FrmParameterization.cs +++ b/Common/Ui/GenesisToolBox/FrmParameterization.cs @@ -193,11 +193,11 @@ namespace Xylem.Common.Ui.GenesisToolBox _currentGenesis.StoreAllConfigurations(); if (success) { - MessageBox.Show("success"); + MessageBox.Show(@"success"); } else { - MessageBox.Show("wrong"); + MessageBox.Show(@"wrong"); } } } @@ -273,11 +273,11 @@ namespace Xylem.Common.Ui.GenesisToolBox if (success) { - MessageBox.Show("success"); + MessageBox.Show(@"success"); } else { - MessageBox.Show("wrong"); + MessageBox.Show(@"wrong"); } dgvRegisterWrite.DataSource = RegistersGernerated; diff --git a/Common/Ui/GenesisToolBox/FrmRawDataInterpreter.cs b/Common/Ui/GenesisToolBox/FrmRawDataInterpreter.cs index b4e31e6b..e7faaf82 100644 --- a/Common/Ui/GenesisToolBox/FrmRawDataInterpreter.cs +++ b/Common/Ui/GenesisToolBox/FrmRawDataInterpreter.cs @@ -241,11 +241,11 @@ namespace Xylem.Common.Ui.GenesisToolBox File.WriteAllLines(newfilenanme + "H1.csv", listH1.ToArray()); File.WriteAllLines(newfilenanme + "H2.csv", listH2.ToArray()); File.WriteAllLines(newfilenanme + "H3.csv", listH3.ToArray()); - MessageBox.Show("done"); + MessageBox.Show(@"done"); } catch (Exception ex ) { - MessageBox.Show("abspeichern nicht geklappt . ggf. ist die datei noch geöffnet oder wir haben nicht genug rechte"); + MessageBox.Show(@"abspeichern nicht geklappt . ggf. ist die datei noch geöffnet oder wir haben nicht genug rechte"); } diff --git a/Common/Ui/GenesisToolBox/FrmResearchMapping.cs b/Common/Ui/GenesisToolBox/FrmResearchMapping.cs index a82007dd..253aa3a3 100644 --- a/Common/Ui/GenesisToolBox/FrmResearchMapping.cs +++ b/Common/Ui/GenesisToolBox/FrmResearchMapping.cs @@ -29,7 +29,7 @@ namespace Xylem.Common.Ui.GenesisToolBox if (!string.IsNullOrEmpty(resp)) { - MessageBox.Show("Hat geklappt"); + MessageBox.Show(@"Hat geklappt"); } else { @@ -40,7 +40,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } if (!result) { - MessageBox.Show("Hat nicht geklappt"); + MessageBox.Show(@"Hat nicht geklappt"); } } @@ -64,7 +64,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } catch (Exception ex) { - MessageBox.Show($"Slot #{slot} failed: {ex.Message}"); + MessageBox.Show($@"Slot #{slot} failed: {ex.Message}"); } @@ -74,7 +74,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } catch (Exception ex) { - MessageBox.Show($"failed: {ex.Message}"); + MessageBox.Show($@"failed: {ex.Message}"); } } } diff --git a/Common/Ui/GenesisToolBox/GenesisToolBox.csproj b/Common/Ui/GenesisToolBox/GenesisToolBox.csproj index 60f3aa44..66cfb865 100644 --- a/Common/Ui/GenesisToolBox/GenesisToolBox.csproj +++ b/Common/Ui/GenesisToolBox/GenesisToolBox.csproj @@ -548,6 +548,7 @@ FrmFrozenMeter.cs + Designer FrmHistory.cs @@ -637,6 +638,7 @@ FrmManCalibration.cs + Designer FrmTempMeter.cs diff --git a/Common/Ui/GenesisToolBox/frmLeagcyTestApp.cs b/Common/Ui/GenesisToolBox/frmLeagcyTestApp.cs index 345cf3cb..23627720 100644 --- a/Common/Ui/GenesisToolBox/frmLeagcyTestApp.cs +++ b/Common/Ui/GenesisToolBox/frmLeagcyTestApp.cs @@ -273,7 +273,7 @@ namespace GenesisToolBox if (endTime.HasValue && startTime.HasValue) { var timeMeasurement = (endTime.Value - startTime.Value); - MessageBox.Show($"MeasurementBuffered rund for {timeMeasurement}S"); + MessageBox.Show($@"MeasurementBuffered rund for {timeMeasurement}S"); foreach (var item in cblSlots.CheckedItems) { @@ -283,7 +283,7 @@ namespace GenesisToolBox { var result = ctlBatch.GetResults(slotNr, 0, flowrateRef, timeMeasurement.TotalSeconds); - MessageBox.Show($"result.DutTimeS = {result.DutTimeS} & result.DutVolumeCm = {result.DutVolumeCm}"); + MessageBox.Show($@"result.DutTimeS = {result.DutTimeS} & result.DutVolumeCm = {result.DutVolumeCm}"); } } @@ -655,15 +655,15 @@ namespace GenesisToolBox { case XylemCommonUiLegacyGenCtl.DataPackage.PollingAction.IsDone: continueRequesting = false; - MessageBox.Show("isDone"); + MessageBox.Show(@"isDone"); break; case XylemCommonUiLegacyGenCtl.DataPackage.PollingAction.IsOnError: continueRequesting = false; - MessageBox.Show("IsOnError"); + MessageBox.Show(@"IsOnError"); break; case XylemCommonUiLegacyGenCtl.DataPackage.PollingAction.DoFlush: - MessageBox.Show("Request flush"); + MessageBox.Show(@"Request flush"); controlPreAdjWr.SetFlushIsDone(); break; default: diff --git a/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs b/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs index c37e3abb..174fe3e2 100644 --- a/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs +++ b/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs @@ -32,7 +32,7 @@ this.components = new System.ComponentModel.Container(); this.cbComSlot = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); - this.btnRead = new System.Windows.Forms.Button(); + this.btnReadRegister = new System.Windows.Forms.Button(); this.registerGridView = new System.Windows.Forms.DataGridView(); this.btnConnect = new System.Windows.Forms.Button(); this.lblState = new System.Windows.Forms.Label(); @@ -41,19 +41,18 @@ this.pnlBussy = new System.Windows.Forms.Panel(); this.lblProgress = new System.Windows.Forms.Label(); this.lblAction = new System.Windows.Forms.Label(); - this.probarBussy = new System.Windows.Forms.ProgressBar(); + this.probarBusy = new System.Windows.Forms.ProgressBar(); this.label3 = new System.Windows.Forms.Label(); this.btnReadFwVersions = new System.Windows.Forms.Button(); - this.btn_CalibrationRestore = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); + this.btnCalibrationRestore = new System.Windows.Forms.Button(); + this.btnBatteryIdle = new System.Windows.Forms.Button(); + this.btnSetDefaultPulse = new System.Windows.Forms.Button(); this.btnStoreAll = new System.Windows.Forms.Button(); this.btnRegisterToFile = new System.Windows.Forms.Button(); this.timer1 = new System.Windows.Forms.Timer(this.components); this.btnBatLife = new System.Windows.Forms.Button(); this.btnRadioPressure = new System.Windows.Forms.Button(); this.nundCalResultID = new System.Windows.Forms.NumericUpDown(); - this.btnFingerWeg = new System.Windows.Forms.Button(); this.lblGtbVersion = new System.Windows.Forms.Label(); this.lblConfigVersion = new System.Windows.Forms.Label(); this.btnFileToRegister = new System.Windows.Forms.Button(); @@ -84,13 +83,13 @@ // // btnRead // - this.btnRead.Location = new System.Drawing.Point(251, 123); - this.btnRead.Name = "btnRead"; - this.btnRead.Size = new System.Drawing.Size(110, 30); - this.btnRead.TabIndex = 2; - this.btnRead.Text = "Read Meter"; - this.btnRead.UseVisualStyleBackColor = true; - this.btnRead.Click += new System.EventHandler(this.btnRead_Click); + this.btnReadRegister.Location = new System.Drawing.Point(251, 123); + this.btnReadRegister.Name = "btnReadRegister"; + this.btnReadRegister.Size = new System.Drawing.Size(110, 30); + this.btnReadRegister.TabIndex = 2; + this.btnReadRegister.Text = "Read Meter"; + this.btnReadRegister.UseVisualStyleBackColor = true; + this.btnReadRegister.Click += new System.EventHandler(this.btnRead_Click); // // registerGridView // @@ -149,7 +148,7 @@ this.pnlBussy.BackColor = System.Drawing.Color.Transparent; this.pnlBussy.Controls.Add(this.lblProgress); this.pnlBussy.Controls.Add(this.lblAction); - this.pnlBussy.Controls.Add(this.probarBussy); + this.pnlBussy.Controls.Add(this.probarBusy); this.pnlBussy.Controls.Add(this.label3); this.pnlBussy.Location = new System.Drawing.Point(8, 171); this.pnlBussy.Name = "pnlBussy"; @@ -179,14 +178,14 @@ this.lblAction.Size = new System.Drawing.Size(0, 13); this.lblAction.TabIndex = 2; // - // probarBussy + // probarBusy // - this.probarBussy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.probarBusy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.probarBussy.Location = new System.Drawing.Point(12, 286); - this.probarBussy.Name = "probarBussy"; - this.probarBussy.Size = new System.Drawing.Size(779, 23); - this.probarBussy.TabIndex = 1; + this.probarBusy.Location = new System.Drawing.Point(12, 286); + this.probarBusy.Name = "probarBusy"; + this.probarBusy.Size = new System.Drawing.Size(779, 23); + this.probarBusy.TabIndex = 1; // // label3 // @@ -196,9 +195,9 @@ this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(240, 270); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(60, 13); + this.label3.Size = new System.Drawing.Size(64, 13); this.label3.TabIndex = 0; - this.label3.Text = "please wait"; + this.label3.Text = "Please wait!"; // // btnReadFwVersions // @@ -210,37 +209,37 @@ this.btnReadFwVersions.UseVisualStyleBackColor = true; this.btnReadFwVersions.Click += new System.EventHandler(this.btnReadFwVersions_Click); // - // btn_CalibrationRestore + // btnCalibrationRestore // - this.btn_CalibrationRestore.Location = new System.Drawing.Point(560, 14); - this.btn_CalibrationRestore.Name = "btn_CalibrationRestore"; - this.btn_CalibrationRestore.Size = new System.Drawing.Size(110, 30); - this.btn_CalibrationRestore.TabIndex = 58; - this.btn_CalibrationRestore.Text = "CalibrationRestore"; - this.btn_CalibrationRestore.UseVisualStyleBackColor = true; - this.btn_CalibrationRestore.Visible = false; - this.btn_CalibrationRestore.Click += new System.EventHandler(this.btn_CalibrationRestore_Click); + this.btnCalibrationRestore.Location = new System.Drawing.Point(560, 14); + this.btnCalibrationRestore.Name = "btnCalibrationRestore"; + this.btnCalibrationRestore.Size = new System.Drawing.Size(110, 30); + this.btnCalibrationRestore.TabIndex = 58; + this.btnCalibrationRestore.Text = "CalibrationRestore"; + this.btnCalibrationRestore.UseVisualStyleBackColor = true; + this.btnCalibrationRestore.Visible = false; + this.btnCalibrationRestore.Click += new System.EventHandler(this.btnCalibrationRestore_Click); // - // button1 + // btnBatteryIdle // - this.button1.Location = new System.Drawing.Point(399, 87); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(110, 30); - this.button1.TabIndex = 60; - this.button1.Text = "Battery Idle"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Visible = false; - this.button1.Click += new System.EventHandler(this.button1_Click_4); + this.btnBatteryIdle.Location = new System.Drawing.Point(399, 87); + this.btnBatteryIdle.Name = "btnBatteryIdle"; + this.btnBatteryIdle.Size = new System.Drawing.Size(110, 30); + this.btnBatteryIdle.TabIndex = 60; + this.btnBatteryIdle.Text = "Battery Idle"; + this.btnBatteryIdle.UseVisualStyleBackColor = true; + this.btnBatteryIdle.Visible = false; + this.btnBatteryIdle.Click += new System.EventHandler(this.btnBatteryIdle_Click); // - // button2 + // btnSetDefaultPulse // - this.button2.Location = new System.Drawing.Point(560, 85); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(110, 30); - this.button2.TabIndex = 61; - this.button2.Text = "Set default Pulse"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click_2); + this.btnSetDefaultPulse.Location = new System.Drawing.Point(560, 85); + this.btnSetDefaultPulse.Name = "btnSetDefaultPulse"; + this.btnSetDefaultPulse.Size = new System.Drawing.Size(110, 30); + this.btnSetDefaultPulse.TabIndex = 61; + this.btnSetDefaultPulse.Text = "Set default Pulse"; + this.btnSetDefaultPulse.UseVisualStyleBackColor = true; + this.btnSetDefaultPulse.Click += new System.EventHandler(this.btnSetDefaultPulse_Click); // // btnStoreAll // @@ -300,17 +299,6 @@ this.nundCalResultID.TabIndex = 73; this.nundCalResultID.Visible = false; // - // btnFingerWeg - // - this.btnFingerWeg.Location = new System.Drawing.Point(729, 49); - this.btnFingerWeg.Name = "btnFingerWeg"; - this.btnFingerWeg.Size = new System.Drawing.Size(62, 63); - this.btnFingerWeg.TabIndex = 74; - this.btnFingerWeg.Text = "Do NOT touch! Recalib!"; - this.btnFingerWeg.UseVisualStyleBackColor = true; - this.btnFingerWeg.Visible = false; - this.btnFingerWeg.Click += new System.EventHandler(this.FingerWeg_Clicked); - // // lblGtbVersion // this.lblGtbVersion.AutoSize = true; @@ -359,22 +347,21 @@ this.Controls.Add(this.btnFileToRegister); this.Controls.Add(this.lblConfigVersion); this.Controls.Add(this.lblGtbVersion); - this.Controls.Add(this.btnFingerWeg); this.Controls.Add(this.nundCalResultID); this.Controls.Add(this.btnRadioPressure); this.Controls.Add(this.btnBatLife); this.Controls.Add(this.btnRegisterToFile); this.Controls.Add(this.btnStoreAll); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.btn_CalibrationRestore); + this.Controls.Add(this.btnSetDefaultPulse); + this.Controls.Add(this.btnBatteryIdle); + this.Controls.Add(this.btnCalibrationRestore); this.Controls.Add(this.btnReadFwVersions); this.Controls.Add(this.pnlBussy); this.Controls.Add(this.btnGetPCbID); this.Controls.Add(this.lblState); this.Controls.Add(this.btnConnect); this.Controls.Add(this.registerGridView); - this.Controls.Add(this.btnRead); + this.Controls.Add(this.btnReadRegister); this.Controls.Add(this.label1); this.Controls.Add(this.cbComSlot); this.Name = "FrmRegisterStore"; @@ -394,7 +381,7 @@ private System.Windows.Forms.ComboBox cbComSlot; private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnRead; + private System.Windows.Forms.Button btnReadRegister; private System.Windows.Forms.DataGridView registerGridView; private System.Windows.Forms.Button btnConnect; private System.Windows.Forms.Label lblState; @@ -403,19 +390,18 @@ private System.Windows.Forms.Panel pnlBussy; private System.Windows.Forms.Label lblProgress; private System.Windows.Forms.Label lblAction; - private System.Windows.Forms.ProgressBar probarBussy; + private System.Windows.Forms.ProgressBar probarBusy; private System.Windows.Forms.Label label3; private System.Windows.Forms.Button btnReadFwVersions; - private System.Windows.Forms.Button btn_CalibrationRestore; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button btnCalibrationRestore; + private System.Windows.Forms.Button btnBatteryIdle; + private System.Windows.Forms.Button btnSetDefaultPulse; private System.Windows.Forms.Button btnStoreAll; private System.Windows.Forms.Button btnRegisterToFile; private System.Windows.Forms.Timer timer1; private System.Windows.Forms.Button btnBatLife; private System.Windows.Forms.Button btnRadioPressure; private System.Windows.Forms.NumericUpDown nundCalResultID; - private System.Windows.Forms.Button btnFingerWeg; private System.Windows.Forms.Label lblGtbVersion; private System.Windows.Forms.Label lblConfigVersion; private System.Windows.Forms.Button btnFileToRegister; diff --git a/Common/Ui/GenesisToolBox/frmRegisterStore.cs b/Common/Ui/GenesisToolBox/frmRegisterStore.cs index ecc758cc..0391c09f 100644 --- a/Common/Ui/GenesisToolBox/frmRegisterStore.cs +++ b/Common/Ui/GenesisToolBox/frmRegisterStore.cs @@ -1,13 +1,9 @@ - -using LaaPackages.Features.Cordonel.Models; -using Logic.ProductionToProductMapper.Cordonel; -using Newtonsoft.Json; -using NLog; -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; +using System.Globalization; using System.IO; using System.Linq; using System.Net; @@ -16,40 +12,56 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using LaaPackages.Features.Cordonel; +using Logic.ProductionToProductMapper.Cordonel; +using Newtonsoft.Json; +using NLog; using Xylem.Common.CommonCore.Configuration; using Xylem.Common.CommonCore.Consts; using Xylem.Common.Hardware.Interfaces.Ports.PortCore; using Xylem.Common.Hardware.WaterMeter.Genesis.Applications.Const; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.Consts; -using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus; using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; +using Xylem.Common.Hardware.WaterMeter.Genesis.Registers.DataTypes; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore; using Xylem.Common.Logic.ProductionOrderCore.TestResults; using Xylem.Common.Logic.SoftwareAccessHelper; using Xylem.Common.Utils.Logging; using Access = Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Access; +using Register = Xylem.Common.Hardware.WaterMeter.Genesis.Registers.Register; namespace Xylem.Common.Ui.GenesisToolBox { public partial class FrmRegisterStore : Form { - private static readonly Lazy Logger = new Lazy(() => + public class regStore { - return NLogHelper.CreateOrGetLogger("GenesisToolBox"); - }); + public String PcbId; + public DateTimeOffset created; + public List keyValues; + } + + public class regDefValue + { + public RegisterDefinition def; + public String value; + } + + private static readonly Lazy Logger = new Lazy(() => NLogHelper.CreateOrGetLogger("GenesisToolBox")); - public Int32 Slot = 0; private readonly DataTable _dataTable = new DataTable(); private GenesisMeter _currentGenesis; - private String _currentPcbId; private MeterBatch _meterBatch = new MeterBatch(); - private readonly ILogger logger = NLogHelper.CreateOrGetLogger("GenesisFwLogger"); + private Color _defaultButtonColor; + private regStore _regsToStore; + private String _currentPcbId = ""; - public Boolean IsBusy + private Boolean IsBusy { - get; private set; + get; + set; } public FrmRegisterStore() @@ -69,16 +81,13 @@ namespace Xylem.Common.Ui.GenesisToolBox _dataTable.Columns.Add("Max", typeof(String)); _dataTable.Columns.Add("Description", typeof(String)); - _dataTable.Columns.Add("Version", typeof(String)); _dataTable.Columns.Add("IsAvailable", typeof(String)); _dataTable.Columns.Add("Privilege", typeof(String)); - _dataTable.Columns.Add("btnHistoryText", typeof(String)); - loadPreSet(); } @@ -89,6 +98,7 @@ namespace Xylem.Common.Ui.GenesisToolBox { Invoke(new Action(() => { + probarBusy.Value = 0; pnlBussy.Visible = true; timProgress.Enabled = true; lblAction.Text = action; @@ -127,171 +137,39 @@ namespace Xylem.Common.Ui.GenesisToolBox { try { - probarBussy.Value = - (Int32)Math.Round(((Double)ProgressCurrent.Value / (Double)ProgressTotal.Value) * 100, + probarBusy.Value = + (Int32)Math.Round((ProgressCurrent.Value / (Double)ProgressTotal.Value) * 100, 0); } - catch (Exception exception) + catch (Exception) { - //throw; + // } - } else { - var current = probarBussy.Value; + var current = probarBusy.Value; if (current + 1 > 100) { current = 0; } - probarBussy.Value = current + 1; + probarBusy.Value = current + 1; } - } } private void btnConnect_Click(Object sender, EventArgs e) { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) - { - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out var slotNR)) - { - SetBusy(true, "Connect"); - if (Connect(slotNR)) - { - Task.Factory.StartNew(() => - { - - Invoke(new Action(() => - { - var loggedinMeters = 0; - foreach (var me in _meterBatch.ListOfMeters) - { - if (me is GenesisMeter) - { - if (((GenesisMeter)me).IsLoggedOn) - { - loggedinMeters = loggedinMeters + 1; - _currentGenesis = ((GenesisMeter)me); - } - } - } - - if (loggedinMeters == _meterBatch.ListOfMeters.Count) - { - lblState.ForeColor = Color.Green; - lblState.Text = $@"Connected to PCB {_currentPcbId}"; - lblConfigVersion.Text = @"Configuration Version: " + - _currentGenesis.InterfaceInfo.InterfaceVersion; - lblConfigVersion.ForeColor = - _currentGenesis.InterfaceSupportsFwVersion ? Color.Green : Color.Red; - if (!_currentGenesis.InterfaceSupportsFwVersion) - { - var text = "CONFIGURATION OUTDATED!\n\n" + - "The loaded \"configuration.json\" " + - $"version: {_currentGenesis.InterfaceInfo.InterfaceVersion}\n" + - $"does NOT support the Cordonel FW version: {_currentGenesis.FwVersion}!"; - MessageBox.Show(text, @"FAILED", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - - _dataTable.Rows.Clear(); - - - var masterRegisters = new MeterRegisters(); - - foreach (var item in _currentGenesis.GetRegistersDic()) - { - - var row = _dataTable.NewRow(); - row["Name"] = item.Key.GetIdent(); - row["Type"] = item.Key.DataType.Name; - row["isChecked"] = false; - row["Value"] = ""; - row["RawValue"] = item.Value; - row["RawValueFile"] = item.Value; - - - row["Min"] = item.Key.Minimum; - row["Max"] = item.Key.Maximum; - row["Description"] = item.Key.RegisterDetail.Description; - String From = item.Key.RegisterDetail.Version.First.HasValue - ? item.Key.RegisterDetail.Version.First.Value.ToString() - : "-"; - - String To = item.Key.RegisterDetail.Version.Last.HasValue - ? item.Key.RegisterDetail.Version.Last.Value.ToString() - : "-"; - - row["Version"] = $"from {From} to {To}"; - row["IsAvailable"] = item.Key.IsAvailable; - - - - - row["Privilege"] = item.Key.RegisterDetail.Privilege.Lvl8.ToString(); - row["btnHistoryText"] = "View History"; - - _dataTable.Rows.Add(row); - } - - registerGridView.DataSource = _dataTable.DefaultView; - registerGridView.Columns["isChecked"].SortMode = - DataGridViewColumnSortMode.Automatic; - registerGridView.Sort(registerGridView.Columns["isChecked"], - ListSortDirection.Descending); - registerGridView.Columns["RawValueFile"].Visible = false; - registerGridView.Sort(registerGridView.Columns["Name"], - ListSortDirection.Ascending); - - var btnHistory = new DataGridViewButtonColumn(); - btnHistory.Name = "btnHistory"; - - - btnHistory.DataPropertyName = "btnHistoryText"; - registerGridView.Columns.AddRange(new DataGridViewColumn[] { btnHistory }); - - - //foreach (DataGridViewRow row in registerGridView.Rows) - //{ - // if (row.Cells["Type"].Value != null && row.Cells["Type"].Value.ToString().ToLower().Contains("string")) - // { - // row.ReadOnly = true; - // ((DataGridViewCheckBoxCell)row.Cells["isChecked"]).Value = false; - // ((DataGridViewCheckBoxCell)row.Cells["isChecked"]).FlatStyle = FlatStyle.Flat; - // ((DataGridViewCheckBoxCell)row.Cells["isChecked"]).Style.ForeColor = Color.DarkGray; - // ((DataGridViewCheckBoxCell)row.Cells["isChecked"]).ReadOnly = true; - // ((DataGridViewTextBoxCell)row.Cells["Value"]).Value = "String is not a supported data type"; - // } - //} - } - else - { - lblState.ForeColor = Color.Red; - lblState.Text = $"Not Connected to PCB"; - } - - //lblState.Text = loggedinMeters.Equals(_meterBatch.ListOfMeters.Count) ? $"Connected to Pcb{_currentPcbId}" : $"Not Connected to Pcb"; - }) - - ); - //SetBusy(false); - }); - - } - } - - SetBusy(false); - } + Connect(); } private void btnRead_Click(Object sender, EventArgs e) { SetBusy(true, "Read Registers"); - String hex = "4F793AF100000002"; - UInt64 value = ulong.Parse(hex, System.Globalization.NumberStyles.HexNumber); + var hex = "4F793AF100000002"; + var value = ulong.Parse(hex, NumberStyles.HexNumber); Console.WriteLine(value); @@ -306,7 +184,7 @@ namespace Xylem.Common.Ui.GenesisToolBox private void btnStore_Click(Object sender, EventArgs e) { SetBusy(true, "Store to file"); - Task.Factory.StartNew(() => { store(); }).ContinueWith(delegate + Task.Factory.StartNew(() => { StoreFile(); }).ContinueWith(delegate { SetBusy(false); }); @@ -314,9 +192,8 @@ namespace Xylem.Common.Ui.GenesisToolBox private void btnFileToMeter_Click(Object sender, EventArgs e) { - var openFileDialog = new OpenFileDialog(); - openFileDialog.Filter = "all JSON files (*.JSON)|*.JSON"; + openFileDialog.Filter = @"all JSON files (*.JSON)|*.JSON"; openFileDialog.Multiselect = false; if (openFileDialog.ShowDialog() == DialogResult.OK) @@ -325,7 +202,7 @@ namespace Xylem.Common.Ui.GenesisToolBox var filename = openFileDialog.FileName; - Task.Factory.StartNew(() => { load(filename); }).ContinueWith(delegate + Task.Factory.StartNew(() => { LoadFile(filename); }).ContinueWith(delegate { SetBusy(false); }); @@ -349,92 +226,39 @@ namespace Xylem.Common.Ui.GenesisToolBox private void WriteRegister(DataGridViewCellEventArgs e) { - - var inputValue = registerGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); - //byte[] newByteValue = new byte[inputValue.Count(s => s == '-')]; - //int i = 0; - //foreach (var item in inputValue.Split('-')) - //{ - // newByteValue[i] = 00; - //} - - String[] arr = inputValue.Split('-'); - Byte[] array = new Byte[arr.Length]; - for (Int32 i = arr.Length - 1; i >= 0; i--) + var arr = inputValue.Split('-'); + var array = new Byte[arr.Length]; + for (var i = arr.Length - 1; i >= 0; i--) { array[i] = Convert.ToByte(arr[i], 16); } - // currentGenesis.WriteRegister(Register.Genesisflow.LedMode, (Byte)Ledmode.FlowTestAndCalibData, checkRegister: true); var reg = (String)registerGridView.Rows[e.RowIndex].Cells[0].Value; var meterRegisters = _currentGenesis.GetConfigRegistersDefinitions(); var regDef = meterRegisters.GetRegisterDefinitionByName(reg); - if (regDef.DataType != typeof(String)) + if (regDef.DataType != typeof(String) && regDef.DataType != typeof(ByteArray)) array = array.Reverse().ToArray(); _currentGenesis.WriteRegister(reg, array, checkRegister: true); - //_currentGenesis.Logout(); - - //var funkadresse = new List(); - //funkadresse.AddRange((new Byte[] { 0x0E, 0x9F, 0xAC, 0xC6 }).ToArray()); - //funkadresse.AddRange((new Byte[] { 0xA0, 0xE1, 0xEF, 0x1C }).ToArray()); - //funkadresse.AddRange((new Byte[] { 0x3B, 0x27, 0xA4, 0x9B }).ToArray()); - //funkadresse.AddRange((new Byte[] { 0xAC, 0x21, 0x65, 0x35 }).ToArray()); - //_currentGenesis.WriteRegister("SENSUSRADIO_EncryptionKey", funkadresse.ToArray(), true, true); - - - - //_currentGenesis.WriteRegister("SENSUSRADIO_StoreConfiguration", 1, false); - ////funkadresse = new List(); - ////funkadresse.AddRange((new Byte[] { 0x0E, 0x9F, 0xAC, 0xC6 }).ToArray()); - ////funkadresse.AddRange((new Byte[] { 0xA0, 0xE1, 0xEF, 0x1C }).ToArray()); - ////funkadresse.AddRange((new Byte[] { 0x3B, 0x27, 0xA4, 0x9B }).ToArray()); - ////funkadresse.AddRange((new Byte[] { 0xAC, 0x21, 0x65, 0x35 }).ToArray()); - ////_currentGenesis.WriteRegister("SENSUSRADIO_EncryptionKey", funkadresse.ToArray().Reverse().ToArray(), true, true); - ////_currentGenesis.WriteRegister("SENSUSRADIO_StoreConfiguration", 1, false); - - ////funkadresse = new List(); - ////funkadresse.AddRange((new Byte[] { 0x0E, 0x9F, 0xAC, 0xC6 }).ToArray().Reverse().ToArray()); - ////funkadresse.AddRange((new Byte[] { 0xA0, 0xE1, 0xEF, 0x1C }).ToArray().Reverse().ToArray()); - ////funkadresse.AddRange((new Byte[] { 0x3B, 0x27, 0xA4, 0x9B }).ToArray().Reverse().ToArray()); - ////funkadresse.AddRange((new Byte[] { 0xAC, 0x21, 0x65, 0x35 }).ToArray().Reverse().ToArray()); - ////_currentGenesis.WriteRegister("SENSUSRADIO_EncryptionKey", funkadresse.ToArray().Reverse().ToArray(), true, true); - ////_currentGenesis.WriteRegister("SENSUSRADIO_StoreConfiguration", 1, false); - - //funkadresse = new List(); - //funkadresse.AddRange((new Byte[] { 0x00, 0x00, 0x00, 0x00 }).ToArray()); - //funkadresse.AddRange((new Byte[] { 0x00, 0x00, 0x00, 0x00 }).ToArray()); - //funkadresse.AddRange((new Byte[] { 0x00, 0x00, 0x00, 0x00 }).ToArray()); - //funkadresse.AddRange((new Byte[] { 0x00, 0x00, 0x00, 0x00 }).ToArray()); - //_currentGenesis.WriteRegister("SENSUSRADIO_EncryptionKey", funkadresse.ToArray(), true, true); - //_currentGenesis.WriteRegister("SENSUSRADIO_StoreConfiguration", 1, false); - - //// var newValue = BitConverter.GetBytes(registerGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value) - ////currentGenesis.WriteRegister() - } - //private void button1_Click(Object sender, EventArgs e) - //{ - // _currentGenesis.Logout(); - //} - private void frmRegisterStore_Load(Object sender, EventArgs e) { _meterBatch = new MeterBatch(); - var configfile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), nameof(Hardware.WaterMeter.Genesis), ProgramConfig.SerialConfigFileName); + var configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), nameof(Hardware.WaterMeter.Genesis), ProgramConfig.SerialConfigFileName); - if (!File.Exists(configfile)) + if (!File.Exists(configFile)) { - throw new ApplicationException($"Configuration file {configfile} not found "); + throw new ApplicationException($"Configuration file {configFile} not found "); } - var tr = new StreamReader(configfile); + var tr = new StreamReader(configFile); var meterConfigList = JsonConvert.DeserializeObject(tr.ReadToEnd()); cbComSlot.Items.Clear(); var listSlots = new List(); + if (listSlots == null) throw new ArgumentNullException(nameof(listSlots)); foreach (var item in meterConfigList) { cbComSlot.Items.Add(item.Slot); @@ -445,13 +269,12 @@ namespace Xylem.Common.Ui.GenesisToolBox cbComSlot.SelectedItem = cbComSlot.Items[0]; } - //foreach (var info in typeof(Register).GetNestedTypes()) - //{ - // cbPreselection.Items.Add(info.Name); - //} var version = Assembly.GetExecutingAssembly().GetName().Version; lblGtbVersion.Text = $@"GTB Version: {version.Major}.{version.Minor}.{version.Build}"; + DisableAllButtons(); + btnConnect.Enabled = true; + _defaultButtonColor = btnConnect.BackColor; } private void frmRegisterStore_FormClosing(Object sender, FormClosingEventArgs e) @@ -459,30 +282,197 @@ namespace Xylem.Common.Ui.GenesisToolBox _meterBatch.Dispose(); } - private Boolean Connect(Int32 slotNR) + private void DisableAllButtons() + { + Invoke(new Action(() => + { + btnConnect.Enabled = false; + btnReadRegister.Enabled = false; + + btnRadioPressure.Enabled = false; + btnSetDefaultPulse.Enabled = false; + btnBatLife.Enabled = false; + btnBatteryIdle.Enabled = false; + btnCalibrationRestore.Enabled = false; + btnStoreAll.Enabled = false; + + btnFileToRegister.Enabled = false; + btnRegisterToFile.Enabled = false; + + btnReadFwVersions.Enabled = false; + + btnReadRegister.BackColor = _defaultButtonColor; + + btnRadioPressure.BackColor = _defaultButtonColor; + btnSetDefaultPulse.BackColor = _defaultButtonColor; + btnBatLife.BackColor = _defaultButtonColor; + btnBatteryIdle.BackColor = _defaultButtonColor; + btnCalibrationRestore.BackColor = _defaultButtonColor; + btnStoreAll.BackColor = _defaultButtonColor; + + btnFileToRegister.BackColor = _defaultButtonColor; + btnRegisterToFile.BackColor = _defaultButtonColor; + + btnReadFwVersions.BackColor = _defaultButtonColor; + + })); + } + + private void EnableAllButtons() + { + Invoke(new Action(() => + { + btnConnect.Enabled = true; + btnReadRegister.Enabled = true; + + btnRadioPressure.Enabled = true; + btnSetDefaultPulse.Enabled = true; + btnBatLife.Enabled = true; + btnBatteryIdle.Enabled = true; + btnCalibrationRestore.Enabled = true; + btnStoreAll.Enabled = true; + + btnFileToRegister.Enabled = true; + btnRegisterToFile.Enabled = true; + + btnReadFwVersions.Enabled = true; + })); + } + + private void Connect() { try { + if (string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) || + !int.TryParse(cbComSlot.SelectedItem.ToString(), out var slotNo)) + { + return; + } + + SetBusy(true, "Connect"); + //disable all buttons + DisableAllButtons(); + _currentGenesis?.DisposeMeter(); + //dispose old meter _meterBatch.RemoveAllMeters(); + _currentGenesis = null; + + //assign new meter and assign meter to FW update file if this exists _currentGenesis = new GenesisMeter(); _currentGenesis.UseOfflinePasswords = cbxUseOfflinePwds.Checked; - _currentGenesis.SetupFromConfigFile(slotNR); - _currentGenesis.EnableAutoLogon(); + _currentGenesis.SetupFromConfigFile(slotNo); _meterBatch.AddMeter(_currentGenesis); - _currentGenesis.Login(); - _currentPcbId = _currentGenesis.PcbId; + + Task.Factory.StartNew(() => + { + _meterBatch.MetersLogin(); + + if (!_currentGenesis.IsLoggedOn && String.IsNullOrEmpty(_currentGenesis.PcbId)) + { + SetBusy(false); + MessageBox.Show(@"ERROR: Cannot read out PcbId! Access to Cordonel denied!"); + return; + } + + Invoke(new Action(() => + { + if (_currentGenesis.IsLoggedOn) + { + lblState.ForeColor = Color.Green; + lblState.Text = $@"Connected to PCB {_currentGenesis.PcbId}"; + lblConfigVersion.Text = @"Configuration Version: " + + _currentGenesis.InterfaceInfo.InterfaceVersion; + lblConfigVersion.ForeColor = + _currentGenesis.InterfaceSupportsFwVersion ? Color.Green : Color.Red; + if (!_currentGenesis.InterfaceSupportsFwVersion) + { + var text = "CONFIGURATION OUTDATED!\n\n" + + "The loaded \"configuration.json\" " + + $"version: {_currentGenesis.InterfaceInfo.InterfaceVersion}\n" + + $"does NOT support the Cordonel FW version: {_currentGenesis.FwVersion}!"; + MessageBox.Show(text, @"FAILED", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + _dataTable.Rows.Clear(); + + foreach (var item in _currentGenesis.GetRegistersDic()) + { + var row = _dataTable.NewRow(); + row["Name"] = item.Key.GetIdent(); + row["Type"] = item.Key.DataType.Name; + row["isChecked"] = false; + row["Value"] = ""; + row["RawValue"] = item.Value; + row["RawValueFile"] = item.Value; + + row["Min"] = item.Key.Minimum; + row["Max"] = item.Key.Maximum; + row["Description"] = item.Key.RegisterDetail.Description; + var From = item.Key.RegisterDetail.Version.First.HasValue + ? item.Key.RegisterDetail.Version.First.Value.ToString() + : "-"; + + var To = item.Key.RegisterDetail.Version.Last.HasValue + ? item.Key.RegisterDetail.Version.Last.Value.ToString() + : "-"; + + row["Version"] = $"from {From} to {To}"; + row["IsAvailable"] = item.Key.IsAvailable; + row["Privilege"] = item.Key.RegisterDetail.Privilege.Lvl8.ToString(); + row["btnHistoryText"] = "View History"; + + _dataTable.Rows.Add(row); + } + + registerGridView.DataSource = _dataTable.DefaultView; + var column = registerGridView?.Columns["isChecked"]; + if (column != null) + { + column.SortMode = DataGridViewColumnSortMode.Automatic; + registerGridView.Sort(column, ListSortDirection.Descending); + var viewColumn = registerGridView.Columns["RawValueFile"]; + if (viewColumn != null) viewColumn.Visible = false; + + } + + column = registerGridView?.Columns["Name"]; + if (column != null) + { + registerGridView.Sort(column, ListSortDirection.Ascending); + } + + var btnHistory = new DataGridViewButtonColumn(); + btnHistory.Name = "btnHistory"; + + btnHistory.DataPropertyName = "btnHistoryText"; + registerGridView?.Columns.AddRange(btnHistory); + + } + else + { + btnConnect.Enabled = false; + lblState.ForeColor = Color.Red; + lblState.Text = $@"Not Connected to PcbId:{_currentGenesis.PcbId}"; + registerGridView.Visible = false; + } + })); + }).ContinueWith(delegate + { + SetBusy(false); + EnableAllButtons(); + }); } catch (Exception ex) { + SetBusy(false); MessageBox.Show(ex.Message, @"FAILED", MessageBoxButtons.OK, MessageBoxIcon.Error); - Logger.Value.Error(ex, ex.Message); // Dispose meter _meterBatch.RemoveAllMeters(); // If meter is not already assigned to batch as the config reader may fail _currentGenesis?.DisposeMeter(); - return false; + + btnConnect.Enabled = true; } - return true; } private void GetPcbId(Int32 slotNR) @@ -508,6 +498,9 @@ namespace Xylem.Common.Ui.GenesisToolBox { Logger.Value.Error(ex, ex.Message); } + + _currentGenesis.Dispose(); + _currentGenesis = null; } private void SelectPreset(String content) @@ -632,39 +625,6 @@ namespace Xylem.Common.Ui.GenesisToolBox } break; - default: - - //foreach (var info in typeof(Register).GetNestedTypes()) - //{ - // if (info.Name.Equals(content)) - // { - // foreach (var childInfo in info.GetFields()) - // { - // if (childInfo.FieldType != typeof(RegisterDefinition)) continue; - // var addReg = (RegisterDefinition)childInfo.GetValue(this); - // addReg.Name = info.Name + "_" + childInfo.Name; - // foreach (var rowItem in _dataTable.Rows) - // { - // if (rowItem is System.Data.DataRow) - // { - // p => p.Equals(((DataRow)rowItem)["Name"].ToString()))) - - // if (((RegisterDefinition)((DataRow)rowItem)["regDef"]).Name.Equals(addReg.Name)) - // { - // ((DataRow)rowItem)["isChecked"] = true; - // } - // } - // } - // } - // } - //} - - - break; - - - - } @@ -674,122 +634,118 @@ namespace Xylem.Common.Ui.GenesisToolBox { public Int32 PcbID { get; set; } public DateTime BuildTime { get; set; } - public Dictionary RegisterList { get; set; } + public Dictionary RegisterList { get; set; } } private RegisterRestoreData ReadRegisters() { - regsToStore = new regStore() + if (_currentGenesis != null) { - PcbId = _currentPcbId, created = DateTimeOffset.Now, keyValues = new List() - }; - - var ret = new RegisterRestoreData() - { - PcbID = int.Parse(_currentPcbId), BuildTime = DateTime.Now, RegisterList = new Dictionary() - }; - - var total = 0; - foreach (var rowItem in _dataTable.Rows) - { - if (rowItem is DataRow) + _regsToStore = new regStore { - if ((Boolean)((DataRow)rowItem)["isChecked"]) + PcbId = _currentGenesis.PcbId, created = DateTimeOffset.Now, keyValues = new List() + }; + + var ret = new RegisterRestoreData + { + PcbID = int.Parse(_currentGenesis.PcbId), BuildTime = DateTime.Now, + RegisterList = new Dictionary() + }; + + var total = 0; + foreach (var rowItem in _dataTable.Rows) + { + if (rowItem is DataRow) { - total = total + 1; + if ((Boolean)((DataRow)rowItem)["isChecked"]) + { + total += 1; + } } } - } - var done = 0; - foreach (var rowItem in _dataTable.Rows) - { - if (rowItem is DataRow) + var done = 0; + foreach (var rowItem in _dataTable.Rows) { - if ((Boolean)((DataRow)rowItem)["isChecked"]) + if (rowItem is DataRow) { - - var reg = ((DataRow)rowItem)["Name"].ToString(); - - var meterRegisters = _currentGenesis.GetConfigRegistersDefinitions(); - var regDef = meterRegisters.GetRegisterDefinitionByName(reg); - SetProgress($"Read Register {regDef.RegisterName}", total, done + 1); - if (regDef.RegisterDetail != null && ( - regDef.RegisterDetail.Privilege.Lvl8 == Access.RO || - regDef.RegisterDetail.Privilege.Lvl8 == Access.RW)) + if ((Boolean)((DataRow)rowItem)["isChecked"]) { - try + + var reg = ((DataRow)rowItem)["Name"].ToString(); + + var meterRegisters = _currentGenesis.GetConfigRegistersDefinitions(); + var regDef = meterRegisters.GetRegisterDefinitionByName(reg); + SetProgress($"Read Register {regDef.RegisterName}", total, done + 1); + if (regDef.RegisterDetail != null && ( + regDef.RegisterDetail.Privilege.Lvl8 == Access.RO || + regDef.RegisterDetail.Privilege.Lvl8 == Access.RW)) { - Byte[] rawRegister; - rawRegister = _currentGenesis.ReadRegister(reg); - if (ret.RegisterList.ContainsKey(reg)) - { - ret.RegisterList[reg] = rawRegister; - } - else - { - ret.RegisterList.Add(reg, rawRegister); - } - - //var temp = RegisterConverter.GetRegisterContent(regDef, rawRegister); - ((DataRow)rowItem)["RawValue"] = RegisterConverter.GetRegisterRawText(regDef, rawRegister); - regsToStore.keyValues.Add(new regDefValue - { - def = regDef, value = BitConverter.ToString(rawRegister) - }); - try { + var rawRegister = _currentGenesis.ReadRegister(reg); + ret.RegisterList[reg] = rawRegister; - var result = RegisterConverter.ConvertToText(rawRegister, regDef.DataType); - ((DataRow)rowItem)["Value"] = result; + //var temp = RegisterConverter.GetRegisterContent(regDef, rawRegister); + ((DataRow)rowItem)["RawValue"] = RegisterConverter.GetRegisterRawText(regDef, rawRegister); + _regsToStore.keyValues.Add(new regDefValue + { + def = regDef, value = BitConverter.ToString(rawRegister) + }); + + try + { + var result = RegisterConverter.ConvertToText(rawRegister, regDef.DataType); + ((DataRow)rowItem)["Value"] = result; + } + catch (Exception) + { + ((DataRow)rowItem)["Value"] = "not converted"; + } } catch (Exception) { - ((DataRow)rowItem)["Value"] = "not converted"; + ((DataRow)rowItem)["Value"] = "error"; } } - catch (Exception e) + else { - ((DataRow)rowItem)["Value"] = "error"; + ((DataRow)rowItem)["RawValue"] = "No Access"; + ((DataRow)rowItem)["Value"] = ""; } + done += 1; } - else - { - ((DataRow)rowItem)["RawValue"] = "No Access"; - ((DataRow)rowItem)["Value"] = ""; - } - - done = done + 1; } } + + return ret; } - return ret; + + return null; } private void CompareFile(String filename) { - DataGridViewCellStyle styleDiff = new DataGridViewCellStyle(); - styleDiff.BackColor = Color.Red; - styleDiff.ForeColor = Color.Black; - - DataGridViewCellStyle styleEqual = new DataGridViewCellStyle(); - styleEqual.BackColor = Color.Green; - styleEqual.ForeColor = Color.Black; - - - + var styleDiff = new DataGridViewCellStyle + { + BackColor = Color.Red, + ForeColor = Color.Black + }; + var styleEqual = new DataGridViewCellStyle + { + BackColor = Color.Green, + ForeColor = Color.Black + }; SetProgress($"Read File {filename}"); var text = File.ReadAllText(filename); var loadedRegStore = JsonConvert.DeserializeObject(text); - var done = 1; foreach (var rowItem in _dataTable.Rows) @@ -797,7 +753,7 @@ namespace Xylem.Common.Ui.GenesisToolBox if (rowItem is DataRow) { - SetProgress($"Read file", loadedRegStore.keyValues.Count, done); + SetProgress("Read file", loadedRegStore.keyValues.Count, done); var reg = ((DataRow)rowItem)["Name"].ToString(); var meterRegisters = _currentGenesis.GetConfigRegistersDefinitions(); @@ -812,12 +768,11 @@ namespace Xylem.Common.Ui.GenesisToolBox if (regDef.RegisterDetail.Privilege.Lvl8 == Access.RO || regDef.RegisterDetail.Privilege.Lvl8 == Access.RW) { - Byte[] rawRegister; - rawRegister = _currentGenesis.ReadRegister(reg); + var rawRegister = _currentGenesis.ReadRegister(reg); //var temp = RegisterConverter.GetRegisterContent(regDef, rawRegister); ((DataRow)rowItem)["RawValue"] = RegisterConverter.GetRegisterRawText(regDef, rawRegister); - regsToStore.keyValues.Add(new regDefValue + _regsToStore.keyValues.Add(new regDefValue { def = regDef, value = BitConverter.ToString(rawRegister) }); @@ -859,8 +814,6 @@ namespace Xylem.Common.Ui.GenesisToolBox fileCell.Style = styleDiff; } } - - } else { @@ -868,28 +821,22 @@ namespace Xylem.Common.Ui.GenesisToolBox ((DataRow)rowItem)["Value"] = ""; } - done = done + 1; + done += 1; } else { - - ((DataRow)rowItem)["RawValueFile"] = "Not in File"; } - - } } } private void ShowFile(String filename) { - SetProgress($"Read File {filename}"); var text = File.ReadAllText(filename); var loadedRegStore = JsonConvert.DeserializeObject(text); - var done = 1; foreach (var rowItem in _dataTable.Rows) @@ -897,7 +844,7 @@ namespace Xylem.Common.Ui.GenesisToolBox if (rowItem is DataRow) { - SetProgress($"Compare file", loadedRegStore.keyValues.Count, done); + SetProgress("Compare file", loadedRegStore.keyValues.Count, done); var regDef = (RegisterDefinition)((DataRow)rowItem)["regDef"]; var keyValue = loadedRegStore.keyValues.FirstOrDefault(f => f.def.RegisterName.Equals(regDef.RegisterName)); @@ -911,13 +858,12 @@ namespace Xylem.Common.Ui.GenesisToolBox ((DataRow)rowItem)["RawValueFile"] = "Not in File"; } - done = done + 1; - + done += 1; } } } - private void load(String filename) + private void LoadFile(String filename) { //SetProgreess($"Read File {filename}"); //var text = File.ReadAllText(filename); @@ -939,14 +885,10 @@ namespace Xylem.Common.Ui.GenesisToolBox // done = done + 1; //} - //read(); - } - private regStore regsToStore; - - private void store() + private void StoreFile() { //read(); //var text = Newtonsoft.Json.JsonConvert.SerializeObject(regsToStore); @@ -974,16 +916,16 @@ namespace Xylem.Common.Ui.GenesisToolBox } - private void storeCsv() + private void StoreAsCsv() { ReadRegisters(); var csv = new StringBuilder(); - SaveFileDialog saveFileDialog = new SaveFileDialog(); - saveFileDialog.FileName = $"storePcbId{regsToStore.PcbId}on{regsToStore.created.ToString("yyyyMMdd")}.csv"; + var saveFileDialog = new SaveFileDialog(); + saveFileDialog.FileName = $"storePcbId{_regsToStore.PcbId}on{_regsToStore.created.ToString("yyyyMMdd")}.csv"; - csv.AppendLine($"name;value"); - foreach (var values in regsToStore.keyValues) + csv.AppendLine("name;value"); + foreach (var values in _regsToStore.keyValues) { csv.AppendLine($"{values.def.RegisterName};{values.value}"); } @@ -996,10 +938,6 @@ namespace Xylem.Common.Ui.GenesisToolBox File.WriteAllText(saveFileDialog.FileName, csv.ToString()); } })); - - - - } private List preSetAmplTest = new List(); @@ -1008,17 +946,13 @@ namespace Xylem.Common.Ui.GenesisToolBox private List preSetFlowCalibration = new List(); private List preSetAllMeteorological = new List(); private List preSetDefault = new List(); - private void loadPreSet() { #region defaults - - #endregion - preSetDefault.Add(Register.Genesisflow.SampleRate); preSetDefault.Add(Register.Genesisflow.LedMode); preSetDefault.Add(Register.Genesisflow.MeterSize); - + #endregion #region preSetAmplTest @@ -1055,7 +989,6 @@ namespace Xylem.Common.Ui.GenesisToolBox #endregion - #region preset All metro preSetAllMeteorological.AddRange(preSetAmplTest); @@ -1076,20 +1009,6 @@ namespace Xylem.Common.Ui.GenesisToolBox #endregion } - public class regStore - { - public String PcbId; - public DateTimeOffset created; - public List keyValues; - - } - - public class regDefValue - { - public RegisterDefinition def; - public String value; - } - private void btnGetPCbID_Click(Object sender, EventArgs e) { if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) @@ -1098,12 +1017,19 @@ namespace Xylem.Common.Ui.GenesisToolBox if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && int.TryParse(cbComSlot.SelectedItem.ToString(), out var slotNR)) { + SetBusy(true, "GetPcbId"); + + // as new meter object will be generated the data grid shows outdated data + _dataTable.Rows.Clear(); + DisableAllButtons(); + Task.Factory.StartNew(() => { GetPcbId(slotNR); }).ContinueWith(delegate { Invoke(new Action(() => { SetBusy(false); + btnConnect.Enabled = true; MessageBox.Show(_currentPcbId); })); }); @@ -1112,23 +1038,6 @@ namespace Xylem.Common.Ui.GenesisToolBox } } - //private void button1_Click_1(Object sender, EventArgs e) - //{ - // if (_currentGenesis != null) - // { - // _currentGenesis.ResetAlarm(Alarm.EMPTY_PIPE); - // } - //} - - //private void button2_Click(Object sender, EventArgs e) - //{ - // if (_currentGenesis != null) - // { - // MessageBox.Show( - // $@"Check alarm EMPTY_PIPE = {_currentGenesis.HasAlarms(Alarm.EMPTY_PIPE)}"); - // } - //} - private void btnReadFwVersions_Click(Object sender, EventArgs e) { if (_currentGenesis != null) @@ -1155,15 +1064,13 @@ namespace Xylem.Common.Ui.GenesisToolBox { if (_currentGenesis != null) { - - var fa = new List(); - fa.AddRange((new Byte[] { 0x0E, 0x9F, 0xAC, 0xC6 }).ToArray()); - fa.AddRange((new Byte[] { 0xA0, 0xE1, 0xEF, 0x1C }).ToArray()); - fa.AddRange((new Byte[] { 0x3B, 0x27, 0xA4, 0x9B }).ToArray()); - fa.AddRange((new Byte[] { 0xAC, 0x21, 0x65, 0x35 }).ToArray()); + fa.AddRange((new Byte[] { 0x0E, 0x9F, 0xAC, 0xC6 })); + fa.AddRange((new Byte[] { 0xA0, 0xE1, 0xEF, 0x1C })); + fa.AddRange((new Byte[] { 0x3B, 0x27, 0xA4, 0x9B })); + fa.AddRange((new Byte[] { 0xAC, 0x21, 0x65, 0x35 })); + _currentGenesis.ReLogin(); _currentGenesis.WriteRegister("SENSUSRADIO_EncryptionKey", fa.ToArray()); - return; //var before = _currentGenesis.ReadRegister("SYSTEM_CalendarSeconds"); //var tsa = DateTimeOffset.UtcNow - new DateTimeOffset(2000, 1, 1, 0, 0, 0, new TimeSpan(0)); @@ -1438,23 +1345,12 @@ namespace Xylem.Common.Ui.GenesisToolBox ////using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value)) ////{ - - - - - - - - //var resultDic = new Dictionary(); // resultDic.Add("SENSUSRADIO_RadioAddress", ra); // //10412000966 - - - //resultDic.Add("SENSUSRADIO_EncryptionKey", new Byte[] {0x40, 0x28, 0x98, 0xCE, 0x00}); //} @@ -1516,11 +1412,11 @@ namespace Xylem.Common.Ui.GenesisToolBox if (allSucceed) { - MessageBox.Show("Json Check Succeed!"); + MessageBox.Show(@"Json Check Succeed!"); } else { - MessageBox.Show("Json Check Failed!"); + MessageBox.Show(@"Json Check Failed!"); } } } @@ -1530,6 +1426,7 @@ namespace Xylem.Common.Ui.GenesisToolBox if (_currentGenesis != null) { + _currentGenesis.ReLogin(); //var rees1 = _currentGenesis.ReadRegister("SENSUSRADIO_EncryptionKey",32); //var rees2 = _currentGenesis.ReadRegister("SENSUSRADIO_Authentification", 32); @@ -1547,7 +1444,7 @@ namespace Xylem.Common.Ui.GenesisToolBox _currentGenesis.WriteRegister(Register.Genesisflow.SampleRate, 10, checkRegister: true); _currentGenesis.WriteRegister(Register.Genesisflow.LedMode, 6, checkRegister: true); - _currentGenesis.WriteRegister("GENESISFLOW_TriggerActive", 1, true, false); + _currentGenesis.WriteRegister("GENESISFLOW_TriggerActive", 1); _currentGenesis_WriteRegister("GENESISFLOW_DisplayPow10", (new Byte[] { 0x00, 0x00, 0x00, 0xFA }).Reverse().ToArray(), true, true); @@ -1560,6 +1457,7 @@ namespace Xylem.Common.Ui.GenesisToolBox { if (_currentGenesis != null) { + _currentGenesis.ReLogin(); _currentGenesis_WriteRegister("GENESISFLOW_SealDisplay", (new Byte[] { 0x00, 0x00, 0x00, 0x00 }).Reverse().ToArray(), true, true); @@ -1597,30 +1495,13 @@ namespace Xylem.Common.Ui.GenesisToolBox _currentGenesis_WriteRegister("METROLOGYASST_FlowUnits", (new Byte[] { 0x00, 0x00, 0x00, 0x04 }).Reverse().ToArray(), true, true); _currentGenesis_WriteRegister("GENESISFLOW_DisplayUnits", (new Byte[] { 0x00, 0x00, 0x00, 0x00 }).Reverse().ToArray(), true, true); - - - _currentGenesis_WriteRegister("GENESISFLOW_SealDisplay", (new Byte[] { 0x00, 0x00, 0x00, 0x01 }).Reverse().ToArray(), true, true); - - - } - - private void btn_MultiReadWrite_Click(Object sender, EventArgs e) - { - - } - - private void btnHistory_Click(Object sender, EventArgs e) - { - - } private void registerGridView_CellClick(Object sender, DataGridViewCellEventArgs e) { - - if (e.ColumnIndex > 0 && registerGridView.Columns[e.ColumnIndex] is DataGridViewButtonColumn historyColumn) + if (e.ColumnIndex > 0 && registerGridView.Columns[e.ColumnIndex] is DataGridViewButtonColumn) { if (_currentGenesis != null && _currentGenesis.IsLoggedOn) { @@ -1640,6 +1521,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } private String _preSelectReminder = "None"; + private void lblState_Click(Object sender, EventArgs e) { if (_preSelectReminder.Contains("None")) @@ -1654,118 +1536,81 @@ namespace Xylem.Common.Ui.GenesisToolBox } } - private void button1_Click_3(Object sender, EventArgs e) + private void btnSetDefaultPulse_Click(Object sender, EventArgs e) { - - - - } - - private void button2_Click_2(Object sender, EventArgs e) - { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) + if (_currentGenesis != null) { - Int32 slotNR = 0; - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) + _currentGenesis.ReLogin(); + btnSetDefaultPulse.BackColor = Color.Yellow; + try { - - button2.BackColor = Color.Yellow; - try + if (_currentGenesis.IsLoggedOn) { - Connect(slotNR); - foreach (var me in _meterBatch.ListOfMeters) - { - if (me is GenesisMeter) - { - if (((GenesisMeter)me).IsLoggedOn) - { - _currentGenesis = ((GenesisMeter)me); + _currentGenesis.WriteRegister("METROLOGYASST_PulseMode", 1); - _currentGenesis.WriteRegister("METROLOGYASST_PulseMode", 1); + _currentGenesis.WriteRegister("METROLOGYASST_PulseWeight", 32000); - _currentGenesis.WriteRegister("METROLOGYASST_PulseWeight", 32000); + _currentGenesis.WriteRegister("METROLOGYASST_PulseLength", 8); + _currentGenesis.WriteRegister("GENESISFLOW_SampleRate", 2); + _currentGenesis.WriteRegister("GENESISFLOW_LedMode", 0); - _currentGenesis.WriteRegister("METROLOGYASST_PulseLength", 8); - _currentGenesis.WriteRegister("GENESISFLOW_SampleRate", 2); - _currentGenesis.WriteRegister("GENESISFLOW_LedMode", 0); + _currentGenesis.WriteRegister("GENESISFLOW_TriggerActive", 1); - _currentGenesis.WriteRegister("GENESISFLOW_TriggerActive", 1); - - button2.BackColor = Color.Green; - return; - } - - } - } + btnSetDefaultPulse.BackColor = Color.Green; + _currentGenesis.Logout(); + return; } - catch (Exception ex) - { - - MessageBox.Show(ex.Message); - } - - button2.BackColor = Color.Red; } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + + _currentGenesis.Logout(); + btnSetDefaultPulse.BackColor = Color.Red; } } - private void button1_Click_4(Object sender, EventArgs e) + private void btnBatteryIdle_Click(Object sender, EventArgs e) { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) + if (_currentGenesis != null) { - Int32 slotNR = 0; - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) + _currentGenesis.ReLogin(); + btnBatteryIdle.BackColor = Color.Yellow; + try { - - button1.BackColor = Color.Yellow; - try + var ts = DateTimeOffset.UtcNow - new DateTimeOffset(2000, 1, 1, 0, 0, 0, new TimeSpan(0)); + if (_currentGenesis.IsLoggedOn) { - Connect(slotNR); - var ts = DateTimeOffset.UtcNow - new DateTimeOffset(2000, 1, 1, 0, 0, 0, new TimeSpan(0)); - foreach (var me in _meterBatch.ListOfMeters) + _currentGenesis.WriteRegister("GENESISFLOW_SealDisplay", 0); + _currentGenesis.WriteRegister("POWERMON_WarnFromClamp", (UInt32)473040000); + _currentGenesis.WriteRegister("SYSTEM_CalendarSeconds", Convert.ToInt32(ts.TotalSeconds)); + var r = _currentGenesis.ReadRegister(Register.Genesisflow.TriggerIdle); + if (r[1] == 18) { - if (me is GenesisMeter) - { - if (((GenesisMeter)me).IsLoggedOn) - { - _currentGenesis = ((GenesisMeter)me); + var newVal = r[0] + 0x01; + var n = new Byte[] { (Byte)newVal, r[1], 0x00, 0x00 }; - _currentGenesis.WriteRegister("GENESISFLOW_SealDisplay", 0); - _currentGenesis.WriteRegister("POWERMON_WarnFromClamp", (UInt32)473040000); - _currentGenesis.WriteRegister("SYSTEM_CalendarSeconds", Convert.ToInt32(ts.TotalSeconds)); - var r = _currentGenesis.ReadRegister(Register.Genesisflow.TriggerIdle); - if (r[1] == 18) - { - - - Int32 newVal = (Int32)r[0] + (Int32)0x01; - var n = new Byte[] { (Byte)newVal, r[1], 0x00, 0x00 }; - - - _currentGenesis.WriteRegister(Register.Genesisflow.TriggerIdle, n); - } - else - { - _currentGenesis.SetLcdText(false, new Byte[] { 0x12, 0x35 }); - } - - button1.BackColor = Color.Green; - return; - } - - } + _currentGenesis.WriteRegister(Register.Genesisflow.TriggerIdle, n); + } + else + { + _currentGenesis.SetLcdText(false, new Byte[] { 0x12, 0x35 }); } - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); + btnBatteryIdle.BackColor = Color.Green; + _currentGenesis.Logout(); + return; } - button1.BackColor = Color.Red; } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + + btnBatteryIdle.BackColor = Color.Red; + _currentGenesis.Logout(); } } @@ -1776,45 +1621,30 @@ namespace Xylem.Common.Ui.GenesisToolBox private void btnStoreAll_Click(Object sender, EventArgs e) { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) + if (_currentGenesis != null) { - Int32 slotNR = 0; - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) + _currentGenesis.ReLogin(); + btnStoreAll.BackColor = Color.Yellow; + try { - - btnStoreAll.BackColor = Color.Yellow; - try + if (_currentGenesis.IsLoggedOn) { - foreach (var me in _meterBatch.ListOfMeters) + var resultAll = _currentGenesis.StoreAllConfigurations(); + if (resultAll) { - if (me is GenesisMeter) - { - if (((GenesisMeter)me).IsLoggedOn) - { - _currentGenesis = ((GenesisMeter)me); - - var resultAll = _currentGenesis.StoreAllConfigurations(); - if (resultAll) - { - btnStoreAll.BackColor = Color.Green; - return; - } - - } - - } + btnStoreAll.BackColor = Color.Green; + _currentGenesis.Logout(); + return; } - } - catch (Exception ex) - { - - MessageBox.Show(ex.Message); - } - btnStoreAll.BackColor = Color.Red; - } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + + _currentGenesis.Logout(); + btnStoreAll.BackColor = Color.Red; } } @@ -1871,382 +1701,221 @@ namespace Xylem.Common.Ui.GenesisToolBox //} - private void bn() + private void CheckAndDisplayRebootCount() { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) + if (_currentGenesis != null) { - Int32 slotNR = 0; - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) + _currentGenesis.ReLogin(); + timer1.Enabled = false; + btnRegisterToFile.BackColor = Color.Yellow; + try { - timer1.Enabled = false; - btnRegisterToFile.BackColor = Color.Yellow; - try - { - Connect(slotNR); - foreach (var me in _meterBatch.ListOfMeters) - { - if (me is GenesisMeter) - { - if (((GenesisMeter)me).IsLoggedOn) - { - _currentGenesis = ((GenesisMeter)me); - - var reboot = _currentGenesis.ReadRegister("CUSTOMER_RebootCount"); - - _currentGenesis.ReadRegister("POWERMON_BatteryQuantity"); - _currentGenesis.SetLcdText(false, new Byte[] { 0xAC, reboot[0] }); - btnRegisterToFile.BackColor = Color.Green; - timer1.Enabled = true; - return; - } - - } - } - } - catch (Exception ex) + + if (_currentGenesis.IsLoggedOn) { + var reboot = _currentGenesis.ReadRegister("CUSTOMER_RebootCount"); + _currentGenesis.ReadRegister("POWERMON_BatteryQuantity"); + _currentGenesis.SetLcdText(false, new Byte[] { 0xAC, reboot[0] }); + btnRegisterToFile.BackColor = Color.Green; timer1.Enabled = true; - btnRegisterToFile.BackColor = Color.Red; + _currentGenesis.Logout(); return; } - timer1.Enabled = true; - btnRegisterToFile.BackColor = Color.Gray; - return; - } + catch (Exception) + { + timer1.Enabled = true; + btnRegisterToFile.BackColor = Color.Red; + return; + } + + _currentGenesis.Logout(); + timer1.Enabled = true; + btnRegisterToFile.BackColor = Color.Gray; } - - } - - /// - /// Upload installed FW versions and core revision to DB. - /// - /// - /// - Initial - /// - /// - /// - Changed version from Uint32 to String - /// - /// - /// - Changed core revision from string to Int32?. - /// - private void button3_Click(Object sender, EventArgs e) - { - } private void timer1_Tick(Object sender, EventArgs e) { - bn(); + CheckAndDisplayRebootCount(); } - private void button4_Click(Object sender, EventArgs e) - { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) - { - Int32 slotNR = 0; - _currentPcbId = ""; - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) - { - SetBusy(true, "GetPcbId"); - Task.Factory.StartNew((Action)(() => - { - GetPcbId(slotNR); - - var str = LocalWebRequest.GetRequest($"{ServiceUrls.GenesisFinalCheckServiceUrl()}GetPossibleRadioLengths?CheckPcbId={_currentPcbId}", 15000); - MessageBox.Show(str); - })).ContinueWith(delegate - { - - Invoke(new Action(() => - { - MessageBox.Show(_currentPcbId); - SetBusy(false); - })); - }); - - } - } - } - - private void button6_Click(Object sender, EventArgs e) - { - //Seal Display test - _currentGenesis.WriteRegister("SYSTEM_ExitReason", 21, true, false); - var exitResult = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister("SYSTEM_ExitReason")); - - MessageBox.Show(exitResult.ToString()); - - var _meterResetPsu = new MeterResetPsu(_currentGenesis) - { - StoreConfigEnable = true - }; - var rebootSucceeded = _meterResetPsu.MeterResetPsuExecute(); - - Thread.Sleep(16000); - if (!_currentGenesis.Login()) - - { - _currentGenesis.WriteLog("relogin first attempt Failed"); - Thread.Sleep(5000); - if (!_currentGenesis.Login()) - { - - } - } - _currentGenesis.WriteRegister("SYSTEM_ExitReason", 21, true, false); - exitResult = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister("SYSTEM_ExitReason")); - - MessageBox.Show(exitResult.ToString()); - - - } - - - - private void btnUI1236Com_Click(Object sender, EventArgs e) - { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) - { - Int32 slotNR = 0; - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) - { - try - { - Connect(slotNR); - foreach (var me in _meterBatch.ListOfMeters) - { - if (me is GenesisMeter) - { - if (((GenesisMeter)me).IsLoggedOn) - { - _currentGenesis = ((GenesisMeter)me); - _currentGenesis.SendUI1236Command(new Byte[] { 0x0d, 0x04, 0x08, 0x01, 0x00, 0x1a }, true, false); - - - } - - } - } - } - catch (Exception ex) - { - - return; - } - - - return; - - } - } - } private void btnBatLife_Click(Object sender, EventArgs e) { - if (cbComSlot.SelectedItem == null) + if (_currentGenesis != null) { - return; - } - - if (string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) || - !int.TryParse(cbComSlot.SelectedItem.ToString(), out var slotNR)) - { - return; - } - - try - { - Connect(slotNR); - foreach (var me in _meterBatch.ListOfMeters) + _currentGenesis.ReLogin(); + try { - if (me is GenesisMeter) + if (_currentGenesis.IsLoggedOn) { - if (((GenesisMeter)me).IsLoggedOn) + var t = new JustageResults { - _currentGenesis = ((GenesisMeter)me); + pcbId = _currentGenesis.PcbId, + p1Target = 0, + p1Value = RegisterConverter.ByteArrayToValue( + _currentGenesis.ReadRegister(Register.Genesisflow.CalFactor1)), + p2Target = 0, + p2Value = RegisterConverter.ByteArrayToValue( + _currentGenesis.ReadRegister(Register.Genesisflow.CalFactor2)), + p3Target = 0, + p3Value = RegisterConverter.ByteArrayToValue( + _currentGenesis.ReadRegister(Register.Genesisflow.CalFactor3)), + dt = DateTime.UtcNow + }; + try + { + var tmpUrl = "http://10.49.40.25/MeterProcessState/api/TestBench/SetCalibrationValues"; + //ToDO: Update to service URl + t.PostAsJson(tmpUrl); + } + catch (Exception) + { + // + } + var genesisStatus = new GenesisStatus(); + if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, genesisStatus, out _)) + { + var sbMSG = new StringBuilder(); + sbMSG.AppendLine($"Pcb = {_currentGenesis.PcbId}"); + sbMSG.AppendLine($"POWERMON_TotalUsedSeconds = {genesisStatus.ExceededLifeTime_s}"); + sbMSG.AppendLine($"POWERMON_TotalUsedCharge = {genesisStatus.DrainedBatteryLoad_uAs}"); + sbMSG.AppendLine($"POWERMON_BatteryQuantity = {genesisStatus.BatteryQuantity}"); + sbMSG.AppendLine($"POWERMON_BatteryMilliAHrRating = {genesisStatus.InitialBatteryLoad_mAh}"); + sbMSG.AppendLine(""); + sbMSG.AppendLine($"Remaining life time in years {genesisStatus.RemainingLifeTimeYears:F2}"); + sbMSG.AppendLine($"Totally drained battery load in % {genesisStatus.DrainedBatteryLoadPercent:F2}"); - var t = new JustageResults() - { - pcbId = _currentGenesis.PcbId, - p1Target = 0, - p1Value = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.CalFactor1)), - p2Target = 0, - p2Value = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.CalFactor2)), - p3Target = 0, - p3Value = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.CalFactor3)), - dt = DateTime.UtcNow - - }; - - - try - { - var tmpUrl = $"http://10.49.40.25/MeterProcessState/api/TestBench/SetCalibrationValues"; - //ToDO: Update to service URl - - Logic.SoftwareAccessHelper.LocalWebRequest.PostAsJson(t, tmpUrl); - } - catch (Exception ex) - { - - } - - - - var genesisStatus = new GenesisStatus(); - if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, genesisStatus, out _)) - { - - var sbMSG = new StringBuilder(); - sbMSG.AppendLine($"Pcb = {_currentGenesis.PcbId}"); - - sbMSG.AppendLine($"POWERMON_TotalUsedSeconds = {genesisStatus.ExceededLifeTime_s}"); - sbMSG.AppendLine($"POWERMON_TotalUsedCharge = {genesisStatus.DrainedBatteryLoad_uAs}"); - sbMSG.AppendLine($"POWERMON_BatteryQuantity = {genesisStatus.BatteryQuantity}"); - sbMSG.AppendLine($"POWERMON_BatteryMilliAHrRating = {genesisStatus.InitialBatteryLoad_mAh}"); - sbMSG.AppendLine(""); - sbMSG.AppendLine($"Remaining life time in years {genesisStatus.RemainingLifeTimeYears:F2}"); - sbMSG.AppendLine($"Totally drained battery load in % {genesisStatus.DrainedBatteryLoadPercent:F2}"); - - - - - MessageBox.Show(sbMSG.ToString(), $"Battery for {_currentGenesis.PcbId} has remaining life " + - $"time of {genesisStatus.RemainingLifeTimeYears:F2} years"); - } - else - { - MessageBox.Show("Failed to get life time information"); - } + MessageBox.Show(sbMSG.ToString(), $@"Battery for {_currentGenesis.PcbId} has remaining life " + + $@"time of {genesisStatus.RemainingLifeTimeYears:F2} years"); + } + else + { + MessageBox.Show(@"Failed to get life time information"); } } } - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString()); + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + + _currentGenesis.Logout(); } } private void btnRadioPressure_Click(Object sender, EventArgs e) { - - if (cbComSlot.SelectedItem == null) + if (_currentGenesis != null) { - return; - } - - if (string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) || - !int.TryParse(cbComSlot.SelectedItem.ToString(), out var slotNR)) - { - return; - } - - try - { - var ret = "nicht geklappt"; - Connect(slotNR); - foreach (var me in _meterBatch.ListOfMeters) + btnRadioPressure.BackColor = Color.Yellow; + _currentGenesis.ReLogin(); + try { - if (me is GenesisMeter Meter) + var ret = "Failed"; + if (_currentGenesis.IsLoggedOn) { - if (((GenesisMeter)me).IsLoggedOn) + + //CUSTOMER_AlarmEnableMask - 00-00-80-53 + //CUSTOMER_AlarmBroadcastMask - 00-00-1F-DC + //CUSTOMER_AlarmVisualMask - 00-00-1F-DC + // + + _currentGenesis.WriteRegister("SENSUSRADIO_MainAlarmMask", new Byte[] { 0x00 }); + _currentGenesis.WriteRegister("SENSUSRADIO_ExtendedAlarmMask", new Byte[] { 0x00 }); + + _currentGenesis.WriteRegister("CUSTOMER_AlarmEnableMask", new Byte[] { 0xD3, 0x9F, 0x00, 0x00 }); + _currentGenesis.WriteRegister("CUSTOMER_AlarmBroadcastMask", new Byte[] { 0xDC, 0x1F, 0x00, 0x00 }); + _currentGenesis.WriteRegister("CUSTOMER_AlarmVisualMask", new Byte[] { 0xDC, 0x1F, 0x00, 0x00 }); + + _currentGenesis.WriteRegister("SENSUSRADIO_SystemState", 0xFF); + _currentGenesis.Logout(); + Thread.Sleep(3000); + if (!_currentGenesis.ReLogin()) { - - //CUSTOMER_AlarmEnableMask - 00-00-80-53 - //CUSTOMER_AlarmBroadcastMask - 00-00-1F-DC - //CUSTOMER_AlarmVisualMask - 00-00-1F-DC - // - - Meter.WriteRegister("SENSUSRADIO_MainAlarmMask", new Byte[] { 0x00 }, true); - Meter.WriteRegister("SENSUSRADIO_ExtendedAlarmMask", new Byte[] { 0x00 }, true); - - Meter.WriteRegister("CUSTOMER_AlarmEnableMask", new Byte[] { 0xD3, 0x9F, 0x00, 0x00 }, true); - Meter.WriteRegister("CUSTOMER_AlarmBroadcastMask", new Byte[] { 0xDC, 0x1F, 0x00, 0x00 }, true); - Meter.WriteRegister("CUSTOMER_AlarmVisualMask", new Byte[] { 0xDC, 0x1F, 0x00, 0x00 }, true); - - Meter.WriteRegister("SENSUSRADIO_SystemState", 0xFF, true); - Meter.Logout(); Thread.Sleep(5000); - if (!Meter.Login()) + if (!_currentGenesis.ReLogin()) { - Thread.Sleep(5000); - if (!Meter.Login()) - { - } } + } - var SENSUSRADIO_MainAlarmMask = Meter.ReadRegister("SENSUSRADIO_MainAlarmMask"); - var SENSUSRADIO_ExtendedAlarmMask = Meter.ReadRegister("SENSUSRADIO_ExtendedAlarmMask"); + /*var SENSUSRADIO_MainAlarmMask = */ + _currentGenesis.ReadRegister("SENSUSRADIO_MainAlarmMask"); + /*var SENSUSRADIO_ExtendedAlarmMask = */ + _currentGenesis.ReadRegister("SENSUSRADIO_ExtendedAlarmMask"); - //_currentGenesis = ((GenesisMeter)me); - //_currentGenesis.WriteRegister("POWERMON_BatteryQuantity", 2, true, true); + //_currentGenesis.WriteRegister("POWERMON_BatteryQuantity", 2, true, true); - //var defEncryptionKey = new List(); - //defEncryptionKey.AddRange(new Byte[] { 0x0E, 0x9F, 0xAC, 0xC6 }.ToArray()); - //defEncryptionKey.AddRange(new Byte[] { 0xA0, 0xE1, 0xEF, 0x1C }.ToArray()); - //defEncryptionKey.AddRange(new Byte[] { 0x3B, 0x27, 0xA4, 0x9B }.ToArray()); - //defEncryptionKey.AddRange(new Byte[] { 0xAC, 0x21, 0x65, 0x35 }.ToArray()); - //_currentGenesis.WriteRegister("SENSUSRADIO_EncryptionKey", defEncryptionKey.ToArray(), true); + //var defEncryptionKey = new List(); + //defEncryptionKey.AddRange(new Byte[] { 0x0E, 0x9F, 0xAC, 0xC6 }.ToArray()); + //defEncryptionKey.AddRange(new Byte[] { 0xA0, 0xE1, 0xEF, 0x1C }.ToArray()); + //defEncryptionKey.AddRange(new Byte[] { 0x3B, 0x27, 0xA4, 0x9B }.ToArray()); + //defEncryptionKey.AddRange(new Byte[] { 0xAC, 0x21, 0x65, 0x35 }.ToArray()); + //_currentGenesis.WriteRegister("SENSUSRADIO_EncryptionKey", defEncryptionKey.ToArray(), true); - //var freq = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister("SENSUSRADIO_FrequencyIndicator")); - //var RadioAdress = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister("SENSUSRADIO_RadioAddress")); - //_currentGenesis.WriteRegister("SENSUSRADIO_SystemState", 0xFF, true); - - //_currentGenesis.WriteRegister("SENSUSRADIO_WakeupInterval", 0, true); - //_currentGenesis.Logout(); - //File.AppendAllLines("RadioActivation.log", new[] { $"{freq};{_currentGenesis.PcbId};{RadioAdress};{DateTime.Now}" }); - //ret = $"{freq};{_currentGenesis.PcbId};{RadioAdress};{DateTime.Now}"; - + var freq = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister("SENSUSRADIO_FrequencyIndicator")); + var radioAddress = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister("SENSUSRADIO_RadioAddress")); + //_currentGenesis.WriteRegister("SENSUSRADIO_SystemState", 0xFF); + //_currentGenesis.WriteRegister("SENSUSRADIO_WakeupInterval", 0); + //_currentGenesis.Logout(); + //File.AppendAllLines("RadioActivation.log", new[] { $"{freq};{_currentGenesis.PcbId};{RadioAdress};{DateTime.Now}" }); + if (0x02 == RegisterConverter.ByteArrayToValue( + _currentGenesis.ReadRegister("SENSUSRADIO_SystemState"))) + { + btnRadioPressure.BackColor = Color.Green; + ret = $"{freq};{_currentGenesis.PcbId};{radioAddress};{DateTime.Now}"; + } + else + { + btnRadioPressure.BackColor = Color.Red; + } } - } - MessageBox.Show(ret); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString()); - } + MessageBox.Show(ret); + } + catch (Exception ex) + { + btnRadioPressure.BackColor = Color.Red; + MessageBox.Show(ex.ToString()); + } + _currentGenesis.Logout(); + } } - private void btn_CalibrationRestore_Click(Object sender, EventArgs e) + private void btnCalibrationRestore_Click(Object sender, EventArgs e) { - string err; - foreach (var me in _meterBatch.ListOfMeters) - { - if (me is GenesisMeter Meter) - { - if (((GenesisMeter)me).IsLoggedOn) - { - //check if pcb is in file - // no - //Pcb , cal valus into txt file - // cal value + 0,6 - // store - // update Calvalues + //foreach (var me in _meterBatch.ListOfMeters) + //{ + // if (me is GenesisMeter Meter) + // { + // if (((GenesisMeter)me).IsLoggedOn) + // { + // //check if pcb is in file + // // no + // //Pcb , cal valus into txt file + // // cal value + 0,6 + // // store + // // update Calvalues - //yes - //msg - } - } - } + // //yes + // //msg + // } + // } + //} } public static Boolean GetCalibrationResultsFromDbperRun(String RunId, CalibrationResults calibResults, - out String errorMsg) + out String errorMsg) { errorMsg = ""; if (null == calibResults) @@ -2280,569 +1949,431 @@ namespace Xylem.Common.Ui.GenesisToolBox return false; } - private async void FingerWeg_Clicked(object sender, EventArgs args) + private void FingerWeg_Clicked(Object sender, EventArgs args) { - if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) + if (_currentGenesis != null) { - Int32 slotNR = 0; - if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && - int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) + _currentGenesis.ReLogin(); + try { - try + if (_currentGenesis.IsLoggedOn) { - Connect(slotNR); - foreach (var Me in _meterBatch.ListOfMeters) - { - if (Me is GenesisMeter) - { - if (((GenesisMeter)Me).IsLoggedOn) - { - var Meter = ((GenesisMeter)Me); - var readsOk = new List(); - byte[] retByte; - var Meter_calibrationResult = new CalibrationResult(); - Meter_calibrationResult.MeterSize = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.MeterSize)); + var Meter_calibrationResult = new CalibrationResult(); + Meter_calibrationResult.MeterSize = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.MeterSize)); - //readsOk.Add(ReadRegisterRetry(Meter, "CalFactor1", Register.Genesisflow.CalFactor1, out retByte)); - Meter_calibrationResult.CalFactor1 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.CalFactor1)); - //readsOk.Add(ReadRegisterRetry(Meter, "CalFactor2", Register.Genesisflow.CalFactor2, out retByte)); - Meter_calibrationResult.CalFactor2 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.CalFactor2)); - //readsOk.Add(ReadRegisterRetry(Meter, "CalFactor3", Register.Genesisflow.CalFactor3, out retByte)); - Meter_calibrationResult.CalFactor3 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.CalFactor3)); - //readsOk.Add(ReadRegisterRetry(Meter, "ZeroOffset1", Register.Genesisflow.ZeroOffset1, out retByte)); - Meter_calibrationResult.ZeroOffset1 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.ZeroOffset1)); - //readsOk.Add(ReadRegisterRetry(Meter, "ZeroOffset2", Register.Genesisflow.ZeroOffset2, out retByte)); - Meter_calibrationResult.ZeroOffset2 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.ZeroOffset2)); - //readsOk.Add(ReadRegisterRetry(Meter, "ZeroOffset3", Register.Genesisflow.ZeroOffset3, out retByte)); - Meter_calibrationResult.ZeroOffset3 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.ZeroOffset3)); - //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitUpdatePeriod", Register.Genesisflow.FirstHitUpdatePeriod, out retByte)); - Meter_calibrationResult.FirstHitUpdatePeriod = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.FirstHitUpdatePeriod)); - //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitShift", Register.Genesisflow.FirstHitShift, out retByte)); - Meter_calibrationResult.FirstHitShift = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.FirstHitShift)); - //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitPercent1", Register.Genesisflow.FirstHitPercent1, out retByte)); - Meter_calibrationResult.FirstHitPercent1 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.FirstHitPercent1)); - //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitPercent2", Register.Genesisflow.FirstHitPercent2, out retByte)); - Meter_calibrationResult.FirstHitPercent2 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.FirstHitPercent2)); - //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitPercent3", Register.Genesisflow.FirstHitPercent3, out retByte)); - Meter_calibrationResult.FirstHitPercent3 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.FirstHitPercent3)); - //readsOk.Add(ReadRegisterRetry(Meter, "ToFTempOffset1", Register.Genesisflow.ToFTempOffset1, out retByte)); - Meter_calibrationResult.ToFTempOffset1 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.ToFTempOffset1)); - //readsOk.Add(ReadRegisterRetry(Meter, "ToFTempOffset2", Register.Genesisflow.ToFTempOffset2, out retByte)); - Meter_calibrationResult.ToFTempOffset2 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.ToFTempOffset2)); + //readsOk.Add(ReadRegisterRetry(Meter, "CalFactor1", Register.Genesisflow.CalFactor1, out retByte)); + Meter_calibrationResult.CalFactor1 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.CalFactor1)); + //readsOk.Add(ReadRegisterRetry(Meter, "CalFactor2", Register.Genesisflow.CalFactor2, out retByte)); + Meter_calibrationResult.CalFactor2 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.CalFactor2)); + //readsOk.Add(ReadRegisterRetry(Meter, "CalFactor3", Register.Genesisflow.CalFactor3, out retByte)); + Meter_calibrationResult.CalFactor3 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.CalFactor3)); + //readsOk.Add(ReadRegisterRetry(Meter, "ZeroOffset1", Register.Genesisflow.ZeroOffset1, out retByte)); + Meter_calibrationResult.ZeroOffset1 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.ZeroOffset1)); + //readsOk.Add(ReadRegisterRetry(Meter, "ZeroOffset2", Register.Genesisflow.ZeroOffset2, out retByte)); + Meter_calibrationResult.ZeroOffset2 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.ZeroOffset2)); + //readsOk.Add(ReadRegisterRetry(Meter, "ZeroOffset3", Register.Genesisflow.ZeroOffset3, out retByte)); + Meter_calibrationResult.ZeroOffset3 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.ZeroOffset3)); + //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitUpdatePeriod", Register.Genesisflow.FirstHitUpdatePeriod, out retByte)); + Meter_calibrationResult.FirstHitUpdatePeriod = + RegisterConverter.ByteArrayToValue( + _currentGenesis.ReadRegister(Register.Genesisflow.FirstHitUpdatePeriod)); + //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitShift", Register.Genesisflow.FirstHitShift, out retByte)); + Meter_calibrationResult.FirstHitShift = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.FirstHitShift)); + //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitPercent1", Register.Genesisflow.FirstHitPercent1, out retByte)); + Meter_calibrationResult.FirstHitPercent1 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.FirstHitPercent1)); + //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitPercent2", Register.Genesisflow.FirstHitPercent2, out retByte)); + Meter_calibrationResult.FirstHitPercent2 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.FirstHitPercent2)); + //readsOk.Add(ReadRegisterRetry(Meter, "FirstHitPercent3", Register.Genesisflow.FirstHitPercent3, out retByte)); + Meter_calibrationResult.FirstHitPercent3 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.FirstHitPercent3)); + //readsOk.Add(ReadRegisterRetry(Meter, "ToFTempOffset1", Register.Genesisflow.ToFTempOffset1, out retByte)); + Meter_calibrationResult.ToFTempOffset1 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.ToFTempOffset1)); + //readsOk.Add(ReadRegisterRetry(Meter, "ToFTempOffset2", Register.Genesisflow.ToFTempOffset2, out retByte)); + Meter_calibrationResult.ToFTempOffset2 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.ToFTempOffset2)); - Meter_calibrationResult.ToFTempOffset3 = RegisterConverter.ByteArrayToValue(Meter.ReadRegister(Register.Genesisflow.ToFTempOffset3)); - Meter_calibrationResult.AdditionalLogInfos.Add("add infor", "restore from meter"); - Exception exPost = new Exception(); - int code = 0; - var tempP = ""; - - var r = LocalWebRequest.PostRequestAsync($"{ServiceUrls.PostGenesisCalibrationResultUrl()}?PcbId={Meter.PcbId}", ref code, ref exPost, 8000, Meter_calibrationResult); - - - } - - } - } + Meter_calibrationResult.ToFTempOffset3 = + RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.ToFTempOffset3)); + Meter_calibrationResult.AdditionalLogInfos.Add("add info", "restore from meter"); + var exPost = new Exception(); + var code = 0; + LocalWebRequest.PostRequestAsync($"{ServiceUrls.PostGenesisCalibrationResultUrl()}?PcbId={_currentGenesis.PcbId}", + ref code, ref exPost, 8000, Meter_calibrationResult); } - catch (Exception ex) - { - - return; - } - - - return; - } + catch (Exception) + { + // + } + + //if (this._currentGenesis is null || !this._currentGenesis.IsLoggedOn) + //{ + // MessageBox.Show("Not connected!"); + + // return; + //} + + //this.SetBusy(true, "Recalibration is running"); + + //if (!this.CheckBatteryLifetime()) + //{ + // this.SetBusy(false); + + // return; + //} + + //var p1Cal = default(int); + //var p2Cal = default(int); + //var p3Cal = default(int); + //var logBuilder = new StringBuilder(); + + //try + //{ + // var caption = string.Empty; + // var buttons = MessageBoxButtons.YesNo; + // var icon = MessageBoxIcon.Question; + + // int ReadRegister(string name) + // { + // var value = default(int); + + // if (!this._currentGenesis.IsLoggedOn) + // { + // if (!this._currentGenesis.ReLogin()) + // { + // var answer = MessageBox.Show("Relogin failed!\n\nWould you try again?", caption, buttons, icon); + + // if (answer == DialogResult.Yes) + // { + // value = ReadRegister(name); + // } + // } + // } + + // value = RegisterConverter.ByteArrayToValue(this._currentGenesis.ReadRegister(name)); + + // if (value == 0) + // { + // var answer = MessageBox.Show($"Reading: {name} failed value is - {value}!\n\nWould you try again?", caption, buttons, icon); + + // if (answer == DialogResult.Yes) + // { + // value = ReadRegister(name); + // } + // } + + // return value; + // } + + // p1Cal = ReadRegister(Register.Genesisflow.CalFactor1); + // p2Cal = ReadRegister(Register.Genesisflow.CalFactor2); + // p3Cal = ReadRegister(Register.Genesisflow.CalFactor3); + + // if (p1Cal == 0 || p2Cal == 0 || p3Cal == 0) + // { + // return; + // } + + // logBuilder.AppendLine(); + // logBuilder.AppendLine($"Old values:"); + // logBuilder.AppendLine($" - P1 CalFactor: {p1Cal}"); + // logBuilder.AppendLine($" - P2 CalFactor: {p2Cal}"); + // logBuilder.AppendLine($" - P3 CalFactor: {p3Cal}"); + //} + //catch (Exception eRead) + //{ + // MessageBox.Show($"Read exception: {eRead}"); + + // this.SetBusy(false); + + // return; + //} + + //var httpClient = new HttpClient(); + //var values = new List(); + + //try + //{ + // using (var httpResponse = await httpClient.GetAsync(ServiceUrls.GetQ3CalibrationsURI(this._currentPcbId))) + // { + // var content = await httpResponse.Content.ReadAsStringAsync(); + + // if (httpResponse.IsSuccessStatusCode) + // { + // try + // { + // values = JsonConvert.DeserializeObject>(content); + // } + // catch (Exception eParse) + // { + // MessageBox.Show($"Parse exception: {eParse}"); + + // this.SetBusy(false); + + // return; + // } + // } + // else + // { + // MessageBox.Show($"Error: {content}"); + + // this.SetBusy(false); + + // return; + // } + // } + //} + //catch (Exception eHttp) + //{ + // MessageBox.Show($"Http exception: {eHttp}"); + + // this.SetBusy(false); + + // return; + //} + + //if (!values.Any(x => x.P1Off == -0.30001)) + //{ + // try + // { + // var requestUri = ServiceUrls.Q3CalibrationResultURL; + // var requestJson = JsonConvert.SerializeObject(new Q3Calibration + // { + // PcbId = this._currentPcbId, + // P1Off = -0.30001, + // P1Cal = p1Cal, + // P2Off = -0.30001, + // P2Cal = p2Cal, + // P3Off = -0.30001, + // P3Cal = p3Cal, + // }); + // var requestContent = new StringContent(requestJson, Encoding.UTF8, "application/json"); + + // using (var httpResponse = await httpClient.PostAsync(requestUri, requestContent)) + // { + // var content = await httpResponse.Content.ReadAsStringAsync(); + + // if (httpResponse.IsSuccessStatusCode && int.TryParse($"{content}", out var rowsAffected)) + // { + // logBuilder.AppendLine($"... old values saved!"); + // } + // else + // { + // MessageBox.Show($"HTTP Error: {content}"); + + // this.SetBusy(false); + + // return; + // } + // } + // } + // catch (Exception eHttp) + // { + // MessageBox.Show($"Http exception: {eHttp}"); + + // this.SetBusy(false); + + // return; + // } + //} + + //if (!values.Any(x => x.P1Off == 0.30001)) + //{ + // var offset = 0D; + + // try + // { + // offset = values + // .OrderByDescending(x => x.Date) + // .FirstOrDefault() + // ?.P1Off ?? 0; + + // if (offset > 0.2) + // { + // MessageBox.Show($"Recalibration is not required!"); + + // this.SetBusy(false); + + // return; + // } + // } + // catch (Exception eLinq) + // { + // MessageBox.Show($"LINQ exception: {eLinq}"); + // } + + // try + // { + // p1Cal = (int)Math.Round(p1Cal * (1 + 0.6 / 100), 0); + // p2Cal = (int)Math.Round(p2Cal * (1 + 0.6 / 100), 0); + // p3Cal = (int)Math.Round(p3Cal * (1 + 0.6 / 100), 0); + // } + // catch (Exception eCalc) + // { + // MessageBox.Show($"Calculation exception: {eCalc}"); + + // this.SetBusy(false); + + // return; + // } + + // try + // { + // var caption = string.Empty; + // var buttons = MessageBoxButtons.YesNo; + // var icon = MessageBoxIcon.Question; + + // void WriteRegister(string name, int value) + // { + // if (!this._currentGenesis.IsLoggedOn) + // { + // if (!this._currentGenesis.ReLogin()) + // { + // var answer = MessageBox.Show("Relogin failed!\n\nWould you try again?", caption, buttons, icon); + + // if (answer == DialogResult.Yes) + // { + // WriteRegister(name, value); + // } + // } + // } + + // if (!this._currentGenesis.WriteRegister(name, value)) + // { + // var answer = MessageBox.Show($"Writing: {name} = {value} failed!\n\nWould you try again?", caption, buttons, icon); + + // if (answer == DialogResult.Yes) + // { + // WriteRegister(name, value); + // } + // } + // } + + // WriteRegister(Register.Genesisflow.SealDisplay, 0); + // WriteRegister(Register.Genesisflow.TriggerIdle, 0); + // WriteRegister(Register.Genesisflow.CalFactor1, p1Cal); + // WriteRegister(Register.Genesisflow.CalFactor2, p2Cal); + // WriteRegister(Register.Genesisflow.CalFactor3, p3Cal); + // WriteRegister(Register.Genesisflow.DisplayUnits, 0); + // WriteRegister(Register.Metrologyasst.FlowUnits, 4); + // WriteRegister(Register.Genesisflow.DisplayPow10, -6); + // WriteRegister(Register.Genesisflow.SealDisplay, 1); + // WriteRegister(Register.Genesisflow.StoreConfiguration, 1); + + // logBuilder.AppendLine(); + // logBuilder.AppendLine($"New values:"); + // logBuilder.AppendLine($" - P1 CalFactor: {p1Cal}"); + // logBuilder.AppendLine($" - P2 CalFactor: {p2Cal}"); + // logBuilder.AppendLine($" - P3 CalFactor: {p3Cal}"); + // } + // catch (Exception eWrite) + // { + // MessageBox.Show($"Write exception: {eWrite}"); + + // this.SetBusy(false); + + // return; + // } + + // var newValuesWriten = false; + + // try + // { + // //var requestUri = ServiceUrls.Q3CalibrationResultURL; + // //var requestJson = JsonConvert.SerializeObject(new Q3Calibration + // //{ + // // PcbId = this._currentPcbId, + // // P1Off = 0.30001, + // // P1Cal = p1Cal, + // // P2Off = 0.30001, + // // P2Cal = p2Cal, + // // P3Off = 0.30001, + // // P3Cal = p3Cal, + // //}); + // var requestContent = new StringContent(requestJson, Encoding.UTF8, "application/json"); + + // using (var httpResponse = await httpClient.PostAsync(requestUri, requestContent)) + // { + // var content = await httpResponse.Content.ReadAsStringAsync(); + + // if (httpResponse.IsSuccessStatusCode && int.TryParse($"{content}", out var rowsAffected)) + // { + // newValuesWriten = rowsAffected > 0; + // } + // else + // { + // MessageBox.Show($"HTTP Error: {content}"); + + // this.SetBusy(false); + + // return; + // } + // } + // } + // catch (Exception eHttp) + // { + // MessageBox.Show($"HTTP exception: {eHttp}"); + + // this.SetBusy(false); + + // return; + // } + + // if (newValuesWriten) + // { + // logBuilder.AppendLine("... new values saved!"); + + // foreach (var row in this._dataTable.Rows) + // { + // if (row is DataRow dataRow && dataRow["Name"] is string registerName) + // { + // dataRow["isChecked"] = registerName == Register.Genesisflow.SealDisplay + // || registerName == Register.Genesisflow.CalFactor1 + // || registerName == Register.Genesisflow.CalFactor2 + // || registerName == Register.Genesisflow.CalFactor3 + // || registerName == Register.Genesisflow.DisplayUnits + // || registerName == Register.Genesisflow.DisplayPow10 + // || registerName == Register.Genesisflow.StoreConfiguration + // || registerName == Register.Genesisflow.TriggerIdle + // || registerName == Register.Metrologyasst.FlowUnits; + // } + // } + + // this.btnRead_Click(sender, args); + // } + // else + // { + // MessageBox.Show($"Q3Calibration values are not saved!"); + + // this.SetBusy(false); + + // return; + // } + //} + //else + //{ + // MessageBox.Show($"Already recalibrated!"); + + // this.SetBusy(false); + + // return; + //} + + //MessageBox.Show(logBuilder.ToString(), $"{this._currentPcbId} - successfully recalibrated", MessageBoxButtons.OK, MessageBoxIcon.Information); + _currentGenesis.Logout(); } - - - - //if (this._currentGenesis is null || !this._currentGenesis.IsLoggedOn) - //{ - // MessageBox.Show("Not connected!"); - - // return; - //} - - //this.SetBusy(true, "Recalibration is running"); - - //if (!this.CheckBatteryLifetime()) - //{ - // this.SetBusy(false); - - // return; - //} - - //var p1Cal = default(int); - //var p2Cal = default(int); - //var p3Cal = default(int); - //var logBuilder = new StringBuilder(); - - //try - //{ - // var caption = string.Empty; - // var buttons = MessageBoxButtons.YesNo; - // var icon = MessageBoxIcon.Question; - - // int ReadRegister(string name) - // { - // var value = default(int); - - // if (!this._currentGenesis.IsLoggedOn) - // { - // if (!this._currentGenesis.ReLogin()) - // { - // var answer = MessageBox.Show("Relogin failed!\n\nWould you try again?", caption, buttons, icon); - - // if (answer == DialogResult.Yes) - // { - // value = ReadRegister(name); - // } - // } - // } - - // value = RegisterConverter.ByteArrayToValue(this._currentGenesis.ReadRegister(name)); - - // if (value == 0) - // { - // var answer = MessageBox.Show($"Reading: {name} failed value is - {value}!\n\nWould you try again?", caption, buttons, icon); - - // if (answer == DialogResult.Yes) - // { - // value = ReadRegister(name); - // } - // } - - // return value; - // } - - // p1Cal = ReadRegister(Register.Genesisflow.CalFactor1); - // p2Cal = ReadRegister(Register.Genesisflow.CalFactor2); - // p3Cal = ReadRegister(Register.Genesisflow.CalFactor3); - - // if (p1Cal == 0 || p2Cal == 0 || p3Cal == 0) - // { - // return; - // } - - // logBuilder.AppendLine(); - // logBuilder.AppendLine($"Old values:"); - // logBuilder.AppendLine($" - P1 CalFactor: {p1Cal}"); - // logBuilder.AppendLine($" - P2 CalFactor: {p2Cal}"); - // logBuilder.AppendLine($" - P3 CalFactor: {p3Cal}"); - //} - //catch (Exception eRead) - //{ - // MessageBox.Show($"Read exception: {eRead}"); - - // this.SetBusy(false); - - // return; - //} - - //var httpClient = new HttpClient(); - //var values = new List(); - - //try - //{ - // using (var httpResponse = await httpClient.GetAsync(ServiceUrls.GetQ3CalibrationsURI(this._currentPcbId))) - // { - // var content = await httpResponse.Content.ReadAsStringAsync(); - - // if (httpResponse.IsSuccessStatusCode) - // { - // try - // { - // values = JsonConvert.DeserializeObject>(content); - // } - // catch (Exception eParse) - // { - // MessageBox.Show($"Parse exception: {eParse}"); - - // this.SetBusy(false); - - // return; - // } - // } - // else - // { - // MessageBox.Show($"Error: {content}"); - - // this.SetBusy(false); - - // return; - // } - // } - //} - //catch (Exception eHttp) - //{ - // MessageBox.Show($"Http exception: {eHttp}"); - - // this.SetBusy(false); - - // return; - //} - - //if (!values.Any(x => x.P1Off == -0.30001)) - //{ - // try - // { - // var requestUri = ServiceUrls.Q3CalibrationResultURL; - // var requestJson = JsonConvert.SerializeObject(new Q3Calibration - // { - // PcbId = this._currentPcbId, - // P1Off = -0.30001, - // P1Cal = p1Cal, - // P2Off = -0.30001, - // P2Cal = p2Cal, - // P3Off = -0.30001, - // P3Cal = p3Cal, - // }); - // var requestContent = new StringContent(requestJson, Encoding.UTF8, "application/json"); - - // using (var httpResponse = await httpClient.PostAsync(requestUri, requestContent)) - // { - // var content = await httpResponse.Content.ReadAsStringAsync(); - - // if (httpResponse.IsSuccessStatusCode && int.TryParse($"{content}", out var rowsAffected)) - // { - // logBuilder.AppendLine($"... old values saved!"); - // } - // else - // { - // MessageBox.Show($"HTTP Error: {content}"); - - // this.SetBusy(false); - - // return; - // } - // } - // } - // catch (Exception eHttp) - // { - // MessageBox.Show($"Http exception: {eHttp}"); - - // this.SetBusy(false); - - // return; - // } - //} - - //if (!values.Any(x => x.P1Off == 0.30001)) - //{ - // var offset = 0D; - - // try - // { - // offset = values - // .OrderByDescending(x => x.Date) - // .FirstOrDefault() - // ?.P1Off ?? 0; - - // if (offset > 0.2) - // { - // MessageBox.Show($"Recalibration is not required!"); - - // this.SetBusy(false); - - // return; - // } - // } - // catch (Exception eLinq) - // { - // MessageBox.Show($"LINQ exception: {eLinq}"); - // } - - // try - // { - // p1Cal = (int)Math.Round(p1Cal * (1 + 0.6 / 100), 0); - // p2Cal = (int)Math.Round(p2Cal * (1 + 0.6 / 100), 0); - // p3Cal = (int)Math.Round(p3Cal * (1 + 0.6 / 100), 0); - // } - // catch (Exception eCalc) - // { - // MessageBox.Show($"Calculation exception: {eCalc}"); - - // this.SetBusy(false); - - // return; - // } - - // try - // { - // var caption = string.Empty; - // var buttons = MessageBoxButtons.YesNo; - // var icon = MessageBoxIcon.Question; - - // void WriteRegister(string name, int value) - // { - // if (!this._currentGenesis.IsLoggedOn) - // { - // if (!this._currentGenesis.ReLogin()) - // { - // var answer = MessageBox.Show("Relogin failed!\n\nWould you try again?", caption, buttons, icon); - - // if (answer == DialogResult.Yes) - // { - // WriteRegister(name, value); - // } - // } - // } - - // if (!this._currentGenesis.WriteRegister(name, value)) - // { - // var answer = MessageBox.Show($"Writing: {name} = {value} failed!\n\nWould you try again?", caption, buttons, icon); - - // if (answer == DialogResult.Yes) - // { - // WriteRegister(name, value); - // } - // } - // } - - // WriteRegister(Register.Genesisflow.SealDisplay, 0); - // WriteRegister(Register.Genesisflow.TriggerIdle, 0); - // WriteRegister(Register.Genesisflow.CalFactor1, p1Cal); - // WriteRegister(Register.Genesisflow.CalFactor2, p2Cal); - // WriteRegister(Register.Genesisflow.CalFactor3, p3Cal); - // WriteRegister(Register.Genesisflow.DisplayUnits, 0); - // WriteRegister(Register.Metrologyasst.FlowUnits, 4); - // WriteRegister(Register.Genesisflow.DisplayPow10, -6); - // WriteRegister(Register.Genesisflow.SealDisplay, 1); - // WriteRegister(Register.Genesisflow.StoreConfiguration, 1); - - // logBuilder.AppendLine(); - // logBuilder.AppendLine($"New values:"); - // logBuilder.AppendLine($" - P1 CalFactor: {p1Cal}"); - // logBuilder.AppendLine($" - P2 CalFactor: {p2Cal}"); - // logBuilder.AppendLine($" - P3 CalFactor: {p3Cal}"); - // } - // catch (Exception eWrite) - // { - // MessageBox.Show($"Write exception: {eWrite}"); - - // this.SetBusy(false); - - // return; - // } - - // var newValuesWriten = false; - - // try - // { - // //var requestUri = ServiceUrls.Q3CalibrationResultURL; - // //var requestJson = JsonConvert.SerializeObject(new Q3Calibration - // //{ - // // PcbId = this._currentPcbId, - // // P1Off = 0.30001, - // // P1Cal = p1Cal, - // // P2Off = 0.30001, - // // P2Cal = p2Cal, - // // P3Off = 0.30001, - // // P3Cal = p3Cal, - // //}); - // var requestContent = new StringContent(requestJson, Encoding.UTF8, "application/json"); - - // using (var httpResponse = await httpClient.PostAsync(requestUri, requestContent)) - // { - // var content = await httpResponse.Content.ReadAsStringAsync(); - - // if (httpResponse.IsSuccessStatusCode && int.TryParse($"{content}", out var rowsAffected)) - // { - // newValuesWriten = rowsAffected > 0; - // } - // else - // { - // MessageBox.Show($"HTTP Error: {content}"); - - // this.SetBusy(false); - - // return; - // } - // } - // } - // catch (Exception eHttp) - // { - // MessageBox.Show($"HTTP exception: {eHttp}"); - - // this.SetBusy(false); - - // return; - // } - - // if (newValuesWriten) - // { - // logBuilder.AppendLine("... new values saved!"); - - // foreach (var row in this._dataTable.Rows) - // { - // if (row is DataRow dataRow && dataRow["Name"] is string registerName) - // { - // dataRow["isChecked"] = registerName == Register.Genesisflow.SealDisplay - // || registerName == Register.Genesisflow.CalFactor1 - // || registerName == Register.Genesisflow.CalFactor2 - // || registerName == Register.Genesisflow.CalFactor3 - // || registerName == Register.Genesisflow.DisplayUnits - // || registerName == Register.Genesisflow.DisplayPow10 - // || registerName == Register.Genesisflow.StoreConfiguration - // || registerName == Register.Genesisflow.TriggerIdle - // || registerName == Register.Metrologyasst.FlowUnits; - // } - // } - - // this.btnRead_Click(sender, args); - // } - // else - // { - // MessageBox.Show($"Q3Calibration values are not saved!"); - - // this.SetBusy(false); - - // return; - // } - //} - //else - //{ - // MessageBox.Show($"Already recalibrated!"); - - // this.SetBusy(false); - - // return; - //} - - //MessageBox.Show(logBuilder.ToString(), $"{this._currentPcbId} - successfully recalibrated", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - private bool CheckBatteryLifetime() - { - var genesisStatus = new GenesisStatus(); - var requirements = new CordonelRequirements(); - var sbMSG = new StringBuilder(); - var hasFehlern = false; - - if (!GenesisStatusHandler.GetCordonelRequirementInfoFromDb($"{_currentGenesis.PcbId}", requirements, out var error)) - { - MessageBox.Show($"Error loading Cordonel requirements: {error}"); - - var size = RegisterConverter.ByteArrayToValue(_currentGenesis.ReadRegister(Register.Genesisflow.MeterSize)); - - if (!GenesisStatusHandler.GetCordonelRequirementInfoFromDbByMeterSize(size, requirements, out error)) - { - MessageBox.Show($"Error loading Cordonel requirements: {error}"); - - requirements = new CordonelRequirements - { - QuiescentCurrent_uA = 119.8, - EstimatedProductionBatteryLoadPercent = 1, - RequiredLifeTimeYearsAssembly = 22, - MaxDrainedBatteryLoadPercentAssembly = 4, - MaxStorageMonths = 5 - }; - } - } - - genesisStatus.QuiescentCurrent_uA = requirements.QuiescentCurrent_uA; - genesisStatus.EstimatedProductionBatteryLoadPercent = requirements.EstimatedProductionBatteryLoadPercent; - - if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, genesisStatus, out var message)) - { - if (!string.IsNullOrWhiteSpace(message)) - { - MessageBox.Show(message); - } - - sbMSG.AppendLine($"Pcb = {_currentGenesis.PcbId}"); - sbMSG.AppendLine($"POWERMON_TotalUsedSeconds = {genesisStatus.ExceededLifeTime_s}"); - sbMSG.AppendLine($"POWERMON_TotalUsedCharge = {genesisStatus.DrainedBatteryLoad_uAs}"); - sbMSG.AppendLine($"POWERMON_BatteryQuantity = {genesisStatus.BatteryQuantity}"); - sbMSG.AppendLine($"POWERMON_BatteryMilliAHrRating = {genesisStatus.InitialBatteryLoad_mAh}"); - sbMSG.AppendLine(); - sbMSG.AppendLine($"Actual storage months: {genesisStatus.StorageMonths:F1}"); - sbMSG.AppendLine($"Remaining life time in years: {genesisStatus.RemainingLifeTimeYears:F2}"); - sbMSG.AppendLine($"Totally drained battery load in %: {genesisStatus.DrainedBatteryLoadPercent:F2}"); - sbMSG.AppendLine(); - - if (genesisStatus.RemainingLifeTimeYears < requirements.RequiredLifeTimeYearsAssembly) - { - hasFehlern = true; - sbMSG.AppendLine($"{nameof(genesisStatus.RemainingLifeTimeYears)}: {genesisStatus.RemainingLifeTimeYears} < {requirements.RequiredLifeTimeYearsAssembly}"); - } - else - { - sbMSG.AppendLine($"Restlaufzeit i.O."); - } - - if (genesisStatus.AlternativeRequiredBatteryLoadPercent != null - && genesisStatus.AlternativeRequiredBatteryLoadPercent > requirements.MaxDrainedBatteryLoadPercentAssembly) - { - sbMSG.AppendLine($"{nameof(genesisStatus.AlternativeRequiredBatteryLoadPercent)}: {genesisStatus.AlternativeRequiredBatteryLoadPercent} > {requirements.MaxDrainedBatteryLoadPercentAssembly}"); - hasFehlern = true; - } - else - { - sbMSG.AppendLine($"Alternative Batterieverbrauch Montage i.O."); - } - - if (genesisStatus.DrainedBatteryLoadPercent > requirements.MaxDrainedBatteryLoadPercentAssembly) - { - sbMSG.AppendLine($"{nameof(genesisStatus.DrainedBatteryLoadPercent)}: {genesisStatus.DrainedBatteryLoadPercent} > {requirements.MaxDrainedBatteryLoadPercentAssembly}"); - hasFehlern = true; - } - else - { - sbMSG.AppendLine($"Maximaler Batterieverbrauch Montage i.O."); - } - - if (genesisStatus.StorageMonths > requirements.MaxStorageMonths) - { - hasFehlern = true; - sbMSG.AppendLine($"{nameof(genesisStatus.StorageMonths)}: {genesisStatus.StorageMonths} > {requirements.MaxStorageMonths}"); - } - else - { - sbMSG.AppendLine($"Maximallagerzeit i.O."); - } - - if (hasFehlern) - { - sbMSG.AppendLine($"Battery lifetime limits sind Übreschritten"); - } - else - { - sbMSG.AppendLine($"Battery lifetime limits sind OK"); - } - - sbMSG.AppendLine(); - sbMSG.AppendLine($"Preproduction max. drained battery load: {genesisStatus.AlternativeRequiredBatteryLoadPercent} %"); - sbMSG.AppendLine($"Meter reports drained battery load: {genesisStatus.DrainedBatteryLoadPercent} %"); - - if (hasFehlern) - { - sbMSG.AppendLine(); - sbMSG.AppendLine("YES - to ignore the error and continue, NO to cancel!"); - - hasFehlern = MessageBox.Show(sbMSG.ToString() - , $"Battery for {_currentGenesis.PcbId} has remaining life time of {genesisStatus.RemainingLifeTimeYears:F2} years" - , buttons: MessageBoxButtons.YesNo - , icon: MessageBoxIcon.Error) == DialogResult.No; - } - else - { - MessageBox.Show(sbMSG.ToString() - , $"Battery for {_currentGenesis.PcbId} has remaining life time of {genesisStatus.RemainingLifeTimeYears:F2} years" - , buttons: MessageBoxButtons.OK - , icon: MessageBoxIcon.Information); - } - - } - else - { - MessageBox.Show("Failed to get life time information", caption: null, buttons: MessageBoxButtons.OK, icon: MessageBoxIcon.Error); - } - - return hasFehlern == false; } private void btnRegisterToFile_Click(Object sender, EventArgs e) @@ -2850,8 +2381,8 @@ namespace Xylem.Common.Ui.GenesisToolBox SelectPreset("All"); var j = ReadRegisters(); - SaveFileDialog saveFileDialog1 = new SaveFileDialog(); - saveFileDialog1.Filter = "Register Back Up files (*.rbu)|*.rbu"; + var saveFileDialog1 = new SaveFileDialog(); + saveFileDialog1.Filter = @"Register Back Up files (*.rbu)|*.rbu"; saveFileDialog1.FilterIndex = 1; saveFileDialog1.RestoreDirectory = true; @@ -2863,82 +2394,77 @@ namespace Xylem.Common.Ui.GenesisToolBox private void btnFileToRegister_Click(Object sender, EventArgs e) { - var fileContent = string.Empty; - var filePath = string.Empty; - RegisterRestoreData DataShow = null; - using (OpenFileDialog openFileDialog = new OpenFileDialog()) + if (_currentGenesis != null) { + _currentGenesis.ReLogin(); - openFileDialog.Filter = "Register Back Up files (*.rbu)|*.rbu"; - openFileDialog.FilterIndex = 2; - openFileDialog.RestoreDirectory = true; - - if (openFileDialog.ShowDialog() == DialogResult.OK) + RegisterRestoreData DataShow = null; + using (var openFileDialog = new OpenFileDialog()) { - //Get the path of specified file - filePath = openFileDialog.FileName; + openFileDialog.Filter = @"Register Back Up files (*.rbu)|*.rbu"; + openFileDialog.FilterIndex = 2; + openFileDialog.RestoreDirectory = true; - DataShow = JsonConvert.DeserializeObject(File.ReadAllText(filePath)); - } - } - StringBuilder stringBuilder = new StringBuilder(); - StringBuilder NotstringBuilder = new StringBuilder(); - if (DataShow != null) - { - foreach (var Resoreitem in DataShow.RegisterList) - { - var meterRegisters = _currentGenesis.GetConfigRegistersDefinitions(); - var regDef = meterRegisters.GetRegisterDefinitionByName(Resoreitem.Key); - Byte[] RegValue = Resoreitem.Value; - - - if ( - Resoreitem.Value != null - && regDef.RegisterDetail != null - && regDef.RegisterDetail.Privilege.Lvl8 == Access.RW - && regDef.DataType != typeof(LaaPackages.Features.Cordonel.RPC) - - ) + if (openFileDialog.ShowDialog() == DialogResult.OK) { + //Get the path of specified file + var filePath = openFileDialog.FileName; - - _currentGenesis.ReLogin(); - var comp = _currentGenesis.ReadRegister(Resoreitem.Key); + DataShow = JsonConvert.DeserializeObject(File.ReadAllText(filePath)); + } + } - if (BitConverter.ToString(RegValue) == BitConverter.ToString(comp)) + var stringBuilder = new StringBuilder(); + var NotStringBuilder = new StringBuilder(); + if (DataShow != null) + { + foreach (var RestoreItem in DataShow.RegisterList) + { + var meterRegisters = _currentGenesis.GetConfigRegistersDefinitions(); + var regDef = meterRegisters.GetRegisterDefinitionByName(RestoreItem.Key); + var RegValue = RestoreItem.Value; + + + if (RestoreItem.Value != null + && regDef.RegisterDetail != null + && regDef.RegisterDetail.Privilege.Lvl8 == Access.RW + && regDef.DataType != typeof(RPC)) { - NotstringBuilder.AppendLine($"Register not changed ! {Resoreitem.Key} to {BitConverter.ToString(RegValue)}"); - } - else - { - if (regDef.AppName == "CONFIGEXCHANGE" || regDef.AppName == "FLEXNETSERIAL" || regDef.AppName == "FUNCTEST" || regDef.AppName == "NFC" || regDef.AppName == "TESTMANAGER") + _currentGenesis.ReLogin(); + var comp = _currentGenesis.ReadRegister(RestoreItem.Key); + + if (BitConverter.ToString(RegValue) == BitConverter.ToString(comp)) { - NotstringBuilder.AppendLine($"AppBlocked ! {Resoreitem.Key} to {BitConverter.ToString(RegValue)}"); + NotStringBuilder.AppendLine( + $"Register not changed ! {RestoreItem.Key} to {BitConverter.ToString(RegValue)}"); } else { - stringBuilder.AppendLine($"{Resoreitem.Key} from {BitConverter.ToString(comp)} to {BitConverter.ToString(RegValue)}"); + if (regDef.AppName == "CONFIGEXCHANGE" || regDef.AppName == "FLEXNETSERIAL" || + regDef.AppName == "FUNCTEST" || regDef.AppName == "NFC" || regDef.AppName == "TESTMANAGER") + { + NotStringBuilder.AppendLine( + $"AppBlocked ! {RestoreItem.Key} to {BitConverter.ToString(RegValue)}"); + } + else + { + stringBuilder.AppendLine( + $"{RestoreItem.Key} from {BitConverter.ToString(comp)} to {BitConverter.ToString(RegValue)}"); - if (regDef.DataType != typeof(String)) - RegValue = RegValue.Reverse().ToArray(); - _currentGenesis.WriteRegister(Resoreitem.Key, RegValue, checkRegister: true); + if (regDef.DataType != typeof(String)) + RegValue = RegValue.Reverse().ToArray(); + _currentGenesis.WriteRegister(RestoreItem.Key, RegValue, checkRegister: true); + } } } - - - - - - - - // - } } - } - MessageBox.Show(stringBuilder.ToString()); - MessageBox.Show(NotstringBuilder.ToString()); + _currentGenesis.Logout(); + + MessageBox.Show(stringBuilder.ToString()); + MessageBox.Show(NotStringBuilder.ToString()); + } } private void cbxUseOfflinePwds_CheckedChanged(Object sender, EventArgs e) @@ -2946,23 +2472,4 @@ namespace Xylem.Common.Ui.GenesisToolBox cbxUseOfflinePwds.ForeColor = cbxUseOfflinePwds.Checked ? Color.Red : Color.Black; } } - - public class Q3Calibration - { - public string PcbId { get; set; } - - public int P1Cal { get; set; } - - public double P1Off { get; set; } - - public int P2Cal { get; set; } - - public double P2Off { get; set; } - - public int P3Cal { get; set; } - - public double P3Off { get; set; } - - public DateTime Date { get; set; } = DateTime.Now; - } } \ No newline at end of file diff --git a/Common/Ui/LegacyGenesisControl/PreAdjWr.cs b/Common/Ui/LegacyGenesisControl/PreAdjWr.cs index 8611e998..cfdcbe74 100644 --- a/Common/Ui/LegacyGenesisControl/PreAdjWr.cs +++ b/Common/Ui/LegacyGenesisControl/PreAdjWr.cs @@ -66,7 +66,7 @@ namespace XylemCommonUiLegacyGenCtl } else { - MessageBox.Show($"FATAL Ctor {ex.Message}"); + MessageBox.Show($@"FATAL Ctor {ex.Message}"); } @@ -235,7 +235,7 @@ namespace XylemCommonUiLegacyGenCtl catch (Exception ex) { _logger.Fatal(ex); - MessageBox.Show($"FATAL internalPrep {ex.Message}"); + MessageBox.Show($@"FATAL internalPrep {ex.Message}"); } } public void PrepareAction(Int32 slotCount, String cultureStr) @@ -253,7 +253,7 @@ namespace XylemCommonUiLegacyGenCtl catch (Exception ex) { _logger.Fatal(ex); - MessageBox.Show($"FATAL EnableMeter {ex.Message}"); + MessageBox.Show($@"FATAL EnableMeter {ex.Message}"); } } @@ -416,7 +416,7 @@ namespace XylemCommonUiLegacyGenCtl catch (Exception ex) { _logger.Fatal(ex); - MessageBox.Show($"FATAL Start Action {ex.Message}"); + MessageBox.Show($@"FATAL Start Action {ex.Message}"); pollingAction = PollingAction.IsOnError; } finally