diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/ExecRebootCordonel.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/ExecRebootCordonel.cs index 1c30b00e..df0067df 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/ExecRebootCordonel.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/ExecRebootCordonel.cs @@ -77,7 +77,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr return StatusReturn.Failed; } } - + var ale = Meter.ReadRegister("CUSTOMER_AlarmEnableMask"); #region ----------------------------------- Reboot ---------------------------------------------------- // reboot the meter and avoid doubled storage of configurations var _meterResetPsu = new MeterResetPsu(Meter) diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/RFTelegrams/AlarmMask.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/RFTelegrams/AlarmMask.cs index 8d5dc35f..8e6e4e4a 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/RFTelegrams/AlarmMask.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/RFTelegrams/AlarmMask.cs @@ -1,7 +1,6 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.RFTelegrams { - using Common.Hardware.SIRT; - + using System.Text; public class AlarmMask diff --git a/Common/Ui/GenesisToolBox/OfflinePasswordItem.cs b/Common/Ui/GenesisToolBox/OfflinePasswordItem.cs index d2624aa4..915a169e 100644 --- a/Common/Ui/GenesisToolBox/OfflinePasswordItem.cs +++ b/Common/Ui/GenesisToolBox/OfflinePasswordItem.cs @@ -15,6 +15,8 @@ namespace Xylem.Common.Ui.GenesisToolBox public String PcbID { get; set; } public String Password { get; set; } + + } diff --git a/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs b/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs index 0045414b..ee4ad668 100644 --- a/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs +++ b/Common/Ui/GenesisToolBox/frmRegisterStore.Designer.cs @@ -48,7 +48,7 @@ this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.btnStoreAll = new System.Windows.Forms.Button(); - this.button3 = 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(); @@ -56,6 +56,7 @@ 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(); ((System.ComponentModel.ISupportInitialize)(this.registerGridView)).BeginInit(); this.pnlBussy.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.nundCalResultID)).BeginInit(); @@ -231,9 +232,9 @@ // // button2 // - this.button2.Location = new System.Drawing.Point(516, 120); + this.button2.Location = new System.Drawing.Point(602, 120); this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(110, 30); + this.button2.Size = new System.Drawing.Size(98, 30); this.button2.TabIndex = 61; this.button2.Text = "Set default Pulse"; this.button2.UseVisualStyleBackColor = true; @@ -249,15 +250,15 @@ this.btnStoreAll.UseVisualStyleBackColor = true; this.btnStoreAll.Click += new System.EventHandler(this.btnStoreAll_Click); // - // button3 + // btnRegisterToFile // - this.button3.Location = new System.Drawing.Point(309, 120); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(80, 30); - this.button3.TabIndex = 63; - this.button3.Text = "applist to db"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); + this.btnRegisterToFile.Location = new System.Drawing.Point(282, 120); + this.btnRegisterToFile.Name = "btnRegisterToFile"; + this.btnRegisterToFile.Size = new System.Drawing.Size(107, 30); + this.btnRegisterToFile.TabIndex = 63; + this.btnRegisterToFile.Text = "RegisterToFile"; + this.btnRegisterToFile.UseVisualStyleBackColor = true; + this.btnRegisterToFile.Click += new System.EventHandler(this.btnRegisterToFile_Click); // // timer1 // @@ -276,9 +277,9 @@ // // btnRadioPressure // - this.btnRadioPressure.Location = new System.Drawing.Point(400, 120); + this.btnRadioPressure.Location = new System.Drawing.Point(506, 120); this.btnRadioPressure.Name = "btnRadioPressure"; - this.btnRadioPressure.Size = new System.Drawing.Size(110, 30); + this.btnRadioPressure.Size = new System.Drawing.Size(90, 30); this.btnRadioPressure.TabIndex = 72; this.btnRadioPressure.Text = "Activate Radio"; this.btnRadioPressure.UseVisualStyleBackColor = true; @@ -301,7 +302,7 @@ // this.btnFingerWeg.Location = new System.Drawing.Point(638, 52); this.btnFingerWeg.Name = "btnFingerWeg"; - this.btnFingerWeg.Size = new System.Drawing.Size(62, 98); + this.btnFingerWeg.Size = new System.Drawing.Size(62, 63); this.btnFingerWeg.TabIndex = 74; this.btnFingerWeg.Text = "Do NOT touch! Recalib!"; this.btnFingerWeg.UseVisualStyleBackColor = true; @@ -325,18 +326,29 @@ this.lblConfigVersion.TabIndex = 76; this.lblConfigVersion.Text = "Configuration Version: ?"; // + // btnFileToRegister + // + this.btnFileToRegister.Location = new System.Drawing.Point(393, 120); + this.btnFileToRegister.Name = "btnFileToRegister"; + this.btnFileToRegister.Size = new System.Drawing.Size(107, 30); + this.btnFileToRegister.TabIndex = 77; + this.btnFileToRegister.Text = "FileToRegister"; + this.btnFileToRegister.UseVisualStyleBackColor = true; + this.btnFileToRegister.Click += new System.EventHandler(this.btnFileToRegister_Click); + // // FrmRegisterStore // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(704, 553); + 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.button3); + this.Controls.Add(this.btnRegisterToFile); this.Controls.Add(this.btnStoreAll); this.Controls.Add(this.button2); this.Controls.Add(this.button1); @@ -383,7 +395,7 @@ private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.Button btnStoreAll; - private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button btnRegisterToFile; private System.Windows.Forms.Timer timer1; private System.Windows.Forms.Button btnBatLife; private System.Windows.Forms.Button btnRadioPressure; @@ -391,5 +403,6 @@ private System.Windows.Forms.Button btnFingerWeg; private System.Windows.Forms.Label lblGtbVersion; private System.Windows.Forms.Label lblConfigVersion; + private System.Windows.Forms.Button btnFileToRegister; } } \ No newline at end of file diff --git a/Common/Ui/GenesisToolBox/frmRegisterStore.cs b/Common/Ui/GenesisToolBox/frmRegisterStore.cs index 62bf1c56..6779e4c3 100644 --- a/Common/Ui/GenesisToolBox/frmRegisterStore.cs +++ b/Common/Ui/GenesisToolBox/frmRegisterStore.cs @@ -1,4 +1,5 @@ -using LaaPackages.Features.Cordonel.Models; + +using LaaPackages.Features.Cordonel.Models; using Logic.ProductionToProductMapper.Cordonel; using Newtonsoft.Json; using NLog; @@ -13,6 +14,7 @@ using System.Linq; using System.Net; using System.Net.Http; using System.Reflection; +using System.Runtime.InteropServices.ComTypes; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -187,8 +189,8 @@ namespace Xylem.Common.Ui.GenesisToolBox lblState.ForeColor = Color.Green; lblState.Text = $"Connected to PCB {_currentPcbId}"; lblConfigVersion.Text = @"Configuration Version: " + _currentGenesis.InterfaceVersion; - lblConfigVersion.ForeColor = _currentGenesis.InterfaceSupportsFwVersion ? - Color.Green: + lblConfigVersion.ForeColor = _currentGenesis.InterfaceSupportsFwVersion ? + Color.Green : Color.Red; if (!_currentGenesis.InterfaceSupportsFwVersion) { @@ -671,14 +673,27 @@ namespace Xylem.Common.Ui.GenesisToolBox } - - - private void read() + public class RegisterRestoreData { + public Int32 PcbID { get; set; } + public DateTime BuildTime { get; set; } + public Dictionary RegisterList { get; set; } + + } + + private RegisterRestoreData read() + { + regsToStore = new regStore() { 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) { @@ -712,6 +727,14 @@ namespace Xylem.Common.Ui.GenesisToolBox { 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); @@ -722,6 +745,7 @@ namespace Xylem.Common.Ui.GenesisToolBox try { + var result = RegisterConverter.ConvertToText(rawRegister, regDef.DataType); ((DataRow)rowItem)["Value"] = result; } @@ -746,6 +770,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } } } + return ret; } private void CompareFile(String filename) @@ -1859,7 +1884,7 @@ namespace Xylem.Common.Ui.GenesisToolBox int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) { timer1.Enabled = false; - button3.BackColor = Color.Yellow; + btnRegisterToFile.BackColor = Color.Yellow; try { conntect(slotNR); @@ -1875,7 +1900,7 @@ namespace Xylem.Common.Ui.GenesisToolBox _currentGenesis.ReadRegister("POWERMON_BatteryQuantity"); _currentGenesis.SetLcdText(false, new Byte[] { 0xAC, reboot[0] }); - button3.BackColor = Color.Green; + btnRegisterToFile.BackColor = Color.Green; timer1.Enabled = true; return; } @@ -1886,12 +1911,12 @@ namespace Xylem.Common.Ui.GenesisToolBox catch (Exception ex) { timer1.Enabled = true; - button3.BackColor = Color.Red; + btnRegisterToFile.BackColor = Color.Red; return; } timer1.Enabled = true; - button3.BackColor = Color.Gray; + btnRegisterToFile.BackColor = Color.Gray; return; } @@ -1913,16 +1938,7 @@ namespace Xylem.Common.Ui.GenesisToolBox /// private void button3_Click(Object sender, EventArgs e) { - var apps = new List(); - foreach (var item in _currentGenesis.MeterAppListVersion) - { - apps.Add(new CordonelAppVersion(item.AppId, item.StrVersion, item.AppId != 15)); - } - apps.Add(new CordonelAppVersion(-1, _currentGenesis.StrCoreRevision, false)); - - var url = $"{ServiceUrls.MeterProcessStateUrl()}SetCordonelProgress?PcbId={_currentGenesis.PcbId}&ProgressName=toolbox&version={Assembly.GetExecutingAssembly().GetName().Version}"; - var a = LocalWebRequest.PostRequestAsync(url, json: apps); } private void timer1_Tick(Object sender, EventArgs e) @@ -2220,14 +2236,14 @@ namespace Xylem.Common.Ui.GenesisToolBox if (((GenesisMeter)me).IsLoggedOn) { //check if pcb is in file - // no - //Pcb , cal valus into txt file - // cal value + 0,6 - // store - // update Calvalues + // no + //Pcb , cal valus into txt file + // cal value + 0,6 + // store + // update Calvalues - //yes - //msg + //yes + //msg } } } @@ -2237,15 +2253,15 @@ namespace Xylem.Common.Ui.GenesisToolBox out String errorMsg) { errorMsg = ""; - if (null == calibResults ) + if (null == calibResults) { return false; } try { - var url = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FinalCheck/CalibrationResults/"; - var requestResponse = LocalWebRequest.GetRequest(url, 30000, out var httpStatus); + var url = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FinalCheck/CalibrationResults/"; + var requestResponse = LocalWebRequest.GetRequest(url, 30000, out var httpStatus); if (httpStatus == HttpStatusCode.OK && !string.IsNullOrEmpty(requestResponse)) { var calibRes = JsonConvert.DeserializeObject(requestResponse); @@ -2761,8 +2777,8 @@ namespace Xylem.Common.Ui.GenesisToolBox { sbMSG.AppendLine($"Restlaufzeit i.O."); } - - if (genesisStatus.AlternativeRequiredBatteryLoadPercent != null + + if (genesisStatus.AlternativeRequiredBatteryLoadPercent != null && genesisStatus.AlternativeRequiredBatteryLoadPercent > requirements.MaxDrainedBatteryLoadPercentAssembly) { sbMSG.AppendLine($"{nameof(genesisStatus.AlternativeRequiredBatteryLoadPercent)}: {genesisStatus.AlternativeRequiredBatteryLoadPercent} > {requirements.MaxDrainedBatteryLoadPercentAssembly}"); @@ -2832,6 +2848,102 @@ namespace Xylem.Common.Ui.GenesisToolBox return hasFehlern == false; } + + private void btnRegisterToFile_Click(Object sender, EventArgs e) + { + selectPreset("All"); + var j = read(); + + SaveFileDialog saveFileDialog1 = new SaveFileDialog(); + saveFileDialog1.Filter = "Register Back Up files (*.rbu)|*.rbu"; + saveFileDialog1.FilterIndex = 1; + saveFileDialog1.RestoreDirectory = true; + + if (saveFileDialog1.ShowDialog() == DialogResult.OK) + { + File.WriteAllText(saveFileDialog1.FileName, JsonConvert.SerializeObject(j)); + } + } + + private void btnFileToRegister_Click(Object sender, EventArgs e) + { + var fileContent = string.Empty; + var filePath = string.Empty; + RegisterRestoreData DataShow = null; + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + + openFileDialog.Filter = "Register Back Up files (*.rbu)|*.rbu"; + openFileDialog.FilterIndex = 2; + openFileDialog.RestoreDirectory = true; + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + //Get the path of specified file + filePath = openFileDialog.FileName; + + 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) + + ) + { + + + _currentGenesis.ReLogin(); + var comp = _currentGenesis.ReadRegister(Resoreitem.Key); + + if (BitConverter.ToString(RegValue) == BitConverter.ToString(comp)) + { + 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") + { + NotstringBuilder.AppendLine($"AppBlocked ! {Resoreitem.Key} to {BitConverter.ToString(RegValue)}"); + } + else + { + stringBuilder.AppendLine($"{Resoreitem.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); + } + } + + + + + + + + // + + } + } + } + MessageBox.Show(stringBuilder.ToString()); + MessageBox.Show(NotstringBuilder.ToString()); + + } } public class Q3Calibration