This commit is contained in:
Roland Drabesch 2025-10-01 12:43:19 +02:00
parent b4d63d6008
commit 38ad5d2f70
5 changed files with 176 additions and 50 deletions

View File

@ -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)

View File

@ -1,7 +1,6 @@
namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.RFTelegrams
{
using Common.Hardware.SIRT;
using System.Text;
public class AlarmMask

View File

@ -15,6 +15,8 @@ namespace Xylem.Common.Ui.GenesisToolBox
public String PcbID { get; set; }
public String Password { get; set; }
}

View File

@ -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;
}
}

View File

@ -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<string, byte[]> RegisterList { get; set; }
}
private RegisterRestoreData read()
{
regsToStore = new regStore()
{
PcbId = _currentPcbId, created = DateTimeOffset.Now, keyValues = new List<regDefValue>()
};
var ret = new RegisterRestoreData()
{
PcbID = int.Parse(_currentPcbId), BuildTime = DateTime.Now, RegisterList = new Dictionary<string, byte[]>()
};
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
/// </remarks>
private void button3_Click(Object sender, EventArgs e)
{
var apps = new List<CordonelAppVersion>();
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<CalibrationResults>(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<RegisterRestoreData>(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