From 76e7ccb4a68d36f97d76be20bd4c6237228e8e5f Mon Sep 17 00:00:00 2001 From: Marek Frniak Date: Mon, 11 May 2026 17:14:56 +0200 Subject: [PATCH] Update (develop) - GCI - GciBridge - better return for Connect --- .../API/InterfaceGCIToLaatzen.cs | 27 +++++---------- .../BridgeComponents/GciBridge/GciBridge.cs | 33 ++++++++++++++++--- TBF/TBF.csproj | 4 --- 3 files changed, 37 insertions(+), 27 deletions(-) diff --git a/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs b/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs index b323f89e6..6de5e9c52 100644 --- a/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs +++ b/GenesisCordonelInterface/API/InterfaceGCIToLaatzen.cs @@ -716,7 +716,7 @@ namespace GenesisCordonelInterface.API if (!meter.IsLoggedOn) { - meter.Login(); + meter.Login2(); if (meter.IsLoggedOn) { @@ -738,7 +738,9 @@ namespace GenesisCordonelInterface.API Success = false, SlotId = slot, IsLoggedOn = false, - Message = "Login failed" + Message = string.IsNullOrWhiteSpace(meter.LastLoginError) + ? "Login failed" + : meter.LastLoginError }; } @@ -788,7 +790,7 @@ namespace GenesisCordonelInterface.API if (!meter.IsConnected) { - meter.ConnectMeter(); + meter.ConnectMeter2(); LogInfo(operation, $"New Slot {slot} connection success."); @@ -796,21 +798,10 @@ namespace GenesisCordonelInterface.API { Success = true, SlotId = slot, - IsConnected = true, - Message = "Connected now" - }; - } - - if (!meter.IsConnected) - { - LogInfo(operation, $"Failed Slot {slot} connection."); - - return new PublicModels.GciConnectResult - { - Success = false, - SlotId = slot, - IsConnected = false, - Message = "Connect failed" + IsConnected = meter.IsConnected, + Message = meter.IsConnected + ? "Connected now" + : meter.LastConnectError }; } diff --git a/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs b/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs index e9c6c39be..f9dbac1bc 100644 --- a/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs +++ b/TBF/Rig/BridgeComponents/GciBridge/GciBridge.cs @@ -467,7 +467,7 @@ namespace TBF.Rig.BridgeComponents.GciBridge /// -> InterfaceOutsideToGCI.ConnectOneSlotAsync() /// -> InterfaceGCIToLaatzen.ConnectOneMeterAsync() /// -> per-slot GCI worker - /// -> MeterBatch.MetersLogin() + /// -> Protocols connect to ports /// -> GenesisMeter register snapshot /// /// Slot number. @@ -489,11 +489,34 @@ namespace TBF.Rig.BridgeComponents.GciBridge return result; } - public Task LoginAsync( - int slot, - CancellationToken token = default) + /// + /// Logs in to the meter assigned to the requested slot. + /// + /// Trace: + /// GciBridge.LoginAsync() + /// -> InterfaceOutsideToGCI.LoginOneSlotAsync() + /// -> InterfaceGCIToLaatzen.LoginOneMeterAsync() + /// -> per-slot GCI worker + /// -> MeterBatch.MetersLogin() + /// -> GenesisMeter login state + /// + /// Slot number. + /// Cancellation token. + /// Login result for the requested slot. + public async Task LoginAsync( + int slotId, + CancellationToken token = default) { - return gciExternalInterface.LoginOneSlotAsync(slot, token); + EnsureExternalInterface(); + + if (slotId <= 0) + throw new ArgumentException("Invalid slot id."); + + var result = await gciExternalInterface.LoginOneSlotAsync(slotId, token); + + log.InfoFormat("{0}: LoginAsync({1}) invoked. Result={2}", Name, slotId, result); + + return result; } /// diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj index f44b81f7d..35fbed894 100644 --- a/TBF/TBF.csproj +++ b/TBF/TBF.csproj @@ -4434,10 +4434,6 @@ {439D0878-C76E-452B-B17D-209A89E91D36} Dirichlet.Numerics - - {1b02c79e-0b19-43e2-8f6b-71ef0c786c97} - CommonCore - {8B10D15A-39DE-4B56-8DD1-710C1EB3A697} GemCard