GTB 2.2.2.2

ReSharper run on GenesisMeter.cs
This commit is contained in:
Thomas Wiedebusch
2022-04-26 21:21:14 +02:00
parent 99e5550aed
commit 62a07570ef
73 changed files with 303 additions and 117 deletions
@@ -103,5 +103,13 @@
<Name>CommonCore</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
</packages>
@@ -202,8 +202,6 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts
//Run thread again to notice CancellationToken has changed
_onSyncReceiveThread.Set();
}
catch (Exception ex)
{
@@ -215,6 +215,9 @@
<Compile Include="UartSerialPort.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>
@@ -97,6 +97,9 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>
@@ -60,6 +60,9 @@
<OutputPath>bin\x64\_MANUAL_CONTROL\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net.Http" />
@@ -88,6 +91,7 @@
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.de.resx">
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
</packages>
@@ -228,6 +228,9 @@
<Compile Include="TempTofCalc.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>
@@ -71,7 +71,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
public ProcessConfig _configuration = new ProcessConfig();
/// <summary>
/// Process configuration
/// </summary>
public ProcessConfig Configuration = new ProcessConfig();
/// <summary>
/// Transmit protocol access for underlie objects to change response timeout
@@ -128,7 +131,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// <see cref="T:Xylem.Sensus.WaterMeter.Genesis.Logic.Domain.Genesis.DataPackages.MeterRegister" /> but never less is
/// is the identification of the meter it has a separate Property
/// </summary>
public String SerialNumber { get { return _serialNumber; } set { _serialNumber = value; SetLogger(); } }
public String SerialNumber { get => _serialNumber;
set { _serialNumber = value; SetLogger(); } }
/// <inheritdoc />
@@ -166,7 +170,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// <summary>
/// Enable use of registers that are not valid (last version not match the current app)
/// </summary>
public Boolean IsDevelopmentUsage { get; set; } = false;
public Boolean IsDevelopmentUsage { get; set; }
@@ -202,9 +206,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// </summary>
public StreamingProtocol StreamingProtocol;
/// <summary>
/// to reduce the IrdA communication in test bench, preparation will be done once (when SkipPrepearationForTestBench is true)
/// to reduce the IrdA communication in test bench, preparation will be done once (when SkipPreparationForTestBench is true)
/// </summary>
public bool SkipPrepearationForTestBench { get; set; } = false;
public Boolean SkipPreparationForTestBench { get; set; }
/// <summary>
/// Response received after request for record
@@ -223,7 +227,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
{
try
{
var addGenesisApplication = (ApplicationDefinition)add;
var addGenesisApplication = add;
if (addGenesisApplication != null)
{
@@ -269,7 +273,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
try
{
_logger.Trace($"Slot:{Slot} - Registers definitions loaded from {configFilePath}");
if (_configuration.AutoUpdateFiles)
if (Configuration.AutoUpdateFiles)
{
_logger.Trace($"Slot:{Slot} - Check for updates of {configFilePath}");
var fi = new FileInfo(configFilePath);
@@ -282,7 +286,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
var baseFile = JsonConvert.DeserializeObject<BaseFile>(str);
_logger.Trace($"Slot:{Slot} - Updated register definitions File");
File.WriteAllText(configFilePath, baseFile.FileContent);
File.SetCreationTime(configFilePath, baseFile.UploadDate.Value.UtcDateTime);
if (baseFile.UploadDate != null)
File.SetCreationTime(configFilePath, baseFile.UploadDate.Value.UtcDateTime);
}
else
{
@@ -606,7 +611,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
ledTransmit.GetTransmitPortSettings());
StreamingProtocol = new StreamingProtocol(streamingIdent, ignoreCorruptedData);
}
_configuration = new ProcessConfig(ProgramConfig.ConfigFileName);
Configuration = new ProcessConfig(ProgramConfig.ConfigFileName);
_logger.Debug($"Slot:{Slot} - Setup done");
}
@@ -723,7 +728,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// <summary>
/// call this if session is expired and you need an re-authorization
/// </summary>
public EventHandler<AuthorizationRequiredEventArgs> OnAuthorizationRequired;
public EventHandler<AuthorizationRequiredEventArgs> AuthorizationRequired;
/// <summary>
/// A helper to invoke events only if someone is listening, otherwise nothing will happen
@@ -913,7 +918,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
var firstPcbId = GetPcbId();
if (string.IsNullOrEmpty(firstPcbId) || firstPcbId.Count() < 8)
{
if (firstPcbId.Count() < 8)
if (firstPcbId != null && firstPcbId.Count() < 8)
{
Thread.Sleep(250);
@@ -949,7 +954,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
_logger.Info($"Slot:{Slot} - Cannot get password from GenesisPasswordService, " +
$"URL({url}), Error({ex.Message})");
var listOfOfflinePasswords = JsonConvert.DeserializeObject<List<OfflinePasswordItem>>(File.ReadAllText(ProgramConfig.OfflineInfoFile));
autoPassword = listOfOfflinePasswords.First(x => x.PcbId == PcbId)?.Password;
autoPassword = listOfOfflinePasswords.First(x => x.PcbId == PcbId).Password;
if (!string.IsNullOrEmpty(autoPassword))
{
_logger.Info($"Slot:{Slot} - Got password from password file!");
@@ -960,7 +965,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
/// <inheritdoc />
/// <remarks date="2018JAN08" author="drabesch">
/// Get password from server
/// </remarks>
@@ -971,9 +975,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
//without PCB ID it is not possible to login
var firstPcbId = GetPcbId();
if (string.IsNullOrEmpty(firstPcbId) || firstPcbId.Count() < 8)
if (string.IsNullOrEmpty(firstPcbId) || firstPcbId.Length < 8)
{
if (firstPcbId.Count() < 8)
if (firstPcbId != null && firstPcbId.Length < 8)
{
Thread.Sleep(250);
@@ -984,7 +988,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
}
url = url + PcbId;
url += PcbId;
try
{
//use
@@ -1009,7 +1013,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
_logger.Info($"Slot:{Slot} - Cannot get password from GenesisPasswordService, " +
$"URL({url}), Error({ex.Message})");
var listOfOfflinePasswords = JsonConvert.DeserializeObject<List<OfflinePasswordItem>>(File.ReadAllText(ProgramConfig.OfflineInfoFile));
autoPassword = listOfOfflinePasswords.First(x => x.PcbId == PcbId)?.Password;
autoPassword = listOfOfflinePasswords.First(x => x.PcbId == PcbId).Password;
if (!string.IsNullOrEmpty(autoPassword))
{
_logger.Info($"Slot:{Slot} - Got password from password file!");
@@ -1052,6 +1056,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// <param name="password">password string to login</param>
/// <param name="runImmediately"> true = process command; false = add command to list. call
/// <see cref="RequestProtocolProcess()"></see> to process login command </param>
/// <param name="quickLogin"></param>
/// <returns></returns>
/// <remarks date="2019JAN01" author="drabesch">
/// pass runImmediately for auto login
@@ -1059,7 +1064,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// <remarks date="2021-Feb-02" author="Thomas Wiedebusch">
/// - Avoid retries during login, a retry will lock the Genesis for 2s, 4s, 8s, 16s and so on.
/// </remarks>
private Boolean Login(String password, Boolean runImmediately, bool quickLogin = false)
private Boolean Login(String password, Boolean runImmediately, Boolean quickLogin = false)
{
var backupRetries = CommunicationConfig.RequestRetries;
@@ -1095,7 +1100,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
if (_configuration != null && !_configuration.ProductionMode)
if (Configuration != null && !Configuration.ProductionMode)
{
IsDevelopmentUsage = true;
}
@@ -1197,14 +1202,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
var recount = 4;
while (recount > 0)
{
recount = recount - 1;
recount -= 1;
if (WriteRegister(Register.System.CheckFwPresence, appVersionToRead.AppId))
{
//read version, skip retries on SYSTEM 0x04-> FW nor present is a valid feedback
var readFwVersionBytes = ReadRegister(Register.System.CheckFwPresence, 4, 0x04);
var readFwVersionBytes = ReadRegister(Register.System.CheckFwPresence, 4);
//the FW version as Uint32 will be used for comparison with the configuration.json
if (readFwVersionBytes != null && readFwVersionBytes.Length > 0)
@@ -1277,7 +1282,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
catch (Exception)
{
// ignored
}
@@ -1323,10 +1328,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
foreach (var registerToCheck in tempConfigRegisters)
{
var currentGroup = MeterAppListVersion.First(f => f.AppId == registerToCheck.Key.AppAddress);
if (currentGroup == null)
{
continue;
}
if (!registerToCheck.Key.RegisterDetail.Version.First.HasValue &&
!registerToCheck.Key.RegisterDetail.Version.Last.HasValue)
@@ -1373,23 +1374,23 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
if (IsDevelopmentUsage)
{
List<RegisterDefinition> RegisterToPotentialAdd = new List<RegisterDefinition>();
var registerToPotentialAdd = new List<RegisterDefinition>();
foreach (var allRegisterItem in tempConfigRegisters)
{
if (!_configRegister.MeterRegisterDic.Any(a => a.Key.GetIdent() == allRegisterItem.Key.GetIdent()))
if (_configRegister.MeterRegisterDic.All(a => a.Key.GetIdent() != allRegisterItem.Key.GetIdent()))
{
RegisterToPotentialAdd.Add(allRegisterItem.Key);
registerToPotentialAdd.Add(allRegisterItem.Key);
}
}
if (RegisterToPotentialAdd.Any())
if (registerToPotentialAdd.Any())
{
var RegisterAddForOldConfis = RegisterToPotentialAdd.GroupBy(item => item.GetIdent())
var registerAddForOldConfigs = registerToPotentialAdd.GroupBy(item => item.GetIdent())
.Select(grp => grp.Aggregate((max, cur) =>
(max == null || cur.RegisterDetail.Version.Last > max.RegisterDetail.Version.Last) ? cur : max));
foreach (var registerAddOldConfig in RegisterAddForOldConfis)
foreach (var registerAddOldConfig in registerAddForOldConfigs)
{
registerAddOldConfig.IsAvailable = false;
_configRegister.MeterRegisterDic.TryAdd(registerAddOldConfig, null);
@@ -1584,9 +1585,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
{
if (val > 0)
{
i = i + (1 << cReg);
i += (1 << cReg);
}
cReg = cReg + 1;
cReg += 1;
}
var fullAlarm = (Alarm)i;
@@ -1602,9 +1603,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
{
WriteRegister(Register.Customer.TriggerAlarmCancel, clear.GetHashCode());
}
/// <summary>
/// Alarm messages
/// </summary>
[Flags]
public enum Alarm
{
// ReSharper disable InconsistentNaming
#pragma warning disable CS1591
REBOOT = 1 << 0,
LOW_BATTERY = 1 << 1,
EMPTY_PIPE = 1 << 4,
@@ -1620,6 +1626,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
METROLOGY_MEASURE = 1 << 15,
ALL = 0xFFFFFF,
#pragma warning restore CS1591
// ReSharper restore InconsistentNaming
}
/// <summary>
@@ -1627,7 +1635,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// Read Privilege is always needed to BUGFIX read access to PCB ID
/// </summary>
/// <returns>PCB ID</returns>
public String GetPcbId(Int32 expectedLength = 12, int retyLeft = 2)
public String GetPcbId(Int32 expectedLength = 12, Int32 retriesLeft = 2)
{
if (RequestPort == null)
@@ -1636,29 +1644,28 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
// Read Privilege is always needed to BUGFIX read access to PCB ID
_logger.Info($"Slot:{Slot} - Get privilege level");
var readoutpri = ReadRegister(Register.Configexchange.Privilege);
ReadRegister(Register.Configexchange.Privilege);
_logger.Info($"Slot:{Slot} - Get PCB identification old{PcbId}");
var listPcb = new List<byte>();
var listPcb = new List<Byte>();
var HasZero = false;
var hasZero = false;
var maxReads = 4;
while (!HasZero)
while (!hasZero)
{
var chunk = ReadRegister(Register.Configexchange.PCBSerialNumber, 4);
maxReads = maxReads - 1;
maxReads -= 1;
if (chunk == null)
{
HasZero = true;
break;
}
listPcb.AddRange(chunk);
if (listPcb.Contains(0))
{
HasZero = true;
hasZero = true;
}
if (maxReads == 0)
{
@@ -1667,27 +1674,25 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
_logger.Info($"First read ");
_logger.Info("First read ");
if (listPcb.Any())
{
var response = listPcb.ToArray();
PcbId = Encoding.ASCII.GetString(response).Split('\0')[0];
if (PcbId.Length < 8 && retyLeft >= 1)
if (PcbId.Length < 8 && retriesLeft >= 1)
{
return GetPcbId(expectedLength, retyLeft - 1);
return GetPcbId(expectedLength, retriesLeft - 1);
}
return PcbId;
}
else
if (retriesLeft >= 1)
{
if (retyLeft >= 1)
{
return GetPcbId(expectedLength, retyLeft - 1);
}
return string.Empty;
return GetPcbId(expectedLength, retriesLeft - 1);
}
return string.Empty;
}
/// <summary>
@@ -1861,7 +1866,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
IsLoggedOn = false;
if (Login(_password, false))
{
break;
}
// //removed because this stops all processing which is critical on FW-Update!
@@ -1918,14 +1922,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
{
Logout();
}
catch (Exception ex)
catch (Exception)
{
// ignored
}
//Run thread again to notice CancellationToken has changed
_onSyncKeepSessionThread?.Set();
@@ -1936,7 +1938,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
while (_keepSessionThread.ThreadState != ThreadState.Stopped && timeoutCounter > 0)
{
Thread.Sleep(1);
timeoutCounter = timeoutCounter - 1;
timeoutCounter -= 1;
}
if (_keepSessionThread.ThreadState != ThreadState.Stopped)
@@ -1980,20 +1982,20 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
public void LogRawData(Boolean on)
{
_enableRawDataLogging = on;
if (StreamingPort != null && StreamingPort is LedSerialPort)
if (StreamingPort is LedSerialPort port)
{
((LedSerialPort)StreamingPort).RecordStreamingRawData = _enableRawDataLogging;
port.RecordStreamingRawData = _enableRawDataLogging;
}
}
/// <inheritdoc />
public void SetProcessState(DisplayCodes newState, Boolean webRequest = true)
public void SetProcessState(DisplayCodes newState, Boolean webRequest)
{
if (webRequest)
{
var url = ServiceUrls.MeterProcessStateUrl();
url = url + $"setState?PcbID={PcbId}&code={newState.GetHashCode()}&version={Assembly.GetExecutingAssembly().GetName().Version.ToString()}";
url += $"setState?PcbID={PcbId}&code={newState.GetHashCode()}&version={Assembly.GetExecutingAssembly().GetName().Version}";
try
{
LocalWebRequest.PostRequestAsync(url);
@@ -2013,7 +2015,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
{
var url = ServiceUrls.MeterProcessStateUrl();
url = url + $"GetLastState?PcbID={PcbId}";
url += $"GetLastState?PcbID={PcbId}";
try
{
@@ -2117,29 +2119,38 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
public void PushProgress(string ProgressName, string Version)
/// <summary>
/// Upload app list to data base
/// </summary>
/// <param name="progressName"></param>
/// <param name="version"></param>
public void PushProgress(String progressName, String version)
{
var apps = new List<CordonelAppVersion>();
foreach (var item in MeterAppListVersion)
{
apps.Add(new CordonelAppVersion(item.AppId, item.StrVersion, (item.AppId != 15 ? true : false)));
apps.Add(new CordonelAppVersion(item.AppId, item.StrVersion, item.AppId != 15));
}
apps.Add(new CordonelAppVersion(-1, CoreRevision, false));
var url = $"{ServiceUrls.MeterProcessStateUrl()}SetCordonelProgress?PcbId={PcbId}&ProgressName={ProgressName}&version={Version}";
var a = LocalWebRequest.PostRequestAsync(url, json: apps);
var url = $"{ServiceUrls.MeterProcessStateUrl()}SetCordonelProgress?PcbId={PcbId}&ProgressName={progressName}&version={version}";
LocalWebRequest.PostRequestAsync(url, json: apps);
}
/// <summary>
/// Backup current register dictionary to data base
/// </summary>
/// <exception cref="Exception"></exception>
public void StoreCurrentRegisterDic()
{
try
{
var url = ServiceUrls.RegisterWatchServiceUrl();
if (!string.IsNullOrEmpty(_configuration?.RegisterWatchServiceUrl))
if (!string.IsNullOrEmpty(Configuration?.RegisterWatchServiceUrl))
{
url = _configuration.RegisterWatchServiceUrl;
url = Configuration.RegisterWatchServiceUrl;
}
var d = new List<RegisterToDb>();
@@ -2150,11 +2161,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
{
d.Add(new RegisterToDb(a.Key.RegisterAddress, a.Value));
}
catch (Exception e)
catch (Exception )
{
// ignored
}
}
@@ -2181,7 +2191,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// <param name="value"></param>
private void PostRegisterRead(RegisterDefinition reg, Byte[] value)
{
if (_configuration.UseRegisterWatchService)
if (Configuration.UseRegisterWatchService)
{
try
{
@@ -2192,7 +2202,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
valuestring = BitConverter.ToString(value);
}
var url = $"{_configuration.RegisterWatchServiceUrl}RegisterWrite?PcbID={PcbId}&Address={BitConverter.ToString(reg.RegisterAddress)}&value={valuestring}";
var url = $"{Configuration.RegisterWatchServiceUrl}RegisterWrite?PcbID={PcbId}&Address={BitConverter.ToString(reg.RegisterAddress)}&value={valuestring}";
var result = LocalWebRequest.PostRequestAsync(url, 1500, string.Empty);
@@ -2218,12 +2228,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
/// <param name="calibrationFactor3"></param>
public void LogCalibrationData(UInt16 calibrationFactor1, UInt16 calibrationFactor2, UInt16 calibrationFactor3)
{
if (_configuration.UseCalibrationLogger)
if (Configuration.UseCalibrationLogger)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(
$"{_configuration.CalibrationLoggerServiceUrl}PostCalibrationResult?PcbID={PcbId}" +
$"{Configuration.CalibrationLoggerServiceUrl}PostCalibrationResult?PcbID={PcbId}" +
$"&flowCalibrationPath1={calibrationFactor1}&flowCalibrationPath2={calibrationFactor2}" +
$"&flowCalibrationPath3={calibrationFactor3}");
@@ -2256,6 +2266,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
#endregion
/// <summary>
/// Set the process state
/// </summary>
/// <param name="newState"></param>
public void SetProcessState(DisplayCodes newState)
{
SetProcessState(newState, true);
@@ -184,9 +184,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
// configuration has to be set BEFORE adding meter to batch to avoid e.g. auto update files
// from network and therefore have a long network request timeout before the task starts
_currentGenesis._configuration.UseRegisterWatchService = false;
_currentGenesis._configuration.UseMinMaxCheck = false;
_currentGenesis._configuration.AutoUpdateFiles = false;
_currentGenesis.Configuration.UseRegisterWatchService = false;
_currentGenesis.Configuration.UseMinMaxCheck = false;
_currentGenesis.Configuration.AutoUpdateFiles = false;
_meterBatch.AddMeter(_currentGenesis);
}
catch (Exception)
@@ -40,7 +40,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
private void PreMeasurement()
{
//if (!SkipPrepearationForTestBench)
//if (!SkipPreparationForTestBench)
//{
//TODO set display unit
@@ -79,6 +79,9 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -741,7 +741,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
}
_genesisMeter?.ReLogin();
_genesisMeter?.SetProcessState(DisplayCodes.FwUpdateActive, false);
_genesisMeter?.SetProcessState(DisplayCodes.FwUpdateActive, webRequest: false);
if (_genesisMeter == null || !_genesisMeter.IsLoggedOn || _meterFile == null)
return false;
@@ -1048,7 +1048,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
}
_genesisMeter?.ReLogin();
_genesisMeter?.SetProcessState(DisplayCodes.FwUpdateActive, false);
_genesisMeter?.SetProcessState(DisplayCodes.FwUpdateActive, webRequest: false);
if (_genesisMeter == null || !_genesisMeter.IsLoggedOn ||
FileApps == null || _meterFile == null)
@@ -369,7 +369,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile
if (_meterFile != null)
_meterFile.OnProcessUpdate += ProcessUpdate_Event;
_genesisMeter?.ReLogin();
_genesisMeter?.SetProcessState(DisplayCodes.FwUpdateActive, false);
_genesisMeter?.SetProcessState(DisplayCodes.FwUpdateActive, webRequest: false);
if (_genesisMeter == null || !_genesisMeter.IsLoggedOn)
{
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>
@@ -53,6 +53,9 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
@@ -65,5 +68,8 @@
<Compile Include="MeterPwdDb.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
</packages>
@@ -174,6 +174,9 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>
@@ -256,6 +256,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>
@@ -238,6 +238,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>
@@ -278,6 +278,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\NLog.4.6.7\lib\net40-client\NLog.dll</HintPath>
</Reference>
@@ -77,6 +77,9 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\ServiceFwUpdate\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\..\..\packages\NLog.4.5.6\lib\net40-client\NLog.dll</HintPath>
<Private>True</Private>
@@ -94,6 +97,9 @@
<Compile Include="MeterTypeRegisters.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
@@ -1 +1 @@
7ac73abb7afd9e6ddc0520a1568581c7ed0afd36
1a3d4919c9c702245832d925951f2b7cb72fc333
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
</packages>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
<package id="NLog" version="4.6.7" targetFramework="net40" />
</packages>