GTB LowLevelTools: - Tidy files implemented

This commit is contained in:
Thomas Wiedebusch
2023-01-14 14:38:44 +01:00
parent b6655ae270
commit 18db1974e9
3 changed files with 282 additions and 136 deletions
@@ -69,6 +69,28 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
/// </summary>
public const String StrMeterEngLogIndexFile = "1\\logindex";
/// <summary>
/// EMEA log files which can be removed on NA installation
/// </summary>
public static readonly String[] EmeaLogs = { "1\\fdrdata", "1\\logdata", "1\\evtdata" };
/// <summary>
/// NA log files which can be removed on EMEA installation
/// </summary>
public static readonly String[] NaLogs =
{ "1\\NAalarm", "1\\NAconfig", "1\\NApress", "1\\NAstate", "1\\NAtempC", "1\\NAwater" };
/// <summary>
/// Essential files which have to be kept
/// </summary>
public static readonly String[] FilesToKeep =
{ "0\\password", StrMeterConfigFile, "1\\logindex", "1\\mettbl", "1\\mettbl_b" };
/// <summary>
/// Files which always can be removed to clean the file system up "tidy file"
/// </summary>
public static readonly String[] FilesToRemove = { "1\\upg", "1\\upgrade", StrMeterTstFile };
/// <summary>
/// Drive zero of meter.
/// </summary>
@@ -262,13 +284,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
var rpc = BuildRpcInt32(1, dataBytes.Length, _filePointer);
returnValue = _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, rpc);
////write size to 1
//returnValue = _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, 1, false);
////write counts to data size
//returnValue &= _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, dataBytes.Length, false);
////write file pointer
//returnValue &= _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, _filePointer);
//calculate records to send based on MaxRawDataSize
var chunkCounts = dataBytes.Length / MaxRawDataSize;
if (0 != dataBytes.Length % MaxRawDataSize)
@@ -439,13 +454,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
var rpc = BuildRpcInt32(1, fileSize, _filePointer);
_currentGenesis.WriteRegister(Register.Configexchange.FileRead, rpc);
////write size to 1
//_currentGenesis.WriteRegister(Register.Configexchange.FileRead, 1, false);
////write counts to expected length
//_currentGenesis.WriteRegister(Register.Configexchange.FileRead, fileSize, false);
////write file pointer
//_currentGenesis.WriteRegister(Register.Configexchange.FileRead, _filePointer);
//the preceding routine needs to wait for response, else this is always true!
while (fileSize > 0 && !_stopProcess)
{
@@ -605,12 +613,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
var rpc = BuildRpcInt32(1, 1, _filePointer);
returnValue = _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, rpc);
////write size to 1
//returnValue = _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, 1, false);
////write block of data to 1 as only one byte needed to be at the end of file
//returnValue &= _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, 1, false);
////write file pointer
//returnValue &= _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, _filePointer);
//write one byte at the end of file
returnValue &= _currentGenesis.WriteRegister(Register.Configexchange.FileWrite, 0xFF);
@@ -774,7 +776,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
//request retries on single write register access, needs to be zero to hold the sequence
CommunicationConfig.RequestRetries = 0;
//write "remove-command" to meter, wait for result and read back
//write "remove-command" to meter, return is always false!
//ATTENTION: read back returns FALSE because of unreadable content
_currentGenesis.WriteRegister(Register.Configexchange.FileRemove, fileName, true, true);
//set timeout back to default value
@@ -846,25 +848,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
do
{
//if (retryCtr > 0)
//{
// //read DUMMY to overcome FW malfunction
// _currentGenesis.ReadRegister(Register.System.MonotonicSeconds);
// Thread.Sleep(1000);
//}
//request retries on single write register access, needs to be zero to hold the sequence
CommunicationConfig.RequestRetries = 0;
var rpc = BuildRpcInt32(_filePointer, filePointerOffset, fSeekPara);
returnValue = _currentGenesis.WriteRegister(Register.Configexchange.SetFilePointerOffset, rpc);
//returnValue = _currentGenesis.WriteRegister(Register.Configexchange.SetFilePointerOffset,
// _filePointer, false);
//returnValue &= _currentGenesis.WriteRegister(Register.Configexchange.SetFilePointerOffset,
// filePointerOffset, false);
//returnValue &= _currentGenesis.WriteRegister(Register.Configexchange.SetFilePointerOffset,
// fSeekPara, false);
//function call returns 0 if FSeek successfully set
returnValue &= 0 == RegisterConverter.ConvertTo<UInt32>(_currentGenesis.ReadRegister(
Register.Configexchange.SetFilePointerOffset));
@@ -907,12 +896,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
do
{
//if (retryCtr > 0)
//{
// //read DUMMY to overcome FW malfunction
// _currentGenesis.ReadRegister(Register.System.MonotonicSeconds);
// Thread.Sleep(1000);
//}
//read file pointer offset
_currentGenesis.WriteRegister(Register.Configexchange.GetFilePointerOffset,
_filePointer, false);
@@ -988,13 +971,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
do
{
//if (retryCtr > 0)
//{
// //read DUMMY to overcome FW malfunction
// _currentGenesis.ReadRegister(Register.System.MonotonicSeconds);
// Thread.Sleep(1000);
//}
//write file name to meter with meter open command, don't wait for response
var rpcString = new String(rpc.ToArray());
rpcString += accessMode;
@@ -1002,11 +978,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
// wait for response!
retValue = _currentGenesis.WriteRegister(Register.Configexchange.FileOpen, rpcString, false);
////write file name to meter with meter open command, don't wait for response
//retValue = _currentGenesis.WriteRegister(Register.Configexchange.FileOpen, fileName, false);
////write access flag
//retValue &= _currentGenesis.WriteRegister(Register.Configexchange.FileOpen, accessMode, false);
if (retValue)
{
//get the file pointer
@@ -1068,13 +1039,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
do
{
//if (retryCtr > 0)
//{
// //read DUMMY to overcome FW malfunction
// _currentGenesis.ReadRegister(Register.System.MonotonicSeconds);
// Thread.Sleep(1000);
//}
retValue = _currentGenesis.WriteRegister(Register.Configexchange.FileClose, _filePointer);
//function call returns 0 if FClose successfully executed