diff --git a/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs b/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs index 6de5e9c52..f74dd44ef 100644 --- a/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs +++ b/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs @@ -168,7 +168,7 @@ namespace GenesisCordonelInterface.API #endregion - #region ================================== INIT ================================== + #region ================================== INIT/UPDATE ================================== public Task InitSlotAsync( int slot, @@ -198,8 +198,8 @@ namespace GenesisCordonelInterface.API slot, cfg, pwd, - req.HasValue ? req.Value.PortName : "", - str.HasValue ? str.Value.PortName : "")); + req.HasValue ? req.Value.PortName : "NA", + str.HasValue ? str.Value.PortName : "NA")); var existingMeter = GetMeter(slot); @@ -249,8 +249,8 @@ namespace GenesisCordonelInterface.API slot, cfg, pwd, - req.HasValue ? req.Value.PortName : "", - str.HasValue ? str.Value.PortName : "")); + req.HasValue ? req.Value.PortName : "NA", + str.HasValue ? str.Value.PortName : "NA")); var meter = GetMeter(slot); @@ -259,7 +259,10 @@ namespace GenesisCordonelInterface.API return SlotFailed(slot, "Meter does not exist for this slot."); } - meter.Dispose(); + if (meter.IsConnected) + { + return SlotFailed(slot, "Slot update is not allowed while meter is connected. Disconnect the meter first."); + } UpdateMeterForSlot(meter, slot, cfg, pwd, req, str); @@ -285,8 +288,10 @@ namespace GenesisCordonelInterface.API meter.useConfigSource = cfg; meter.usePasswordSource = pwd; + meter.requestPortConfig = req; + meter.streamingPortConfig = str; - meter.SetupGenesisMeter(slot, req, str, true); + //meter.SetupGenesisMeter(slot, req, str, true); _meterBatch.AddMeter2(meter); return meter; @@ -307,11 +312,10 @@ namespace GenesisCordonelInterface.API meter.useConfigSource = cfg; meter.usePasswordSource = pwd; + meter.requestPortConfig = req; + meter.streamingPortConfig = str; - meter.SetupGenesisMeter(slot, req, str, true); - //meter.ConnectMeter(); - - + //meter.SetupGenesisMeter(slot, req, str, true); } private PublicModels.GciInitSlotResult SlotCreated(int slot, GenesisMeter meter) @@ -495,6 +499,9 @@ namespace GenesisCordonelInterface.API { return Task.Run(() => CleanSlot(slot), token); } + #endregion + + #region ================================== CLEAN ================================== public PublicModels.GciCleanSlotResult CleanSlot(int slot) { @@ -716,7 +723,7 @@ namespace GenesisCordonelInterface.API if (!meter.IsLoggedOn) { - meter.Login2(); + meter.Login(); if (meter.IsLoggedOn) { @@ -790,7 +797,8 @@ namespace GenesisCordonelInterface.API if (!meter.IsConnected) { - meter.ConnectMeter2(); + meter.SetupGenesisMeter(slot, meter.requestPortConfig, meter.streamingPortConfig, true); + meter.ConnectMeter(); LogInfo(operation, $"New Slot {slot} connection success."); @@ -801,7 +809,7 @@ namespace GenesisCordonelInterface.API IsConnected = meter.IsConnected, Message = meter.IsConnected ? "Connected now" - : meter.LastConnectError + : meter.LastConnectStatus }; } @@ -878,10 +886,9 @@ namespace GenesisCordonelInterface.API var meter = GetMeter(slot); - if (meter.IsLoggedOn) - meter.Logout(); - - meter.DisposeMeter(); + meter.Logout(); + meter.Disconnect(); + //meter.Dispose(); //meter.SoftDispose(); LogInfo(operation, $"Success. Slot={slot}"); @@ -890,7 +897,14 @@ namespace GenesisCordonelInterface.API { SlotId = slot, Success = true, - Message = "Disconnected successfully." + Message = string.Join( + " | ", + new[] + { + meter.LastLogoutStatus, + meter.LastDisposeStatus + } + .Where(x => !string.IsNullOrWhiteSpace(x))) }; } catch (Exception ex) diff --git a/GenesisCordonelInterface/RuntimePackage/Build/Copy.targets.xml b/GenesisCordonelInterface/RuntimePackage/Build/Copy.targets.xml index 5bb31ad67..928ce955c 100644 --- a/GenesisCordonelInterface/RuntimePackage/Build/Copy.targets.xml +++ b/GenesisCordonelInterface/RuntimePackage/Build/Copy.targets.xml @@ -12,6 +12,8 @@ + + diff --git a/TBF/Build/CopyGci.targets.xml b/TBF/Build/CopyGci.targets.xml index 1431f42a7..915109714 100644 --- a/TBF/Build/CopyGci.targets.xml +++ b/TBF/Build/CopyGci.targets.xml @@ -4,6 +4,8 @@ + +