LUT update improvements
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=binfile/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=BUGFIX/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Calib/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=catalogue/@EntryIndexedValue">True</s:Boolean>
|
||||
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=CCITT/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=CONFIGEXCHANGE/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Consts/@EntryIndexedValue">True</s:Boolean>
|
||||
|
||||
@@ -1052,6 +1052,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
/// </summary>
|
||||
public String FwVersion;
|
||||
|
||||
/// <summary>
|
||||
/// This is the Metrology Lookup Table CRC.
|
||||
/// </summary>
|
||||
public String LutCrc;
|
||||
|
||||
/// <summary>
|
||||
/// This is the meter size.
|
||||
/// </summary>
|
||||
public String MeterSize;
|
||||
|
||||
/// <summary>
|
||||
/// Region (EMEA or NA) and Radio frequency (433 or 868 or null).
|
||||
/// </summary>
|
||||
@@ -1107,8 +1117,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
//build the version string, because e.g. FLEXNETVERSION is one application which does not
|
||||
//follow the same rule. After the upper conversion, the hexadecimal outline will be lost
|
||||
versionString = BuildFwVersionString(readFwVersionBytes[1], readFwVersionBytes[0]);
|
||||
if (appVersionToRead.AppName == "FLEXNETVERSION")
|
||||
FwVersion = versionString;
|
||||
if (appVersionToRead.AppName == "FLEXNETVERSION") FwVersion = versionString;
|
||||
|
||||
if (readFwVersion != 0)
|
||||
{
|
||||
@@ -1139,6 +1148,15 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
MetrologyUpgradePermission = RegisterConverter.ConvertTo<Byte>(
|
||||
ReadRegister(Register.System.MetrologyUpgradePermission));
|
||||
|
||||
//read metrology lookup table CRC
|
||||
var lutCrc = RegisterConverter.ConvertTo<UInt32>(ReadRegister(Register.Genesisflow.LookupFileCrc));
|
||||
LutCrc = $@"0x{lutCrc:X4}";
|
||||
|
||||
|
||||
//read meter size
|
||||
MeterSize = MeterSizeConverter.ConvertMeterSizeEnumToSizeName((MeterSize)RegisterConverter.ConvertTo<Byte>(
|
||||
ReadRegister(Register.Genesisflow.MeterSize)));
|
||||
|
||||
//read core revision
|
||||
var coreRegisterRead = RegisterConverter.ConvertTo<String>(ReadRegister(Register.System.CoreRevision, 16));
|
||||
var coreRevision = coreRegisterRead?.Split('\0');
|
||||
|
||||
@@ -560,7 +560,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
//set extended timeout for file operations
|
||||
_currentGenesis.TransmitProtocol.SetResponseTimeout(ExtendedFileIoTimeoutMs);
|
||||
CommunicationConfig.RequestRetries = 0;
|
||||
//write "remove-command" to meter, wait for result and read back (read back returns false because of unreadable content)
|
||||
//write "remove-command" to meter, wait for result and read back
|
||||
//ATTENTION: read back returns FALSE because of unreadable content
|
||||
_currentGenesis.WriteRegister(Register.Configexchange.FileRemove, fileName, true, true);
|
||||
//set timeout back to default value
|
||||
_currentGenesis.TransmitProtocol.SetDefaultResponseTimeout();
|
||||
|
||||
@@ -67,13 +67,13 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
private const String StrProcessLut = "Processing metrology lookup table";
|
||||
|
||||
//trigger update retries
|
||||
private const Int32 RegisterWriteRetries = 2;
|
||||
private const Int32 RegisterWriteRetries = 0;
|
||||
|
||||
//update reties for files
|
||||
private const Int32 FileWriteRetries = 0;
|
||||
|
||||
//retry of entire update procedure
|
||||
private const Int32 UpdateProcedureRetries = 5;
|
||||
private const Int32 UpdateProcedureRetries = 0;
|
||||
|
||||
//threshold to increase the file write timing
|
||||
private const Int32 IncreaseTimeoutUpdateProcedureRetries = 4;
|
||||
@@ -87,17 +87,22 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
private String _actualOperation;
|
||||
private LutUpdateState _lutUpdateState;
|
||||
|
||||
// Process counter for caller to monitor actual progress
|
||||
private Int32 _processedBytesCtr;
|
||||
private Int32 _overallBytesCtr;
|
||||
|
||||
// Look up table file
|
||||
public MeterLutFile LutFile;
|
||||
|
||||
// actual processed file
|
||||
private String _actualFileName;
|
||||
|
||||
// list of names of installed meter files on drive 1
|
||||
private List<String> _meterFilesDrive1;
|
||||
|
||||
// number of operations for over all access
|
||||
private const Int32 NumberOfOperations = 11;
|
||||
private Int32 _operationCtr;
|
||||
|
||||
|
||||
// error message for display of error reason
|
||||
public String ErrorMessage;
|
||||
#endregion
|
||||
|
||||
#region Events
|
||||
@@ -124,18 +129,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
/// <summary>
|
||||
/// Process counter in percent
|
||||
/// </summary>
|
||||
/// <remarks date="2019-Jun-20" author="Thomas Wiedebusch">
|
||||
/// <remarks date="2022-Mar-03" author="Thomas Wiedebusch">
|
||||
/// - Initial
|
||||
/// </remarks>
|
||||
public Double OverallProcessCtrPercent
|
||||
{
|
||||
get
|
||||
{
|
||||
var processFileBytes = _meterFile?.ProcessedBytesCtr ?? 0;
|
||||
return 100.0 * (processFileBytes + _processedBytesCtr) /
|
||||
(_overallBytesCtr > 0 ? _overallBytesCtr : 1);
|
||||
}
|
||||
}
|
||||
public Double OverallProcessCtrPercent => 100.0 * _operationCtr / NumberOfOperations;
|
||||
|
||||
/// <summary>
|
||||
/// Single file process counter in percent
|
||||
@@ -211,7 +208,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
/// </remarks>
|
||||
public String GetLutUpdateStateOperation()
|
||||
{
|
||||
return _lutUpdateState == LutUpdateState.Idle ? "" : $"Downloading {_actualFileName}...";
|
||||
return _lutUpdateState == LutUpdateState.Idle ? "" : "Processing...";
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -270,6 +267,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
return false;
|
||||
}
|
||||
|
||||
_operationCtr = 0;
|
||||
_actualOperation = "";
|
||||
ErrorMessage = "";
|
||||
_lutUpdateState = LutUpdateState.StartInitial;
|
||||
while (_lutUpdateState != LutUpdateState.Idle && !StopUpdateProcess)
|
||||
{
|
||||
@@ -308,13 +308,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
StopUpdateProcess = false;
|
||||
|
||||
//reset all counters
|
||||
_processedBytesCtr = 0;
|
||||
_overallBytesCtr = 0;
|
||||
_updateProcedureRetryCtr = 0;
|
||||
|
||||
//set state machine for automatic FW update
|
||||
_lutUpdateState = LutUpdateState.Idle;
|
||||
_actualOperation = "";
|
||||
_operationCtr = 0;
|
||||
|
||||
//logout/login/auto-login
|
||||
ReestablishMeterFileSystem();
|
||||
@@ -402,8 +401,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
break;
|
||||
|
||||
case LutUpdateState.StepFailed:
|
||||
_processedBytesCtr = 0;
|
||||
_overallBytesCtr = 0;
|
||||
|
||||
_lutUpdateState = _updateProcedureRetryCtr++ < UpdateProcedureRetries
|
||||
? LutUpdateState.RepeatLutUpdate
|
||||
@@ -411,8 +408,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
break;
|
||||
|
||||
case LutUpdateState.RepeatLutUpdate:
|
||||
_processedBytesCtr = 0;
|
||||
_overallBytesCtr = 0;
|
||||
_lutUpdateState = LutUpdateState.DownloadLutFile;
|
||||
if (_updateProcedureRetryCtr >= IncreaseTimeoutUpdateProcedureRetries)
|
||||
{
|
||||
@@ -422,8 +417,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
break;
|
||||
|
||||
case LutUpdateState.UpdateFailed:
|
||||
_processedBytesCtr = 0;
|
||||
_overallBytesCtr = 0;
|
||||
StopUpdateProcess = true;
|
||||
_lutUpdateState = LutUpdateState.Idle;
|
||||
break;
|
||||
@@ -457,7 +450,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
private Boolean ValidateLutFile()
|
||||
{
|
||||
// check if LUT file contains data
|
||||
if (LutFile?.BinData == null || LutFile.BinData.Count < SizeLutFile) return false;
|
||||
if (LutFile?.BinData == null || LutFile.BinData.Count < SizeLutFile)
|
||||
{
|
||||
ErrorMessage += "File size mismatch!";
|
||||
return false;
|
||||
}
|
||||
|
||||
LutFile.IsValid = false;
|
||||
// extract the identifier and check, if this is a LUT file
|
||||
@@ -478,14 +475,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
var payload = new List<Byte>();
|
||||
payload.AddRange(entireFile.GetRange(IndexVersion, LutFileDataLength + LengthVersion));
|
||||
var calculatedCrc = Crc16Ccitt.CalculateMsb1021(payload.ToArray());
|
||||
if (calculatedCrc == LutFile.FileCrc)
|
||||
if (calculatedCrc != LutFile.FileCrc)
|
||||
{
|
||||
ErrorMessage += "CRC Mismatch!";
|
||||
return false;
|
||||
}
|
||||
|
||||
LutFile.CalculatedCrc = calculatedCrc;
|
||||
LutFile.IsValid = true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Download the CRC, the meter size and store calibration as preparation for the lookup table
|
||||
@@ -496,8 +495,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
/// </remarks>
|
||||
private Boolean PrepareLutDownload()
|
||||
{
|
||||
Boolean returnValue;
|
||||
_actualOperation = "Write Meter Size";
|
||||
var returnValue = true;
|
||||
|
||||
var retryCtr = 0;
|
||||
if (LutFile == null || _genesisMeter == null || _meterFile == null) return false;
|
||||
@@ -505,12 +503,36 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
_genesisMeter.TransmitProtocol.SetResponseTimeout(5000);
|
||||
do
|
||||
{
|
||||
_actualOperation = "Write Meter Size";
|
||||
returnValue = _genesisMeter.WriteRegister(Register.Genesisflow.MeterSize, (Byte)LutFile.MeterSize);
|
||||
_actualOperation = "Write CRC";
|
||||
returnValue &= _genesisMeter.WriteRegister<UInt32>(Register.Genesisflow.LookupFileCrc, LutFile.FileCrc);
|
||||
_actualOperation = "Store calibration";
|
||||
returnValue &= _genesisMeter.WriteRegister<Byte>(Register.Genesisflow.StoreCalibration, 1);
|
||||
_actualOperation = "Write meter size";
|
||||
_operationCtr++;
|
||||
if (!_genesisMeter.WriteRegister(Register.Genesisflow.MeterSize, (Byte)LutFile.MeterSize))
|
||||
{
|
||||
ErrorMessage = "Meter size could not be set!\n";
|
||||
_operationCtr--;
|
||||
returnValue = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_operationCtr++;
|
||||
_actualOperation = "Write Lut CRC to meter";
|
||||
if (!_genesisMeter.WriteRegister<UInt32>(Register.Genesisflow.LookupFileCrc, LutFile.FileCrc))
|
||||
{
|
||||
ErrorMessage += "Meter LUT CRC could not be set!\n";
|
||||
_operationCtr--;
|
||||
returnValue = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_operationCtr++;
|
||||
_actualOperation = "Store calibration to meter";
|
||||
if (!_genesisMeter.WriteRegister(Register.Genesisflow.StoreCalibration, 1))
|
||||
{
|
||||
ErrorMessage += "Meter store calibration failed!\n";
|
||||
_operationCtr--;
|
||||
returnValue = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!returnValue)
|
||||
{
|
||||
@@ -525,7 +547,36 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Download the metrology lookup table files
|
||||
/// Erase file and check if done!
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <remarks date="2022-Mar-03" author="Thomas Wiedebusch">
|
||||
/// - Initial
|
||||
/// </remarks>
|
||||
private Boolean EraseFile(String fileDriveName)
|
||||
{
|
||||
var returnValue = _meterFile.UnlockEraseWriteMeterFile(fileDriveName);
|
||||
//erase returns always TRUE, even if the erasure failed! Check with catalogue
|
||||
_meterFile.EraseMeterFile(fileDriveName);
|
||||
_meterFilesDrive1.Clear();
|
||||
if (_meterFile.ReadMeterFileCatalog(out var meterFilesDrive1, MeterFile.StrMeterDrive1,
|
||||
MeterFile.WildcardAll.ToString()))
|
||||
{
|
||||
_meterFilesDrive1.AddRange(meterFilesDrive1);
|
||||
if (_meterFilesDrive1.Contains(fileDriveName))
|
||||
{
|
||||
returnValue = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
returnValue = false;
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Download the metrology lookup table files and read the catalog of drive 1
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <remarks date="2022-Feb-16" author="Thomas Wiedebusch">
|
||||
@@ -535,32 +586,97 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
{
|
||||
|
||||
//counters for actual process information
|
||||
_processedBytesCtr = 0;
|
||||
_overallBytesCtr = 0;
|
||||
var retryCtr = 0;
|
||||
Boolean returnValue;
|
||||
|
||||
if (LutFile == null) return false;
|
||||
|
||||
//set extended timeout for trigger upgrade response delay
|
||||
_genesisMeter.TransmitProtocol.SetResponseTimeout(5000);
|
||||
var returnValue = true;
|
||||
//write file portion and retry if not successful
|
||||
do
|
||||
{
|
||||
// read all files which are already installed
|
||||
_actualOperation = "Read installed meter files drive 1";
|
||||
_operationCtr++;
|
||||
if (_meterFilesDrive1 == null)
|
||||
{
|
||||
_meterFilesDrive1 = new List<String>();
|
||||
}
|
||||
_meterFilesDrive1.Clear();
|
||||
if (_meterFile.ReadMeterFileCatalog(out var meterFilesDrive1, MeterFile.StrMeterDrive1,
|
||||
MeterFile.WildcardAll.ToString()))
|
||||
{
|
||||
_meterFilesDrive1.AddRange(meterFilesDrive1);
|
||||
}
|
||||
|
||||
// erase file
|
||||
_operationCtr++;
|
||||
_actualFileName = StrLutMeterFileName;
|
||||
// unlock, erase and write original
|
||||
returnValue = _meterFile.UnlockEraseWriteMeterFile(_actualFileName);
|
||||
_actualOperation = $"Erase {_actualFileName}";
|
||||
returnValue &= _meterFile.EraseMeterFile(_actualFileName);
|
||||
_actualOperation = $"Write {_actualFileName}";
|
||||
returnValue &= _meterFile.WriteMeterFile(_actualFileName, LutFile.BinData.ToArray());
|
||||
if (!EraseFile(_actualFileName))
|
||||
{
|
||||
ErrorMessage += $"LUT file {_actualFileName} not erased!\n";
|
||||
returnValue = false;
|
||||
}
|
||||
|
||||
_actualFileName = StrLutBackupMeterFileName;
|
||||
// write backup
|
||||
returnValue &= _meterFile.UnlockEraseWriteMeterFile(_actualFileName);
|
||||
_actualOperation = $"Erase {_actualFileName}";
|
||||
returnValue &= _meterFile.EraseMeterFile(_actualFileName);
|
||||
_operationCtr++;
|
||||
_actualOperation = $"Write {_actualFileName}";
|
||||
returnValue &= _meterFile.WriteMeterFile(_actualFileName, LutFile.BinData.ToArray());
|
||||
if (!_meterFile.WriteMeterFile(_actualFileName, LutFile.BinData.ToArray()))
|
||||
{
|
||||
ErrorMessage += $"Writing of {_actualFileName} failed!\n";
|
||||
returnValue = false;
|
||||
}
|
||||
|
||||
// erase file
|
||||
_operationCtr++;
|
||||
_actualFileName = StrLutBackupMeterFileName;
|
||||
_actualOperation = $"Erase {_actualFileName}";
|
||||
if (!EraseFile(_actualFileName))
|
||||
{
|
||||
ErrorMessage += $"LUT file {_actualFileName} not erased!\n";
|
||||
returnValue = false;
|
||||
}
|
||||
|
||||
_operationCtr++;
|
||||
_actualOperation = $"Write {_actualFileName}";
|
||||
if (!_meterFile.WriteMeterFile(_actualFileName, LutFile.BinData.ToArray()))
|
||||
{
|
||||
ErrorMessage += $"Writing of {_actualFileName} failed!\n";
|
||||
returnValue = false;
|
||||
}
|
||||
|
||||
|
||||
_operationCtr++;
|
||||
_actualOperation = $"Write {_actualFileName}";
|
||||
if (!_meterFile.WriteMeterFile(_actualFileName, LutFile.BinData.ToArray()))
|
||||
{
|
||||
ErrorMessage += $"Writing of {_actualFileName} failed!\n";
|
||||
returnValue = false;
|
||||
}
|
||||
|
||||
_operationCtr++;
|
||||
_actualOperation = "Read installed meter files drive 1";
|
||||
_meterFilesDrive1.Clear();
|
||||
if (!_meterFile.ReadMeterFileCatalog(out meterFilesDrive1, MeterFile.StrMeterDrive1,
|
||||
MeterFile.WildcardAll.ToString()))
|
||||
{
|
||||
returnValue = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_meterFilesDrive1.AddRange(meterFilesDrive1);
|
||||
if (!_meterFilesDrive1.Contains(StrLutMeterFileName))
|
||||
{
|
||||
ErrorMessage += $"LUT file {StrLutMeterFileName} not installed!\n";
|
||||
returnValue = false;
|
||||
}
|
||||
|
||||
if (!_meterFilesDrive1.Contains(StrLutBackupMeterFileName))
|
||||
{
|
||||
ErrorMessage += $"LUT file {StrLutBackupMeterFileName} not installed!\n";
|
||||
returnValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!returnValue)
|
||||
{
|
||||
@@ -568,10 +684,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
|
||||
}
|
||||
} while (!returnValue && retryCtr++ < FileWriteRetries && !StopUpdateProcess);
|
||||
|
||||
returnValue &= retryCtr <= FileWriteRetries;
|
||||
|
||||
//update information for process bar
|
||||
_processedBytesCtr += LutFile.BinData.Count;
|
||||
//set timeout back to default value
|
||||
_genesisMeter.TransmitProtocol.SetDefaultResponseTimeout();
|
||||
|
||||
return !StopUpdateProcess && returnValue;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers
|
||||
public static readonly String NumFirePulses = "GENESISFLOW_NumFirePulses";
|
||||
public static readonly String LookupFileCrc = "GENESISFLOW_LookupFileCrc";
|
||||
|
||||
|
||||
};
|
||||
|
||||
public static class Powermon
|
||||
@@ -122,6 +121,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers
|
||||
Configexchange.FileClose,
|
||||
Configexchange.FileWrite,
|
||||
Configexchange.FileRead,
|
||||
Configexchange.Catalogue,
|
||||
Configexchange.GetFilePointerOffset,
|
||||
Configexchange.SetFilePointerOffset,
|
||||
Configexchange.FileRemove,
|
||||
@@ -136,6 +136,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Registers
|
||||
Genesisflow.TriggerIdle,
|
||||
Genesisflow.LedMode,
|
||||
Genesisflow.SampleRate,
|
||||
Genesisflow.MeterSize,
|
||||
Genesisflow.LookupFileCrc,
|
||||
Genesisflow.StoreCalibration,
|
||||
|
||||
Sensusradio.WakeupInterval,
|
||||
Sensusradio.FrequencyIndicator
|
||||
|
||||
+133
-65
@@ -30,6 +30,12 @@
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.grpSetup = new System.Windows.Forms.GroupBox();
|
||||
this.tbxPcbId = new System.Windows.Forms.TextBox();
|
||||
this.tbxMeterFw = new System.Windows.Forms.TextBox();
|
||||
this.tbxMeterMeterSize = new System.Windows.Forms.TextBox();
|
||||
this.tbxMeterLutCrc = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.lblFwVersion = new System.Windows.Forms.Label();
|
||||
this.btnConnect = new System.Windows.Forms.Button();
|
||||
this.lblConnectPcb = new System.Windows.Forms.Label();
|
||||
@@ -48,16 +54,16 @@
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.tbxFileMeterSize = new System.Windows.Forms.TextBox();
|
||||
this.tbxFileCrc = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.lblLutFileLoadedInfo = new System.Windows.Forms.Label();
|
||||
this.tbxLutFilePathName = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.btnOpenLutFile = new System.Windows.Forms.Button();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.lblUpdateTime = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.tbxFileCrc = new System.Windows.Forms.TextBox();
|
||||
this.tbxMeterSize = new System.Windows.Forms.TextBox();
|
||||
this.grpSetup.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.groupBox1.SuspendLayout();
|
||||
@@ -65,6 +71,12 @@
|
||||
//
|
||||
// grpSetup
|
||||
//
|
||||
this.grpSetup.Controls.Add(this.tbxPcbId);
|
||||
this.grpSetup.Controls.Add(this.tbxMeterFw);
|
||||
this.grpSetup.Controls.Add(this.tbxMeterMeterSize);
|
||||
this.grpSetup.Controls.Add(this.tbxMeterLutCrc);
|
||||
this.grpSetup.Controls.Add(this.label5);
|
||||
this.grpSetup.Controls.Add(this.label6);
|
||||
this.grpSetup.Controls.Add(this.lblFwVersion);
|
||||
this.grpSetup.Controls.Add(this.btnConnect);
|
||||
this.grpSetup.Controls.Add(this.lblConnectPcb);
|
||||
@@ -72,25 +84,75 @@
|
||||
this.grpSetup.Controls.Add(this.cbComSlot);
|
||||
this.grpSetup.Location = new System.Drawing.Point(12, 56);
|
||||
this.grpSetup.Name = "grpSetup";
|
||||
this.grpSetup.Size = new System.Drawing.Size(248, 153);
|
||||
this.grpSetup.Size = new System.Drawing.Size(248, 212);
|
||||
this.grpSetup.TabIndex = 24;
|
||||
this.grpSetup.TabStop = false;
|
||||
this.grpSetup.Text = "Connection";
|
||||
//
|
||||
// tbxPcbId
|
||||
//
|
||||
this.tbxPcbId.Location = new System.Drawing.Point(126, 27);
|
||||
this.tbxPcbId.Name = "tbxPcbId";
|
||||
this.tbxPcbId.ReadOnly = true;
|
||||
this.tbxPcbId.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxPcbId.TabIndex = 32;
|
||||
//
|
||||
// tbxMeterFw
|
||||
//
|
||||
this.tbxMeterFw.Location = new System.Drawing.Point(126, 56);
|
||||
this.tbxMeterFw.Name = "tbxMeterFw";
|
||||
this.tbxMeterFw.ReadOnly = true;
|
||||
this.tbxMeterFw.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxMeterFw.TabIndex = 31;
|
||||
//
|
||||
// tbxMeterMeterSize
|
||||
//
|
||||
this.tbxMeterMeterSize.Location = new System.Drawing.Point(126, 116);
|
||||
this.tbxMeterMeterSize.Name = "tbxMeterMeterSize";
|
||||
this.tbxMeterMeterSize.ReadOnly = true;
|
||||
this.tbxMeterMeterSize.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxMeterMeterSize.TabIndex = 30;
|
||||
//
|
||||
// tbxMeterLutCrc
|
||||
//
|
||||
this.tbxMeterLutCrc.Location = new System.Drawing.Point(126, 86);
|
||||
this.tbxMeterLutCrc.Name = "tbxMeterLutCrc";
|
||||
this.tbxMeterLutCrc.ReadOnly = true;
|
||||
this.tbxMeterLutCrc.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxMeterLutCrc.TabIndex = 29;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(10, 120);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(60, 13);
|
||||
this.label5.TabIndex = 28;
|
||||
this.label5.Text = "Meter Size:";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(9, 90);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(56, 13);
|
||||
this.label6.TabIndex = 27;
|
||||
this.label6.Text = "LUT CRC:";
|
||||
//
|
||||
// lblFwVersion
|
||||
//
|
||||
this.lblFwVersion.AutoSize = true;
|
||||
this.lblFwVersion.Location = new System.Drawing.Point(10, 60);
|
||||
this.lblFwVersion.Location = new System.Drawing.Point(9, 60);
|
||||
this.lblFwVersion.Name = "lblFwVersion";
|
||||
this.lblFwVersion.Size = new System.Drawing.Size(55, 13);
|
||||
this.lblFwVersion.Size = new System.Drawing.Size(57, 13);
|
||||
this.lblFwVersion.TabIndex = 25;
|
||||
this.lblFwVersion.Text = "----------------";
|
||||
this.lblFwVersion.Text = "Meter FW:";
|
||||
//
|
||||
// btnConnect
|
||||
//
|
||||
this.btnConnect.Location = new System.Drawing.Point(126, 113);
|
||||
this.btnConnect.Location = new System.Drawing.Point(126, 181);
|
||||
this.btnConnect.Name = "btnConnect";
|
||||
this.btnConnect.Size = new System.Drawing.Size(116, 24);
|
||||
this.btnConnect.Size = new System.Drawing.Size(116, 25);
|
||||
this.btnConnect.TabIndex = 24;
|
||||
this.btnConnect.Text = "Connect";
|
||||
this.btnConnect.UseVisualStyleBackColor = true;
|
||||
@@ -101,14 +163,14 @@
|
||||
this.lblConnectPcb.AutoSize = true;
|
||||
this.lblConnectPcb.Location = new System.Drawing.Point(10, 30);
|
||||
this.lblConnectPcb.Name = "lblConnectPcb";
|
||||
this.lblConnectPcb.Size = new System.Drawing.Size(100, 13);
|
||||
this.lblConnectPcb.Size = new System.Drawing.Size(33, 13);
|
||||
this.lblConnectPcb.TabIndex = 23;
|
||||
this.lblConnectPcb.Text = "NOT CONNECTED";
|
||||
this.lblConnectPcb.Text = "NOT ";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(10, 89);
|
||||
this.label2.Location = new System.Drawing.Point(10, 156);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(28, 13);
|
||||
this.label2.TabIndex = 20;
|
||||
@@ -138,7 +200,7 @@
|
||||
"18",
|
||||
"19",
|
||||
"20"});
|
||||
this.cbComSlot.Location = new System.Drawing.Point(43, 85);
|
||||
this.cbComSlot.Location = new System.Drawing.Point(126, 150);
|
||||
this.cbComSlot.Name = "cbComSlot";
|
||||
this.cbComSlot.Size = new System.Drawing.Size(37, 21);
|
||||
this.cbComSlot.TabIndex = 5;
|
||||
@@ -149,7 +211,7 @@
|
||||
//
|
||||
this.lblWaitingForMeterResponse.AutoSize = true;
|
||||
this.lblWaitingForMeterResponse.ForeColor = System.Drawing.Color.Red;
|
||||
this.lblWaitingForMeterResponse.Location = new System.Drawing.Point(532, 223);
|
||||
this.lblWaitingForMeterResponse.Location = new System.Drawing.Point(532, 281);
|
||||
this.lblWaitingForMeterResponse.Name = "lblWaitingForMeterResponse";
|
||||
this.lblWaitingForMeterResponse.Size = new System.Drawing.Size(182, 13);
|
||||
this.lblWaitingForMeterResponse.TabIndex = 18;
|
||||
@@ -157,7 +219,7 @@
|
||||
//
|
||||
// btnStopFwUpdate
|
||||
//
|
||||
this.btnStopFwUpdate.Location = new System.Drawing.Point(310, 113);
|
||||
this.btnStopFwUpdate.Location = new System.Drawing.Point(310, 181);
|
||||
this.btnStopFwUpdate.Name = "btnStopFwUpdate";
|
||||
this.btnStopFwUpdate.Size = new System.Drawing.Size(116, 25);
|
||||
this.btnStopFwUpdate.TabIndex = 8;
|
||||
@@ -167,7 +229,7 @@
|
||||
//
|
||||
// btnDownloadLutFile
|
||||
//
|
||||
this.btnDownloadLutFile.Location = new System.Drawing.Point(310, 84);
|
||||
this.btnDownloadLutFile.Location = new System.Drawing.Point(310, 147);
|
||||
this.btnDownloadLutFile.Name = "btnDownloadLutFile";
|
||||
this.btnDownloadLutFile.Size = new System.Drawing.Size(116, 25);
|
||||
this.btnDownloadLutFile.TabIndex = 0;
|
||||
@@ -178,7 +240,7 @@
|
||||
// lblOverall
|
||||
//
|
||||
this.lblOverall.AutoSize = true;
|
||||
this.lblOverall.Location = new System.Drawing.Point(21, 260);
|
||||
this.lblOverall.Location = new System.Drawing.Point(21, 318);
|
||||
this.lblOverall.Name = "lblOverall";
|
||||
this.lblOverall.Size = new System.Drawing.Size(80, 13);
|
||||
this.lblOverall.TabIndex = 7;
|
||||
@@ -186,7 +248,7 @@
|
||||
//
|
||||
// barSingleProgressUpdate
|
||||
//
|
||||
this.barSingleProgressUpdate.Location = new System.Drawing.Point(12, 239);
|
||||
this.barSingleProgressUpdate.Location = new System.Drawing.Point(12, 297);
|
||||
this.barSingleProgressUpdate.Name = "barSingleProgressUpdate";
|
||||
this.barSingleProgressUpdate.Size = new System.Drawing.Size(702, 18);
|
||||
this.barSingleProgressUpdate.TabIndex = 6;
|
||||
@@ -195,7 +257,7 @@
|
||||
// lblActualProcess
|
||||
//
|
||||
this.lblActualProcess.AutoSize = true;
|
||||
this.lblActualProcess.Location = new System.Drawing.Point(21, 223);
|
||||
this.lblActualProcess.Location = new System.Drawing.Point(21, 281);
|
||||
this.lblActualProcess.Name = "lblActualProcess";
|
||||
this.lblActualProcess.Size = new System.Drawing.Size(76, 13);
|
||||
this.lblActualProcess.TabIndex = 4;
|
||||
@@ -203,7 +265,7 @@
|
||||
//
|
||||
// barOverallProgressUpdate
|
||||
//
|
||||
this.barOverallProgressUpdate.Location = new System.Drawing.Point(12, 276);
|
||||
this.barOverallProgressUpdate.Location = new System.Drawing.Point(12, 334);
|
||||
this.barOverallProgressUpdate.Name = "barOverallProgressUpdate";
|
||||
this.barOverallProgressUpdate.Size = new System.Drawing.Size(702, 18);
|
||||
this.barOverallProgressUpdate.TabIndex = 3;
|
||||
@@ -222,7 +284,7 @@
|
||||
//
|
||||
this.lblFwUpdateInfo.AutoSize = true;
|
||||
this.lblFwUpdateInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblFwUpdateInfo.Location = new System.Drawing.Point(12, 34);
|
||||
this.lblFwUpdateInfo.Location = new System.Drawing.Point(527, 6);
|
||||
this.lblFwUpdateInfo.Name = "lblFwUpdateInfo";
|
||||
this.lblFwUpdateInfo.Size = new System.Drawing.Size(72, 13);
|
||||
this.lblFwUpdateInfo.TabIndex = 27;
|
||||
@@ -243,7 +305,7 @@
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.tbxMeterSize);
|
||||
this.groupBox1.Controls.Add(this.tbxFileMeterSize);
|
||||
this.groupBox1.Controls.Add(this.tbxFileCrc);
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Controls.Add(this.label1);
|
||||
@@ -255,15 +317,49 @@
|
||||
this.groupBox1.Controls.Add(this.btnOpenLutFile);
|
||||
this.groupBox1.Location = new System.Drawing.Point(278, 56);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(436, 153);
|
||||
this.groupBox1.Size = new System.Drawing.Size(436, 212);
|
||||
this.groupBox1.TabIndex = 28;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Lookup Table";
|
||||
//
|
||||
// tbxFileMeterSize
|
||||
//
|
||||
this.tbxFileMeterSize.Location = new System.Drawing.Point(104, 116);
|
||||
this.tbxFileMeterSize.Name = "tbxFileMeterSize";
|
||||
this.tbxFileMeterSize.ReadOnly = true;
|
||||
this.tbxFileMeterSize.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxFileMeterSize.TabIndex = 13;
|
||||
//
|
||||
// tbxFileCrc
|
||||
//
|
||||
this.tbxFileCrc.Location = new System.Drawing.Point(104, 86);
|
||||
this.tbxFileCrc.Name = "tbxFileCrc";
|
||||
this.tbxFileCrc.ReadOnly = true;
|
||||
this.tbxFileCrc.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxFileCrc.TabIndex = 12;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(10, 120);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(60, 13);
|
||||
this.label3.TabIndex = 11;
|
||||
this.label3.Text = "Meter Size:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(10, 90);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(51, 13);
|
||||
this.label1.TabIndex = 10;
|
||||
this.label1.Text = "File CRC:";
|
||||
//
|
||||
// lblLutFileLoadedInfo
|
||||
//
|
||||
this.lblLutFileLoadedInfo.AutoSize = true;
|
||||
this.lblLutFileLoadedInfo.Location = new System.Drawing.Point(10, 120);
|
||||
this.lblLutFileLoadedInfo.Location = new System.Drawing.Point(10, 60);
|
||||
this.lblLutFileLoadedInfo.Name = "lblLutFileLoadedInfo";
|
||||
this.lblLutFileLoadedInfo.Size = new System.Drawing.Size(97, 13);
|
||||
this.lblLutFileLoadedInfo.TabIndex = 9;
|
||||
@@ -271,7 +367,7 @@
|
||||
//
|
||||
// tbxLutFilePathName
|
||||
//
|
||||
this.tbxLutFilePathName.Location = new System.Drawing.Point(104, 23);
|
||||
this.tbxLutFilePathName.Location = new System.Drawing.Point(104, 27);
|
||||
this.tbxLutFilePathName.Name = "tbxLutFilePathName";
|
||||
this.tbxLutFilePathName.ReadOnly = true;
|
||||
this.tbxLutFilePathName.Size = new System.Drawing.Size(322, 20);
|
||||
@@ -288,7 +384,7 @@
|
||||
//
|
||||
// btnOpenLutFile
|
||||
//
|
||||
this.btnOpenLutFile.Location = new System.Drawing.Point(310, 53);
|
||||
this.btnOpenLutFile.Location = new System.Drawing.Point(310, 112);
|
||||
this.btnOpenLutFile.Name = "btnOpenLutFile";
|
||||
this.btnOpenLutFile.Size = new System.Drawing.Size(116, 26);
|
||||
this.btnOpenLutFile.TabIndex = 0;
|
||||
@@ -299,7 +395,7 @@
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(250, 223);
|
||||
this.label9.Location = new System.Drawing.Point(250, 281);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(101, 13);
|
||||
this.label9.TabIndex = 30;
|
||||
@@ -308,52 +404,18 @@
|
||||
// lblUpdateTime
|
||||
//
|
||||
this.lblUpdateTime.AutoSize = true;
|
||||
this.lblUpdateTime.Location = new System.Drawing.Point(357, 223);
|
||||
this.lblUpdateTime.Location = new System.Drawing.Point(357, 281);
|
||||
this.lblUpdateTime.Name = "lblUpdateTime";
|
||||
this.lblUpdateTime.Size = new System.Drawing.Size(28, 13);
|
||||
this.lblUpdateTime.TabIndex = 31;
|
||||
this.lblUpdateTime.Text = "0:00";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(10, 60);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(51, 13);
|
||||
this.label1.TabIndex = 10;
|
||||
this.label1.Text = "File CRC:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(10, 90);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(60, 13);
|
||||
this.label3.TabIndex = 11;
|
||||
this.label3.Text = "Meter Size:";
|
||||
//
|
||||
// tbxFileCrc
|
||||
//
|
||||
this.tbxFileCrc.Location = new System.Drawing.Point(104, 56);
|
||||
this.tbxFileCrc.Name = "tbxFileCrc";
|
||||
this.tbxFileCrc.ReadOnly = true;
|
||||
this.tbxFileCrc.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxFileCrc.TabIndex = 12;
|
||||
//
|
||||
// tbxMeterSize
|
||||
//
|
||||
this.tbxMeterSize.Location = new System.Drawing.Point(104, 86);
|
||||
this.tbxMeterSize.Name = "tbxMeterSize";
|
||||
this.tbxMeterSize.ReadOnly = true;
|
||||
this.tbxMeterSize.Size = new System.Drawing.Size(68, 20);
|
||||
this.tbxMeterSize.TabIndex = 13;
|
||||
//
|
||||
// FrmLutUpdate
|
||||
//
|
||||
this.AccessibleRole = System.Windows.Forms.AccessibleRole.Sound;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(723, 317);
|
||||
this.ClientSize = new System.Drawing.Size(723, 364);
|
||||
this.Controls.Add(this.lblUpdateTime);
|
||||
this.Controls.Add(this.label9);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
@@ -406,9 +468,15 @@
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.Label lblUpdateTime;
|
||||
private System.Windows.Forms.Label lblLutFileLoadedInfo;
|
||||
private System.Windows.Forms.TextBox tbxMeterSize;
|
||||
private System.Windows.Forms.TextBox tbxFileMeterSize;
|
||||
private System.Windows.Forms.TextBox tbxFileCrc;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox tbxMeterMeterSize;
|
||||
private System.Windows.Forms.TextBox tbxMeterLutCrc;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox tbxMeterFw;
|
||||
private System.Windows.Forms.TextBox tbxPcbId;
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,6 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
private GenesisMeter _currentGenesis;
|
||||
private const String StrConnecting = "Connecting to PCB";
|
||||
private const String StrNotConnected = "NOT CONNECTED";
|
||||
private const String StrFwVersion = "FW: ";
|
||||
private const String StrPartPcbConnected = "PCB ID: ";
|
||||
private const String StrOverallProcess = "Overall Process";
|
||||
|
||||
@@ -38,8 +37,8 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
|
||||
private Boolean _tryConnectPcb;
|
||||
private Boolean _lutFileSuccessfulWritten;
|
||||
private const String StrUpdateErrorMessage = "METROLOGY LOOKUP TABLE UPDATE FAILED!\n\n";
|
||||
private const String StrUpdateSuccessMessage = "Metrology lookup table successfulley written!\n\n";
|
||||
private const String StrUpdateErrorMessage = "METROLOGY LOOKUP TABLE UPDATE FAILED!";
|
||||
private const String StrUpdateSuccessMessage = "Metrology lookup table successfulley written!";
|
||||
private const String StrLutFileInvalid = "LUT FILE INVALID";
|
||||
private const String StrLutFileValid = "LUT file loaded";
|
||||
|
||||
@@ -64,7 +63,6 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
{
|
||||
ProcessViewControl(false);
|
||||
lblConnectPcb.Text = StrNotConnected;
|
||||
lblFwVersion.Text = "";
|
||||
lblConnectPcb.ForeColor = Color.Red;
|
||||
lblWaitingForMeterResponse.Visible = false;
|
||||
btnConnect.Enabled = true;
|
||||
@@ -73,6 +71,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
SetControlDownloadsLocked();
|
||||
btnStopFwUpdate.Enabled = false;
|
||||
btnOpenLutFile.Enabled = true;
|
||||
tbxPcbId.Visible = false;
|
||||
}
|
||||
|
||||
private void FrmLutUpdate_Load(Object sender, EventArgs e)
|
||||
@@ -185,8 +184,12 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
lblConnectPcb.Text = StrPartPcbConnected + _currentGenesis.PcbId;
|
||||
lblFwVersion.Text = StrFwVersion + _currentGenesis.FwVersion;
|
||||
lblConnectPcb.Text = StrPartPcbConnected;
|
||||
tbxPcbId.Text = _currentGenesis.PcbId;
|
||||
tbxPcbId.Visible = true;
|
||||
tbxMeterFw.Text = _currentGenesis.FwVersion;
|
||||
tbxMeterMeterSize.Text = _currentGenesis.MeterSize;
|
||||
tbxMeterLutCrc.Text = _currentGenesis.LutCrc;
|
||||
lblConnectPcb.ForeColor = Color.Green;
|
||||
CheckUpdateEnabled();
|
||||
_currentGenesis.Logout();
|
||||
@@ -280,9 +283,17 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
ProcessViewControl(false);
|
||||
SetControlsDownloadIsFinished();
|
||||
|
||||
if (_lutFileSuccessfulWritten)
|
||||
if (!_lutFileSuccessfulWritten)
|
||||
{
|
||||
MessageBoxShow(StrUpdateErrorMessage, @"FAILED",
|
||||
lblLutFileLoadedInfo.ForeColor = Color.Red;
|
||||
lblLutFileLoadedInfo.Text = StrUpdateErrorMessage;
|
||||
var txt = StrUpdateErrorMessage;
|
||||
if (!string.IsNullOrEmpty(_meterLutUpdate?.ErrorMessage))
|
||||
{
|
||||
txt += "\n\n";
|
||||
txt += _meterLutUpdate?.ErrorMessage;
|
||||
}
|
||||
MessageBoxShow(txt, @"FAILED",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
else
|
||||
@@ -327,13 +338,14 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
lblActualProcess.Text = _meterLutUpdate?.GetActualOperation();
|
||||
|
||||
var overallProgress = (Int32)(_meterLutUpdate?.OverallProcessCtrPercent ?? 0);
|
||||
if (overallProgress < 0) overallProgress = 0;
|
||||
barOverallProgressUpdate.Value = overallProgress > 100 ? 100 : overallProgress;
|
||||
barOverallProgressUpdate.Update();
|
||||
|
||||
var singleProgress = (Int32)(_meterLutUpdate?.SingleFileProcessCtrPercent ?? 0);
|
||||
if (_meterLutUpdate?.GetLutUpdateStateOperation() != _lastFwUpdateState)
|
||||
if (_meterLutUpdate?.GetActualOperation() != _lastFwUpdateState)
|
||||
{
|
||||
_lastFwUpdateState = _meterLutUpdate?.GetLutUpdateStateOperation();
|
||||
_lastFwUpdateState = _meterLutUpdate?.GetActualOperation();
|
||||
lblWaitingForMeterResponse.Visible = false;
|
||||
}
|
||||
else
|
||||
@@ -394,15 +406,24 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
||||
lblLutFileLoadedInfo.ForeColor = Color.Green;
|
||||
lblLutFileLoadedInfo.Text = StrLutFileValid;
|
||||
tbxFileCrc.Text = $@"0x{_meterLutUpdate.LutFile.FileCrc:X4}";
|
||||
tbxMeterSize.Text = MeterSizeConverter.ConvertMeterSizeEnumToSizeName(_meterLutUpdate.LutFile.MeterSize);
|
||||
tbxFileMeterSize.Text = MeterSizeConverter.ConvertMeterSizeEnumToSizeName(_meterLutUpdate.LutFile.MeterSize);
|
||||
_lutFileValid = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
var txt = "";
|
||||
if (!string.IsNullOrEmpty(_meterLutUpdate?.ErrorMessage))
|
||||
{
|
||||
txt += _meterLutUpdate?.ErrorMessage;
|
||||
}
|
||||
else
|
||||
{
|
||||
txt = StrLutFileInvalid;
|
||||
}
|
||||
lblLutFileLoadedInfo.ForeColor = Color.Red;
|
||||
lblLutFileLoadedInfo.Text = StrLutFileInvalid;
|
||||
lblLutFileLoadedInfo.Text = txt;
|
||||
tbxFileCrc.Text = @" --- ";
|
||||
tbxMeterSize.Text = @" --- ";
|
||||
tbxFileMeterSize.Text = @" --- ";
|
||||
_lutFileValid = false;
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user