Register restorer: - modified restore register handling
This commit is contained in:
parent
64f13fa9b2
commit
91a44ffca1
@ -155,7 +155,7 @@
|
|||||||
</site>
|
</site>
|
||||||
<site name="MeterProcessState" id="2">
|
<site name="MeterProcessState" id="2">
|
||||||
<application path="/" applicationPool="Clr4IntegratedAppPool">
|
<application path="/" applicationPool="Clr4IntegratedAppPool">
|
||||||
<virtualDirectory path="/" physicalPath="C:\Users\drabesch_ro\Repo\lab\la_operations\laa_production\Common\Service\MeterProcessState" />
|
<virtualDirectory path="/" physicalPath="D:\Projekte\SENSUS_GitLab\laa_production\Common\Service\MeterProcessState" />
|
||||||
</application>
|
</application>
|
||||||
<bindings>
|
<bindings>
|
||||||
<binding protocol="http" bindingInformation="*:56011:localhost" />
|
<binding protocol="http" bindingInformation="*:56011:localhost" />
|
||||||
|
|||||||
@ -2435,6 +2435,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Dummy
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks date="2023-Dec-11" author="Roland Drabesch">
|
||||||
|
/// - Initial.
|
||||||
|
/// </remarks>
|
||||||
public void TestBenchDispose()
|
public void TestBenchDispose()
|
||||||
{
|
{
|
||||||
if (IsLoggedOn)
|
if (IsLoggedOn)
|
||||||
|
|||||||
@ -207,6 +207,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
|||||||
/// - Moved register dictionary value set to inner try catch loop to avoid early exit if one register is
|
/// - Moved register dictionary value set to inner try catch loop to avoid early exit if one register is
|
||||||
/// unknown.
|
/// unknown.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
|
/// <remarks date="2023-Dec-11" author="Thomas Wiedebusch">
|
||||||
|
/// - Logging of some exception messages.
|
||||||
|
/// </remarks>
|
||||||
public Boolean RecoverRegisters(List<RecoveryRegisterItem> recoveryRegisters)
|
public Boolean RecoverRegisters(List<RecoveryRegisterItem> recoveryRegisters)
|
||||||
{
|
{
|
||||||
if (_currentGenesis == null ||
|
if (_currentGenesis == null ||
|
||||||
@ -310,8 +313,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
|||||||
_restoreRegisters?.Set(regDef, recReg.WriteValue);
|
_restoreRegisters?.Set(regDef, recReg.WriteValue);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
_currentGenesis.WriteLog("Could not replace register value of " + recReg.RegisterIdent + "; " + ex.Message);
|
||||||
// nothing to do
|
// nothing to do
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@ -745,6 +749,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
|||||||
/// <remarks date="2023-Nov-24" author="Thomas Wiedebusch">
|
/// <remarks date="2023-Nov-24" author="Thomas Wiedebusch">
|
||||||
/// - Extended try catch to avoid break on one register failed.
|
/// - Extended try catch to avoid break on one register failed.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
|
/// <remarks date="2023-Dec-11" author="Thomas Wiedebusch">
|
||||||
|
/// - Filtered restore registers to access only if assigned,
|
||||||
|
/// - Logging of some exception messages.
|
||||||
|
/// </remarks>
|
||||||
private Boolean ReadRegistersSet(MeterRegisters registers, MeterRegisters restoreRegisters = null)
|
private Boolean ReadRegistersSet(MeterRegisters registers, MeterRegisters restoreRegisters = null)
|
||||||
{
|
{
|
||||||
if (_currentGenesis == null)
|
if (_currentGenesis == null)
|
||||||
@ -779,16 +787,24 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
|||||||
{
|
{
|
||||||
registers.Set(regDef, rawRegister);
|
registers.Set(regDef, rawRegister);
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
_currentGenesis.WriteLog("Register unknown " + regName + "; " + ex.Message);
|
||||||
// nothing to do
|
// nothing to do
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
restoreRegisters?.Set(regDef, rawRegister);
|
if (restoreRegisters != null)
|
||||||
|
{
|
||||||
|
if (restoreRegisters.MeterRegisterDic.Any(reg => reg.Key.GetIdent().Equals(regName)))
|
||||||
|
{
|
||||||
|
restoreRegisters.Set(regDef, rawRegister);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
_currentGenesis.WriteLog("Could not set register restore value of " + regName + "; " + ex.Message);
|
||||||
// nothing to do
|
// nothing to do
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
c43c40a030005a8f189e6179faf40a6d42bfef5c
|
bf6bb8fceb3db5a9977dadc407cf576684bf7127
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
65d75c3322f8a137c69963cfdc0cb6f1ffacf62a
|
247396738e2c5d26ac00f9df05c0cc5c61d7f33a
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user