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