Merge branch 'develop/SLM-PT50_genesisDirectDecode' into develop/SLM-PT50_genesisDirectDecode_special
# Conflicts: # TBF/TBF.csproj
This commit is contained in:
commit
0b1e09e0df
@ -710,7 +710,7 @@ namespace GenesisCordonelInterface.API
|
||||
|
||||
if (!meter.IsLoggedOn)
|
||||
{
|
||||
meter.Login();
|
||||
meter.Login2();
|
||||
|
||||
if (meter.IsLoggedOn)
|
||||
{
|
||||
@ -732,7 +732,9 @@ namespace GenesisCordonelInterface.API
|
||||
Success = false,
|
||||
SlotId = slot,
|
||||
IsLoggedOn = false,
|
||||
Message = "Login failed"
|
||||
Message = string.IsNullOrWhiteSpace(meter.LastLoginError)
|
||||
? "Login failed"
|
||||
: meter.LastLoginError
|
||||
};
|
||||
}
|
||||
|
||||
@ -782,7 +784,7 @@ namespace GenesisCordonelInterface.API
|
||||
|
||||
if (!meter.IsConnected)
|
||||
{
|
||||
meter.ConnectMeter();
|
||||
meter.ConnectMeter2();
|
||||
|
||||
LogInfo(operation, $"New Slot {slot} connection success.");
|
||||
|
||||
@ -790,21 +792,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
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -501,7 +501,7 @@ namespace TBF.Rig.BridgeComponents.GciBridge
|
||||
/// -> InterfaceOutsideToGCI.ConnectOneSlotAsync()
|
||||
/// -> InterfaceGCIToLaatzen.ConnectOneMeterAsync()
|
||||
/// -> per-slot GCI worker
|
||||
/// -> MeterBatch.MetersLogin()
|
||||
/// -> Protocols connect to ports
|
||||
/// -> GenesisMeter register snapshot
|
||||
/// </summary>
|
||||
/// <param name="slotId">Slot number.</param>
|
||||
@ -523,11 +523,34 @@ namespace TBF.Rig.BridgeComponents.GciBridge
|
||||
return result;
|
||||
}
|
||||
|
||||
public Task<GciPublicModels.GciLoginResult> LoginAsync(
|
||||
int slot,
|
||||
CancellationToken token = default)
|
||||
/// <summary>
|
||||
/// 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
|
||||
/// </summary>
|
||||
/// <param name="slotId">Slot number.</param>
|
||||
/// <param name="token">Cancellation token.</param>
|
||||
/// <returns>Login result for the requested slot.</returns>
|
||||
public async Task<GciPublicModels.GciLoginResult> 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user