GTB: - process bar activated
This commit is contained in:
parent
99b6c33b07
commit
5f62750cbb
@ -180,6 +180,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
btnUploadPWFile.Enabled = false;
|
||||
btnReadStatus.Enabled = false;
|
||||
btnRepairPassword.Enabled = false;
|
||||
ddlLocation.Enabled = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -205,6 +206,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
tbxFileToEraseDrive.Enabled = true;
|
||||
btnUploadPWFile.Enabled = true;
|
||||
btnReadStatus.Enabled = true;
|
||||
ddlLocation.Enabled = true;
|
||||
if (_repairPasswordEnabled)
|
||||
btnRepairPassword.Enabled = true;
|
||||
}
|
||||
@ -262,6 +264,9 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
/// <remarks date="2025-Oct-02" author="Thomas Wiedebusch">
|
||||
/// - Catch error message on unknown data type and kill meter.
|
||||
/// </remarks>
|
||||
/// <remarks date="2025-Oct-17" author="Thomas Wiedebusch">
|
||||
/// - Actions on pwdContainer error.
|
||||
/// </remarks>
|
||||
private void Connect()
|
||||
{
|
||||
try
|
||||
@ -275,7 +280,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
}
|
||||
lblOverall.Text = @"Login to Cordonel...";
|
||||
|
||||
ViewProgressPcb(true);
|
||||
LowLevelActionControl(true);
|
||||
|
||||
_currentGenesis?.DisposeMeter();
|
||||
//dispose old meter
|
||||
@ -297,10 +302,29 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
{
|
||||
_meterBatch.MetersLogin();
|
||||
|
||||
if (!_currentGenesis.IsLoggedOn && String.IsNullOrEmpty(_currentGenesis.PcbId))
|
||||
{
|
||||
LowLevelActionControl(false);
|
||||
LogErrorText("ERROR: Cannot read out PcbId! Access to Cordonel denied!");
|
||||
return;
|
||||
}
|
||||
|
||||
var retValPwdBuild = MeterPwdHandlerDb.RequestPwdFileFromDb(_currentGenesis.PcbId, out var pwdContainer);
|
||||
|
||||
// CASE 1: - The 'production password' is the 'Lvl8 password' as the login succeeded.
|
||||
// Login failed and password cannot be acquired
|
||||
if (!_currentGenesis.IsLoggedOn &&
|
||||
(pwdContainer?.ListOfPasswords == null ||
|
||||
pwdContainer.ListOfPasswords.Count < 8 ||
|
||||
string.IsNullOrEmpty(pwdContainer.Skeleton)))
|
||||
{
|
||||
LowLevelActionControl(false);
|
||||
LogErrorText("ERROR: Login with 'production password' failed and password file cannot be acquired " +
|
||||
"from database!");
|
||||
return;
|
||||
}
|
||||
|
||||
// Password file exists
|
||||
// CASE 1: - The 'production password' is the 'Lvl8 password' as the login succeeded.
|
||||
if (retValPwdBuild && _currentGenesis.IsLoggedOn && pwdContainer.Skeleton.Equals(pwdContainer.Password))
|
||||
{
|
||||
// CASE 2: - Passwords are generated in database but password file is not installed or doesn't work.
|
||||
@ -309,7 +333,8 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
// If password file is initially not installed and the database password returned the SkeletonKey
|
||||
// the login has been successfully executed with this SkeletonKey, so a repair of the password
|
||||
// file needs to be enabled!
|
||||
ShowPasswordRepairMessage(@"Password exists on database but the SkeletonKey is valid - [Repair Password] enabled");
|
||||
ShowPasswordRepairMessage(
|
||||
@"Password exists on database but the SkeletonKey is valid - [Repair Password] enabled");
|
||||
}
|
||||
|
||||
if (!_currentGenesis.IsLoggedOn)
|
||||
@ -318,14 +343,14 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
Thread.Sleep(2000);
|
||||
// Try to log in with password level 8 which may not be published to the database
|
||||
var retVal = _currentGenesis.Login(Encoding.UTF8.GetString(pwdContainer.ListOfPasswords.Last()));
|
||||
|
||||
// CASE 3: - Passwords are generated in database and correctly installed. The login check will be done
|
||||
// with the generated password, but the 'production password' is still the 'SkeletonKey'.
|
||||
// - The database update of the production password went wrong!
|
||||
if (_currentGenesis.IsLoggedOn && retVal)
|
||||
{
|
||||
ShowPasswordRepairMessage(@"Password file is installed as login Lvl8 works, password in database not updated" +
|
||||
"- [Repair Password] enabled");
|
||||
ShowPasswordRepairMessage(
|
||||
@"Password file is installed as login Lvl8 works, password in database not updated" +
|
||||
"- [Repair Password] enabled");
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -353,7 +378,8 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
else if (_currentGenesis.Region.Equals("NA"))
|
||||
{
|
||||
var url = ServiceUrls.GetExportDataServiceUrl();
|
||||
var retStr = LocalWebRequest.GetRequestWithError(url + _currentGenesis.PcbId, out var errorCode, 30000);
|
||||
var retStr = LocalWebRequest.GetRequestWithError(url + _currentGenesis.PcbId,
|
||||
out var errorCode, 30000);
|
||||
if (errorCode == HttpStatusCode.OK.GetHashCode())
|
||||
{
|
||||
var retExport = JsonConvert.DeserializeObject<List<PwdExport>>(retStr);
|
||||
@ -394,8 +420,8 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
}
|
||||
|
||||
MessageBox.Show(sb.ToString());
|
||||
}// use skeletonKey
|
||||
// Retry login if not skeletonKey
|
||||
} // use skeletonKey
|
||||
// Retry login if not skeletonKey
|
||||
else
|
||||
{
|
||||
_meterBatch.MetersLogin();
|
||||
@ -450,19 +476,18 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
|
||||
LogText("");
|
||||
lblConnectPcb.ForeColor = Color.Green;
|
||||
CheckUpdateEnabled();
|
||||
|
||||
LogPcAndCordonelTime();
|
||||
LogInstalledMeterFw();
|
||||
}));
|
||||
}).ContinueWith(delegate
|
||||
{
|
||||
ViewProgressPcb(false);
|
||||
LowLevelActionControl(false);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ViewProgressPcb(false);
|
||||
LowLevelActionControl(false);
|
||||
MessageBox.Show(ex.Message, @"FAILED", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
LogErrorText(ex.Message);
|
||||
// Dispose meter
|
||||
@ -541,6 +566,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
{
|
||||
ViewProcessControl(false);
|
||||
_progressBarOn = false;
|
||||
CheckUpdateEnabled();
|
||||
}));
|
||||
}
|
||||
}
|
||||
@ -1311,7 +1337,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
LogText("");
|
||||
_currentGenesis.Logout();
|
||||
LowLevelActionControl(false);
|
||||
|
||||
LowLevelActionControl(false);
|
||||
// reboot the meter to take the new settings
|
||||
btnRebootMeter_Click(this, null);
|
||||
}
|
||||
@ -1338,15 +1364,20 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
LogText(msg);
|
||||
lblActualProcess.Text = msg;
|
||||
|
||||
LowLevelActionControl(true);
|
||||
_currentGenesis.ReLogin();
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
LowLevelActionControl(true);
|
||||
_currentGenesis.ReLogin();
|
||||
|
||||
_currentGenesis.StoreAllConfigurations();
|
||||
_currentGenesis.StoreAllConfigurations();
|
||||
|
||||
//add a blank line to separate next operation
|
||||
LogText("");
|
||||
_currentGenesis.Logout();
|
||||
LowLevelActionControl(false);
|
||||
//add a blank line to separate next operation
|
||||
LogText("");
|
||||
_currentGenesis.Logout();
|
||||
}).ContinueWith(delegate
|
||||
{
|
||||
LowLevelActionControl(false);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -1673,7 +1704,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
_meterFile = new MeterFile(_currentGenesis);
|
||||
}
|
||||
|
||||
ViewProgressPcb(true);
|
||||
LowLevelActionControl(true);
|
||||
//reset timer
|
||||
_startTime = DateTimeOffset.UtcNow;
|
||||
var sbMSG = new StringBuilder();
|
||||
@ -1736,8 +1767,8 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
ViewProgressPcb(false);
|
||||
}));
|
||||
LowLevelActionControl(false);
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
@ -2021,7 +2052,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
return;
|
||||
}
|
||||
|
||||
ViewProgressPcb(true);
|
||||
LowLevelActionControl(true);
|
||||
var sbMSG = new StringBuilder();
|
||||
var genesisStatus = new GenesisStatus();
|
||||
Task.Factory.StartNew(() =>
|
||||
@ -2031,7 +2062,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
ViewProgressPcb(false);
|
||||
LowLevelActionControl(false);
|
||||
if (sbMSG.ToString().Contains(GenesisStatusHandler.ERROR_MARKER))
|
||||
{
|
||||
LogErrorText(sbMSG.ToString());
|
||||
|
||||
20
Common/Ui/GenesisToolBox/FrmQsTool.Designer.cs
generated
20
Common/Ui/GenesisToolBox/FrmQsTool.Designer.cs
generated
@ -29,7 +29,7 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.btnWrite = new System.Windows.Forms.Button();
|
||||
this.btnLedOff = new System.Windows.Forms.Button();
|
||||
this.btnRead = new System.Windows.Forms.Button();
|
||||
this.lblConfigVersion = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
@ -67,13 +67,13 @@
|
||||
//
|
||||
// btnWrite
|
||||
//
|
||||
this.btnWrite.Location = new System.Drawing.Point(432, 132);
|
||||
this.btnWrite.Name = "btnWrite";
|
||||
this.btnWrite.Size = new System.Drawing.Size(129, 53);
|
||||
this.btnWrite.TabIndex = 1;
|
||||
this.btnWrite.Text = "Led Off";
|
||||
this.btnWrite.UseVisualStyleBackColor = true;
|
||||
this.btnWrite.Click += new System.EventHandler(this.btnWrite_Click);
|
||||
this.btnLedOff.Location = new System.Drawing.Point(432, 132);
|
||||
this.btnLedOff.Name = "btnLedOff";
|
||||
this.btnLedOff.Size = new System.Drawing.Size(129, 53);
|
||||
this.btnLedOff.TabIndex = 1;
|
||||
this.btnLedOff.Text = "Led Off";
|
||||
this.btnLedOff.UseVisualStyleBackColor = true;
|
||||
this.btnLedOff.Click += new System.EventHandler(this.btnLedOff_Click);
|
||||
//
|
||||
// btnRead
|
||||
//
|
||||
@ -404,7 +404,7 @@
|
||||
this.Controls.Add(this.grpSetup);
|
||||
this.Controls.Add(this.barOverallProgressUpdate);
|
||||
this.Controls.Add(this.btnRead);
|
||||
this.Controls.Add(this.btnWrite);
|
||||
this.Controls.Add(this.btnLedOff);
|
||||
this.Name = "FrmQsTool";
|
||||
this.Text = "Cordonel QS Tools";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmQsTool_FormClosing);
|
||||
@ -418,7 +418,7 @@
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button btnWrite;
|
||||
private System.Windows.Forms.Button btnLedOff;
|
||||
private System.Windows.Forms.Button btnRead;
|
||||
private System.Windows.Forms.Label lblConfigVersion;
|
||||
private System.Windows.Forms.Label label9;
|
||||
|
||||
@ -159,7 +159,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
private void DisableToolButtons()
|
||||
{
|
||||
btnRead.Enabled = false;
|
||||
btnWrite.Enabled = false;
|
||||
btnLedOff.Enabled = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -168,7 +168,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
private void EnableToolButtons()
|
||||
{
|
||||
btnRead.Enabled = true;
|
||||
btnWrite.Enabled = true;
|
||||
btnLedOff.Enabled = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -236,7 +236,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
}
|
||||
|
||||
lblOverall.Text = @"Login to Cordonel...";
|
||||
ViewProgressPcb(true);
|
||||
LowLevelActionControl(true);
|
||||
|
||||
_currentGenesis?.DisposeMeter();
|
||||
//dispose old meter
|
||||
@ -258,60 +258,62 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
{
|
||||
_meterBatch.MetersLogin();
|
||||
|
||||
if (!_currentGenesis.IsLoggedOn)
|
||||
if (!_currentGenesis.IsLoggedOn && String.IsNullOrEmpty(_currentGenesis.PcbId))
|
||||
{
|
||||
LowLevelActionControl(false);
|
||||
LogErrorText("ERROR: Cannot read out PcbId! Access to Cordonel denied!");
|
||||
return;
|
||||
}
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
lblConnectPcb.Text = StrPartPcbConnected;
|
||||
tbxPcbId.Text = _currentGenesis.PcbId;
|
||||
tbxPcbId.Visible = true;
|
||||
tbxMeterFw.Text = _currentGenesis.FwVersion;
|
||||
tbxMeterMeterSize.Text = _currentGenesis.MeterSize;
|
||||
tbxMeterLutCrc.Text = _currentGenesis.LutCrc;
|
||||
tbxRegion.Text = _currentGenesis.Region;
|
||||
LogText("Meter FW Version:\t" + _currentGenesis.FwVersion);
|
||||
LogText("Meter LUT CRC:\t" + _currentGenesis.LutCrc);
|
||||
LogText("Meter Size:\t" + _currentGenesis.MeterSize);
|
||||
LogText("Meter Region:\t" + _currentGenesis.Region);
|
||||
if (_currentGenesis.RadioFrequencyMhz != null)
|
||||
{
|
||||
tbxRadio.Text = $@"{_currentGenesis.RadioFrequencyMhz}";
|
||||
LogText("Radio frequency:\t" + $"{_currentGenesis.RadioFrequencyMhz} MHz");
|
||||
}
|
||||
lblConnectPcb.Text = StrPartPcbConnected;
|
||||
tbxPcbId.Text = _currentGenesis.PcbId;
|
||||
tbxPcbId.Visible = true;
|
||||
tbxMeterFw.Text = _currentGenesis.FwVersion;
|
||||
tbxMeterMeterSize.Text = _currentGenesis.MeterSize;
|
||||
tbxMeterLutCrc.Text = _currentGenesis.LutCrc;
|
||||
tbxRegion.Text = _currentGenesis.Region;
|
||||
LogText("Meter FW Version:\t" + _currentGenesis.FwVersion);
|
||||
LogText("Meter LUT CRC:\t" + _currentGenesis.LutCrc);
|
||||
LogText("Meter Size:\t" + _currentGenesis.MeterSize);
|
||||
LogText("Meter Region:\t" + _currentGenesis.Region);
|
||||
if (_currentGenesis.RadioFrequencyMhz != null)
|
||||
{
|
||||
tbxRadio.Text = $@"{_currentGenesis.RadioFrequencyMhz}";
|
||||
LogText("Radio frequency:\t" + $"{_currentGenesis.RadioFrequencyMhz} MHz");
|
||||
}
|
||||
|
||||
LogText("");
|
||||
LogText("'Configuration.json' version: " + _currentGenesis.InterfaceInfo.InterfaceVersion);
|
||||
lblConfigVersion.Text = @"Interface Version: " + _currentGenesis.InterfaceInfo.InterfaceVersion;
|
||||
lblConfigVersion.ForeColor = _currentGenesis.InterfaceSupportsFwVersion ? Color.Green : Color.Red;
|
||||
if (!_currentGenesis.InterfaceSupportsFwVersion)
|
||||
{
|
||||
var text = "INTERFACE VERSION OUTDATED!\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);
|
||||
LogText(text);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogText($"\'Configuration.json\' supports installed FW version: {_currentGenesis.FwVersion}");
|
||||
}
|
||||
LogText("");
|
||||
LogText("'Configuration.json' version: " + _currentGenesis.InterfaceInfo.InterfaceVersion);
|
||||
lblConfigVersion.Text = @"Interface Version: " + _currentGenesis.InterfaceInfo.InterfaceVersion;
|
||||
lblConfigVersion.ForeColor = _currentGenesis.InterfaceSupportsFwVersion ? Color.Green : Color.Red;
|
||||
if (!_currentGenesis.InterfaceSupportsFwVersion)
|
||||
{
|
||||
var text = "INTERFACE VERSION OUTDATED!\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);
|
||||
LogText(text);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogText($"\'Configuration.json\' supports installed FW version: {_currentGenesis.FwVersion}");
|
||||
}
|
||||
|
||||
LogText("");
|
||||
lblConnectPcb.ForeColor = Color.Green;
|
||||
CheckUpdateEnabled();
|
||||
LogText("");
|
||||
lblConnectPcb.ForeColor = Color.Green;
|
||||
CheckUpdateEnabled();
|
||||
|
||||
LogPcAndCordonelTime();
|
||||
LogInstalledMeterFw();
|
||||
LogPcAndCordonelTime();
|
||||
LogInstalledMeterFw();
|
||||
}));
|
||||
}).ContinueWith(delegate { ViewProgressPcb(false); });
|
||||
}).ContinueWith(delegate { LowLevelActionControl(false); });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ViewProgressPcb(false);
|
||||
LowLevelActionControl(false);
|
||||
MessageBox.Show(ex.Message, @"FAILED", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
LogErrorText(ex.Message);
|
||||
// Dispose meter
|
||||
@ -327,7 +329,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
|
||||
private void CheckUpdateEnabled()
|
||||
{
|
||||
if (_currentGenesis != null && _currentGenesis.IsLoggedOn)
|
||||
if (_currentGenesis != null )
|
||||
{
|
||||
SetCordonelAccessEnabled();
|
||||
return;
|
||||
@ -353,6 +355,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
{
|
||||
ViewProcessControl(false);
|
||||
_progressBarOn = false;
|
||||
CheckUpdateEnabled();
|
||||
}));
|
||||
}
|
||||
}
|
||||
@ -660,12 +663,11 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
|
||||
private void btnReadLifetime_Click(Object sender, EventArgs e)
|
||||
{
|
||||
ViewProgressPcb(true);
|
||||
LowLevelActionControl(true);
|
||||
var sbMSG = new StringBuilder();
|
||||
var genesisStatus = new GenesisStatus();
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
@ -802,18 +804,21 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
// buttons: MessageBoxButtons.OK, icon: MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}).ContinueWith(delegate { Invoke(new Action(() => { ViewProgressPcb(false); })); });
|
||||
}).ContinueWith(delegate { Invoke(new Action(() => { LowLevelActionControl(false); })); });
|
||||
}
|
||||
|
||||
private void btnWrite_Click(Object sender, EventArgs e)
|
||||
private void btnLedOff_Click(Object sender, EventArgs e)
|
||||
{
|
||||
if (!_currentGenesis.IsLoggedOn)
|
||||
{
|
||||
_currentGenesis.ReLogin();
|
||||
|
||||
}
|
||||
SetActualProcessAndLog("Set sample rate to 2 Hz");
|
||||
_currentGenesis.WriteRegister(Register.Genesisflow.SampleRate, 2);
|
||||
SetActualProcessAndLog("Switch LED OFF");
|
||||
_currentGenesis.WriteRegister(Register.Genesisflow.LedMode, 0);
|
||||
SetActualProcessAndLog("Set trigger active");
|
||||
_currentGenesis.WriteRegister(Register.Genesisflow.TriggerActive, 1);
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user